|
@@ -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
|