MCPcopy Create free account
hub / github.com/awslabs/gap-text2sql / load_tables

Function load_tables

rat-sql-gap/seq2struct/datasets/spider.py:50–112  ·  view source on GitHub ↗
(paths)

Source from the content-addressed store, hash-verified

48
49
50def load_tables(paths):
51 schemas = {}
52 eval_foreign_key_maps = {}
53
54 for path in paths:
55 schema_dicts = json.load(open(path))
56 for schema_dict in schema_dicts:
57 tables = tuple(
58 Table(
59 id=i,
60 name=name.split(),
61 unsplit_name=name,
62 orig_name=orig_name,
63 )
64 for i, (name, orig_name) in enumerate(zip(
65 schema_dict['table_names'], schema_dict['table_names_original']))
66 )
67 columns = tuple(
68 Column(
69 id=i,
70 table=tables[table_id] if table_id >= 0 else None,
71 name=col_name.split(),
72 unsplit_name=col_name,
73 orig_name=orig_col_name,
74 type=col_type,
75 )
76 for i, ((table_id, col_name), (_, orig_col_name), col_type) in enumerate(zip(
77 schema_dict['column_names'],
78 schema_dict['column_names_original'],
79 schema_dict['column_types']))
80 )
81
82 # Link columns to tables
83 for column in columns:
84 if column.table:
85 column.table.columns.append(column)
86
87 for column_id in schema_dict['primary_keys']:
88 # Register primary keys
89 column = columns[column_id]
90 column.table.primary_keys.append(column)
91
92 foreign_key_graph = nx.DiGraph()
93 for source_column_id, dest_column_id in schema_dict['foreign_keys']:
94 # Register foreign keys
95 source_column = columns[source_column_id]
96 dest_column = columns[dest_column_id]
97 source_column.foreign_key_for = dest_column
98 foreign_key_graph.add_edge(
99 source_column.table.id,
100 dest_column.table.id,
101 columns=(source_column_id, dest_column_id))
102 foreign_key_graph.add_edge(
103 dest_column.table.id,
104 source_column.table.id,
105 columns=(dest_column_id, source_column_id))
106
107 db_id = schema_dict['db_id']

Callers 2

__init__Method · 0.85
__init__Method · 0.85

Calls 5

TableClass · 0.85
ColumnClass · 0.85
appendMethod · 0.80
SchemaClass · 0.70
loadMethod · 0.45

Tested by

no test coverage detected