From b27c5a88d4960b3b4faf9a5099c0b6bf78fa5e07 Mon Sep 17 00:00:00 2001 From: Steve Nyemba Date: Wed, 5 Jul 2023 15:53:54 -0500 Subject: [PATCH] bug fix: bigquery meta on a project other than the one with service key --- transport/sql.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/transport/sql.py b/transport/sql.py index 0990bcd..00499e5 100644 --- a/transport/sql.py +++ b/transport/sql.py @@ -381,14 +381,20 @@ class BigQuery: :param sql sql query to be pulled, """ table = _args['table'] if 'table' in _args else self.table + try: if table : - ref = self.client.dataset(self.dataset).table(table) - _schema = self.client.get_table(ref).schema - return [{"name":_item.name,"type":_item.field_type,"description":( "" if not hasattr(_item,"description") else _item.description )} for _item in _schema] + _dataset = self.dataset if 'dataset' not in _args else _args['dataset'] + sql = f"""SELECT column_name as table_name, data_type as field_type FROM {_dataset}.INFORMATION_SCHEMA.COLUMNS WHERE table_name = '{table}' """ + return self.read(sql=sql).to_dict(orient='records') + # ref = self.client.dataset(self.dataset).table(table) + + # _schema = self.client.get_table(ref).schema + # return [{"name":_item.name,"type":_item.field_type,"description":( "" if not hasattr(_item,"description") else _item.description )} for _item in _schema] else : return [] except Exception as e: + return [] def has(self,**_args): found = False