MCPcopy Create free account
hub / github.com/google-research/language / _get_tables

Function _get_tables

language/xsp/data_preprocessing/abstract_sql.py:117–146  ·  view source on GitHub ↗

Adds table(s) in sqlparse.sql.Token as SqlTable to sql_tables.

(tokens)

Source from the content-addressed store, hash-verified

115
116
117def _get_tables(tokens):
118 """Adds table(s) in sqlparse.sql.Token as SqlTable to sql_tables."""
119 sql_tables = []
120 table_names = set()
121 previous_token = None
122 in_from_clause_context = False
123 for token in tokens:
124 # Don't recurse into nested statements.
125 if isinstance(token, list):
126 continue
127 elif _is_underspecified_table_mention(previous_token, token):
128 for token_value in token.value.split(' '):
129 sql_table = _get_sql_table(token_value)
130 if sql_table.table_name in table_names:
131 raise UnsupportedSqlError(
132 'Abstract SQL does not support joining a table with itself!')
133 table_names.add(sql_table.table_name)
134 sql_tables.append(sql_table)
135 elif _is_table_mention(previous_token, token, in_from_clause_context):
136 in_from_clause_context = True
137 sql_table = _get_sql_table(token.value)
138 if sql_table.table_name in table_names:
139 raise UnsupportedSqlError(
140 'Abstract SQL does not support joining a table with itself!')
141 table_names.add(sql_table.table_name)
142 sql_tables.append(sql_table)
143 elif token.value != ',':
144 in_from_clause_context = False
145 previous_token = token
146 return sql_tables
147
148
149def _is_underspecified_table_mention(previous_token, current_token):

Callers 1

Calls 6

_get_sql_tableFunction · 0.85
UnsupportedSqlErrorClass · 0.85
_is_table_mentionFunction · 0.85
splitMethod · 0.80
addMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…