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