MCPcopy Create free account
hub / github.com/FlyingFeather/DEA-SQL / build_foreign_key_map

Function build_foreign_key_map

evaluation/test-suite-sql-eval/evaluation.py:939–976  ·  view source on GitHub ↗
(entry)

Source from the content-addressed store, hash-verified

937
938
939def build_foreign_key_map(entry):
940 cols_orig = entry["column_names_original"]
941 tables_orig = entry["table_names_original"]
942
943 # rebuild cols corresponding to idmap in Schema
944 cols = []
945 for col_orig in cols_orig:
946 if col_orig[0] >= 0:
947 t = tables_orig[col_orig[0]]
948 c = col_orig[1]
949 cols.append("__" + t.lower() + "." + c.lower() + "__")
950 else:
951 cols.append("__all__")
952
953 def keyset_in_list(k1, k2, k_list):
954 for k_set in k_list:
955 if k1 in k_set or k2 in k_set:
956 return k_set
957 new_k_set = set()
958 k_list.append(new_k_set)
959 return new_k_set
960
961 foreign_key_list = []
962 foreign_keys = entry["foreign_keys"]
963 for fkey in foreign_keys:
964 key1, key2 = fkey
965 key_set = keyset_in_list(key1, key2, foreign_key_list)
966 key_set.add(key1)
967 key_set.add(key2)
968
969 foreign_key_map = {}
970 for key_set in foreign_key_list:
971 sorted_list = sorted(list(key_set))
972 midx = sorted_list[0]
973 for idx in sorted_list:
974 foreign_key_map[cols[idx]] = cols[midx]
975
976 return foreign_key_map
977
978
979def build_foreign_key_map_from_json(table):

Callers 1

Calls 2

keyset_in_listFunction · 0.70
addMethod · 0.45

Tested by

no test coverage detected