deletion_sql="DROP TABLE IF EXISTS {};".format(missing_data_table)
cursor.execute(deletion_sql)
missing_selects_text=",".join(missing_selects)
missing_data_sql="CREATE TABLE {} AS SELECT {}, md5(CAST(({}) AS text)) AS superblock FROM {}".format(missing_data_table,missing_selects_text,missing_selects_text,table_name)
missing_data_sql="CREATE TABLE {} AS SELECT {}, md5(CAST(({}) AS text)) AS superblock FROM {}".format(missing_data_table,missing_selects_text,missing_selects_text,table_prefix)
print(missing_data_sql)
cursor.execute(missing_data_sql)
# superblock definitions
superblock_table="{}_sb".format(table_name)
deletion_sql="DROP TABLE IF EXISTS {};".format(superblock_table)
deletion_sql="DROP TABLE IF EXISTS {};".format(superblock_tmp_table)
cursor.execute(deletion_sql)
vars=list(filter(is_var,var_names))
col_def=map(lambdaname:"{} int NOT NULL".format(name),vars)
creation_sql="CREATE TABLE {}(superblock text, {}, prob float NOT NULL);".format(superblock_table,",".join(col_def))
creation_sql="CREATE TABLE {}(superblock text, {}, prob float NOT NULL);".format(superblock_tmp_table,",".join(col_def))
cursor.execute(creation_sql)
cursor.execute("SELECT DISTINCT * FROM {}".format(missing_data_table))
ie=gum.LazyPropagation(bn)
insert_sql="INSERT INTO {}({}, superblock, prob) VALUES({},%s,%s)".format(superblock_table,",".join(vars),",".join(["%s"for_invars]))
insert_sql="INSERT INTO {}({}, superblock, prob) VALUES({},%s,%s)".format(superblock_tmp_table,",".join(vars),",".join(["%s"for_invars]))
definstantiation_to_list(inst,row,vars):
l=[]
...
...
@@ -117,11 +123,29 @@ for row in cursor.fetchall():
ie.eraseAllTargets()
ie.eraseAllEvidence()
# tuples table creation
tuple_table="{}_tuple".format(table_prefix)
deletion_sql="DROP TABLE IF EXISTS {};".format(tuple_table)
cursor.execute(deletion_sql)
cursor.execute("CREATE TABLE {} AS SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS tuple, * FROM (SELECT DISTINCT {} FROM {}) as t".format(tuple_table,",".join(vars),superblock_tmp_table))
# superblocks table creation with tuple identifiers
superblock_table="{}_sb".format(table_prefix)
deletion_sql="DROP TABLE IF EXISTS {};".format(superblock_table)
cursor.execute(deletion_sql)
sb_tuple_preds=[]
forvinvars:
pred="sb.{} = t.{}".format(v,v)
sb_tuple_preds.append(pred)
cursor.execute("CREATE TABLE {} AS SELECT sb.superblock, t.tuple, sb.prob FROM {} AS sb, {} AS t WHERE {}".format(superblock_table,superblock_tmp_table,tuple_table," AND ".join(sb_tuple_preds)))
deletion_sql="DROP TABLE IF EXISTS {};".format(superblock_tmp_table)