diff --git a/ingestion/src/metadata/ingestion/ometa/mixins/lineage_mixin.py b/ingestion/src/metadata/ingestion/ometa/mixins/lineage_mixin.py index 543b12c5459a..601b62e628fe 100644 --- a/ingestion/src/metadata/ingestion/ometa/mixins/lineage_mixin.py +++ b/ingestion/src/metadata/ingestion/ometa/mixins/lineage_mixin.py @@ -52,11 +52,24 @@ def _merge_column_lineage( self, original: List[Dict[str, Any]], updated: List[Dict[str, Any]] ): temp_result = [] - for column in original or []: - temp_result.append((*column.get("fromColumns", []), column.get("toColumn"))) - for column in updated or []: - data = column.dict() - temp_result.append((*data.get("fromColumns", []), data.get("toColumn"))) + try: + for column in original or []: + if column.get("toColumn") and column.get("fromColumns"): + temp_result.append( + (*column.get("fromColumns", []), column.get("toColumn")) + ) + for column in updated or []: + if not isinstance(column, dict): + data = column.dict() + else: + data = column + if data.get("toColumn") and data.get("fromColumns"): + temp_result.append( + (*data.get("fromColumns", []), data.get("toColumn")) + ) + except Exception as exc: + logger.debug(f"Error while merging column lineage: {exc}") + logger.debug(traceback.format_exc()) return [ {"fromColumns": list(col_data[:-1]), "toColumn": col_data[-1]} for col_data in set(temp_result)