diff --git a/python/ktx-sl/semantic_layer/loader.py b/python/ktx-sl/semantic_layer/loader.py index 4f68dd58..1f505fe5 100644 --- a/python/ktx-sl/semantic_layer/loader.py +++ b/python/ktx-sl/semantic_layer/loader.py @@ -195,12 +195,13 @@ class SourceLoader: columns_by_name[name] = SourceColumn(**merged) source.columns = list(columns_by_name.values()) - # Append computed columns. Manifest column names cannot be reused here. + # Append computed columns. Manifest column names cannot be reused here; + # use column_overrides for metadata patches. for col in overlay.get("columns", []): name = col.get("name") if name in base_by_name: raise ValueError( - f"column '{name}' in columns already exists on manifest source '{base.name}'" + f"column '{name}' in columns patches a manifest column on '{base.name}' - move it to 'column_overrides:'" ) source.columns.append(SourceColumn(**col))