@@ -1012,7 +1012,10 @@ def _parse_redshift_source(self, source_expression: str) -> Optional[List[dict]]
10121012 return None
10131013
10141014 def _parse_bigquery_source (
1015- self , source_expression : str , datamodel_entity : DashboardDataModel
1015+ self ,
1016+ source_expression : str ,
1017+ datamodel_entity : DashboardDataModel ,
1018+ table : PowerBiTable ,
10161019 ) -> Optional [List [dict ]]:
10171020 """
10181021 Parse BigQuery source from Power Query M expressions.
@@ -1049,15 +1052,14 @@ def _parse_bigquery_source(
10491052 )
10501053 # Recursively parse the referenced expression
10511054 return self ._parse_bigquery_source (
1052- dexpression .expression , datamodel_entity
1055+ dexpression .expression , datamodel_entity , table
10531056 )
10541057
10551058 # Check if this is a direct BigQuery connection
10561059 if "GoogleBigQuery.Database" not in source_expression :
10571060 return None
10581061
10591062 logger .debug (f"Found GoogleBigQuery.Database in expression" )
1060-
10611063 # Extract project, dataset (schema), and table from BigQuery M expression
10621064 # Pattern: [Name="project"][Data][Name="dataset",Kind="Schema"][Data][Name="table",Kind="Table"]
10631065
@@ -1087,7 +1089,10 @@ def _parse_bigquery_source(
10871089 logger .debug (
10881090 f"Extracted BigQuery info: project={ project } , dataset={ dataset } , table={ table_name } "
10891091 )
1090-
1092+ if not table_name :
1093+ logger .debug (
1094+ f"Parsing BigQuery source expression for powerbi table ({ table .name } ):: { source_expression } "
1095+ )
10911096 if table_name :
10921097 return [{"database" : project , "schema" : dataset , "table" : table_name }]
10931098
@@ -1345,7 +1350,7 @@ def _parse_table_info_from_source_exp(
13451350
13461351 # parse bigquery source
13471352 table_info_list = self ._parse_bigquery_source (
1348- source_expression , datamodel_entity
1353+ source_expression , datamodel_entity , table
13491354 )
13501355 if isinstance (table_info_list , List ):
13511356 return table_info_list
0 commit comments