Fix profiler crash for remote-only tables without primary_key

Same issue as config.py - profiler's TableInfo and parser required
primary_key and sync_strategy, breaking auto-profile after sync
when daily_deal_traffic (remote-only) is in config.
This commit is contained in:
Petr 2026-03-25 14:47:00 +01:00
parent 4ebb3fc7b2
commit a667b4e32f

View file

@ -173,8 +173,8 @@ class TableInfo:
table_id: str, table_id: str,
name: str, name: str,
description: str, description: str,
primary_key: str, primary_key: str = "",
sync_strategy: str, sync_strategy: str = "none",
foreign_keys: Optional[List[ForeignKeyInfo]] = None, foreign_keys: Optional[List[ForeignKeyInfo]] = None,
partition_by: Optional[str] = None, partition_by: Optional[str] = None,
partition_granularity: Optional[str] = None, partition_granularity: Optional[str] = None,
@ -189,6 +189,8 @@ class TableInfo:
self.partition_granularity = partition_granularity self.partition_granularity = partition_granularity
def get_primary_key_columns(self) -> List[str]: def get_primary_key_columns(self) -> List[str]:
if not self.primary_key:
return []
return [col.strip() for col in self.primary_key.split(",")] return [col.strip() for col in self.primary_key.split(",")]
def is_partitioned(self) -> bool: def is_partitioned(self) -> bool:
@ -314,8 +316,8 @@ def parse_data_description(path: Path) -> Tuple[List[TableInfo], Dict[str, str]]
table_id=td["id"], table_id=td["id"],
name=td["name"], name=td["name"],
description=td["description"], description=td["description"],
primary_key=td["primary_key"], primary_key=td.get("primary_key", ""),
sync_strategy=td["sync_strategy"], sync_strategy=td.get("sync_strategy", "none"),
foreign_keys=fk_list, foreign_keys=fk_list,
partition_by=td.get("partition_by"), partition_by=td.get("partition_by"),
partition_granularity=td.get("partition_granularity"), partition_granularity=td.get("partition_granularity"),