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

Function build_foreign_key_map

single_eval.py:869–906  ·  view source on GitHub ↗
(entry)

Source from the content-addressed store, hash-verified

867
868
869def build_foreign_key_map(entry):
870 cols_orig = entry["column_names_original"]
871 tables_orig = entry["table_names_original"]
872
873 # rebuild cols corresponding to idmap in Schema
874 cols = []
875 for col_orig in cols_orig:
876 if col_orig[0] >= 0:
877 t = tables_orig[col_orig[0]]
878 c = col_orig[1]
879 cols.append("__" + t.lower() + "." + c.lower() + "__")
880 else:
881 cols.append("__all__")
882
883 def keyset_in_list(k1, k2, k_list):
884 for k_set in k_list:
885 if k1 in k_set or k2 in k_set:
886 return k_set
887 new_k_set = set()
888 k_list.append(new_k_set)
889 return new_k_set
890
891 foreign_key_list = []
892 foreign_keys = entry["foreign_keys"]
893 for fkey in foreign_keys:
894 key1, key2 = fkey
895 key_set = keyset_in_list(key1, key2, foreign_key_list)
896 key_set.add(key1)
897 key_set.add(key2)
898
899 foreign_key_map = {}
900 for key_set in foreign_key_list:
901 sorted_list = sorted(list(key_set))
902 midx = sorted_list[0]
903 for idx in sorted_list:
904 foreign_key_map[cols[idx]] = cols[midx]
905
906 return foreign_key_map
907
908
909def 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