Changeset: 098f16b88412 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/098f16b88412 Modified Files: sql/storage/bat/bat_storage.c sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320-Windows.test sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.test sql/test/BugTracker-2013/Tests/rangejoin_optimizer.Bug-3411.test sql/test/BugTracker-2015/Tests/crash_in_reduce_groupby.Bug-3818.test sql/test/BugTracker-2015/Tests/quantile_function_resolution.Bug-3773.test sql/test/BugTracker-2015/Tests/schema_view.Bug-3708.test sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test sql/test/BugTracker-2018/Tests/count_from_commented_function_signatures.Bug-6542.test sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.test sql/test/SQLancer/Tests/sqlancer08.test sql/test/astro/Tests/astro.test sql/test/merge-partitions/Tests/mergepart31.test sql/test/miscellaneous/Tests/simple_plans.test Branch: properties Log Message:
Make sure storage is initialized when fetching properties. Don't look at views. diffs (truncated from 474 to 300 lines): diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c --- a/sql/storage/bat/bat_storage.c +++ b/sql/storage/bat/bat_storage.c @@ -2728,12 +2728,12 @@ dcount_col(sql_trans *tr, sql_column *c) } static BAT * -bind_no_view(BAT *b) +bind_no_view(BAT *b, bool quick) { if (isVIEW(b)) { /* If it is a view get the parent BAT */ BAT *nb = BBP_cache(VIEWtparent(b)); bat_destroy(b); - if (!(b = temp_descriptor(nb->batCacheid))) + if (!(b = quick ? quick_descriptor(nb->batCacheid) : temp_descriptor(nb->batCacheid))) return NULL; } return b; @@ -2763,7 +2763,7 @@ min_max_col(sql_trans *tr, sql_column *c _DELETE(c->min); _DELETE(c->max); if ((b = bind_col(tr, c, access))) { - if (!(b = bind_no_view(b))) { + if (!(b = bind_no_view(b, false))) { unlock_column(tr->store, c->base.id); return 0; } @@ -2889,7 +2889,7 @@ static int col_stats(sql_trans *tr, sql_column *c, bool *nonil, bool *unique, double *unique_est, ValPtr min, ValPtr max) { int ok = 0; - BAT *b = NULL, *off = NULL; + BAT *b = NULL, *off = NULL, *upv = NULL; sql_delta *d = NULL; (void) tr; @@ -2905,9 +2905,11 @@ col_stats(sql_trans *tr, sql_column *c, *nonil = true; /* TODO for min/max. I will do it later */ return ok; } - bat bid = d->cs.st == ST_DICT ? d->cs.ebid : d->cs.bid; - if ((b = temp_descriptor(bid))) { - int eclass = c->type.type->eclass; + int eclass = c->type.type->eclass; + int access = d->cs.st == ST_DICT ? RD_EXT : RDONLY; + if ((b = bind_col(tr, c, access))) { + if (!(b = bind_no_view(b, false))) + return ok; BATiter bi = bat_iterator(b); *nonil = bi.nonil && !bi.nil; @@ -2918,27 +2920,29 @@ col_stats(sql_trans *tr, sql_column *c, if (bi.maxpos != BUN_NONE && VALinit(max, bi.type, BUNtail(bi, bi.maxpos))) ok |= 2; } - /* for dict, check the offsets bat for uniqueness */ - if (d->cs.ucnt == 0 && (d->cs.st == ST_DEFAULT || (off = quick_descriptor(d->cs.bid)))) { - if (off) { + if (d->cs.ucnt == 0) { + if (d->cs.st == ST_DEFAULT) { + *unique = bi.key; + *unique_est = bi.unique_est; + } else if (d->cs.st == ST_DICT && (off = bind_col(tr, c, QUICK)) && (off = bind_no_view(off, true))) { + /* for dict, check the offsets bat for uniqueness */ MT_lock_set(&off->theaplock); *unique = off->tkey; *unique_est = off->tunique_est; MT_lock_unset(&off->theaplock); - } else { - *unique = bi.key; - *unique_est = bi.unique_est; } } bat_iterator_end(&bi); bat_destroy(b); if (*nonil && d->cs.ucnt > 0) { - if (!(b = quick_descriptor(d->cs.uvbid))) { + /* This could use a quick descriptor */ + if (!(upv = bind_col(tr, c, RD_UPD_VAL)) || !(upv = bind_no_view(upv, false))) { *nonil = false; } else { - MT_lock_set(&b->theaplock); - *nonil &= b->tnonil && !b->tnil; - MT_lock_unset(&b->theaplock); + MT_lock_set(&upv->theaplock); + *nonil &= upv->tnonil && !upv->tnil; + MT_lock_unset(&upv->theaplock); + bat_destroy(upv); } } } diff --git a/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320-Windows.test b/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320-Windows.test --- a/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320-Windows.test +++ b/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320-Windows.test @@ -8,7 +8,7 @@ query T nosort plan copy into cm_tmp from E'\\file1',E'\\file2' ---- insert( -| table("sys"."cm_tmp") [ "cm_tmp"."i" NOT NULL, "cm_tmp"."%TID%" NOT NULL UNIQUE ] +| table("sys"."cm_tmp") [ "cm_tmp"."i" NOT NULL UNIQUE, "cm_tmp"."%TID%" NOT NULL UNIQUE ] | union ( | | project ( | | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n", varchar NULL, varchar "null", varchar "\\file1", bigint(19) "-1", bigint(19) "0", int(9) "0", varchar NULL, int(9) "0", int(9) "1"), @@ -25,7 +25,7 @@ query T nosort plan copy into cm_tmp from E'a:\\file1','Z:/file2' ---- insert( -| table("sys"."cm_tmp") [ "cm_tmp"."i" NOT NULL, "cm_tmp"."%TID%" NOT NULL UNIQUE ] +| table("sys"."cm_tmp") [ "cm_tmp"."i" NOT NULL UNIQUE, "cm_tmp"."%TID%" NOT NULL UNIQUE ] | union ( | | project ( | | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n", varchar NULL, varchar "null", varchar "a:\\file1", bigint(19) "-1", bigint(19) "0", int(9) "0", varchar NULL, int(9) "0", int(9) "1"), diff --git a/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.test b/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.test --- a/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.test +++ b/sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.test @@ -5,7 +5,7 @@ query T nosort plan copy into cm_tmp from '/file1','/file2' ---- insert( -| table("sys"."cm_tmp") [ "cm_tmp"."i" NOT NULL, "cm_tmp"."%TID%" NOT NULL UNIQUE ] +| table("sys"."cm_tmp") [ "cm_tmp"."i" NOT NULL UNIQUE, "cm_tmp"."%TID%" NOT NULL UNIQUE ] | union ( | | project ( | | | table ("sys"."copyfrom"(table("cm_tmp"), varchar "|", varchar "\n", varchar NULL, varchar "null", varchar "/file1", bigint(18) "-1", bigint(18) "0", int(9) "0", varchar NULL, int(9) "0", int(9) "1"), diff --git a/sql/test/BugTracker-2013/Tests/rangejoin_optimizer.Bug-3411.test b/sql/test/BugTracker-2013/Tests/rangejoin_optimizer.Bug-3411.test --- a/sql/test/BugTracker-2013/Tests/rangejoin_optimizer.Bug-3411.test +++ b/sql/test/BugTracker-2013/Tests/rangejoin_optimizer.Bug-3411.test @@ -9,9 +9,9 @@ WHERE t2.a between t1.a and t1.b ---- project ( | join ( -| | table("sys"."t4311") [ "t4311"."a" NOT NULL as "t2"."a" ], -| | table("sys"."t4311") [ "t4311"."a" NOT NULL as "t1"."a", "t4311"."b" NOT NULL as "t1"."b" ] -| ) [ ("t1"."a" NOT NULL) <= ("t2"."a" NOT NULL) <= ("t1"."b" NOT NULL) ] +| | table("sys"."t4311") [ "t4311"."a" NOT NULL UNIQUE as "t2"."a" ], +| | table("sys"."t4311") [ "t4311"."a" NOT NULL UNIQUE as "t1"."a", "t4311"."b" NOT NULL UNIQUE as "t1"."b" ] +| ) [ ("t1"."a" NOT NULL UNIQUE) <= ("t2"."a" NOT NULL UNIQUE) <= ("t1"."b" NOT NULL UNIQUE) ] ) [ "t2"."a" NOT NULL ] query T nosort @@ -23,9 +23,9 @@ AND t2.a <= t1.b ---- project ( | join ( -| | table("sys"."t4311") [ "t4311"."a" NOT NULL as "t2"."a" ], -| | table("sys"."t4311") [ "t4311"."a" NOT NULL as "t1"."a", "t4311"."b" NOT NULL as "t1"."b" ] -| ) [ ("t1"."a" NOT NULL) <= ("t2"."a" NOT NULL) <= ("t1"."b" NOT NULL) ] +| | table("sys"."t4311") [ "t4311"."a" NOT NULL UNIQUE as "t2"."a" ], +| | table("sys"."t4311") [ "t4311"."a" NOT NULL UNIQUE as "t1"."a", "t4311"."b" NOT NULL UNIQUE as "t1"."b" ] +| ) [ ("t1"."a" NOT NULL UNIQUE) <= ("t2"."a" NOT NULL UNIQUE) <= ("t1"."b" NOT NULL UNIQUE) ] ) [ "t2"."a" NOT NULL ] query T nosort @@ -37,9 +37,9 @@ AND t1.b >= t2.a ---- project ( | join ( -| | table("sys"."t4311") [ "t4311"."a" NOT NULL as "t2"."a" ], -| | table("sys"."t4311") [ "t4311"."a" NOT NULL as "t1"."a", "t4311"."b" NOT NULL as "t1"."b" ] -| ) [ ("t1"."a" NOT NULL) <= ("t2"."a" NOT NULL) <= ("t1"."b" NOT NULL) ] +| | table("sys"."t4311") [ "t4311"."a" NOT NULL UNIQUE as "t2"."a" ], +| | table("sys"."t4311") [ "t4311"."a" NOT NULL UNIQUE as "t1"."a", "t4311"."b" NOT NULL UNIQUE as "t1"."b" ] +| ) [ ("t1"."a" NOT NULL UNIQUE) <= ("t2"."a" NOT NULL UNIQUE) <= ("t1"."b" NOT NULL UNIQUE) ] ) [ "t2"."a" NOT NULL ] statement ok diff --git a/sql/test/BugTracker-2015/Tests/crash_in_reduce_groupby.Bug-3818.test b/sql/test/BugTracker-2015/Tests/crash_in_reduce_groupby.Bug-3818.test --- a/sql/test/BugTracker-2015/Tests/crash_in_reduce_groupby.Bug-3818.test +++ b/sql/test/BugTracker-2015/Tests/crash_in_reduce_groupby.Bug-3818.test @@ -28,9 +28,9 @@ GROUP BY cods, elrik, ether, jaelen, sor project ( | group by ( | | project ( -| | | table("sys"."t2a") [ "t2a"."tib0" NOT NULL ] -| | ) [ "t2a"."tib0" NOT NULL, tinyint(8) "0" as "elrik", tinyint(8) "0" as "ether", tinyint(8) "0" as "jaelen", tinyint(8) "0" as "sora" ] -| ) [ tinyint(8) "0" as "cods" ] [ "cods" NOT NULL, "elrik" NOT NULL, "ether" NOT NULL, "jaelen" NOT NULL, "sora" NOT NULL, "sys"."min" no nil ("t2a"."tib0" NOT NULL) NOT NULL as "%1"."%1" ] +| | | table("sys"."t2a") [ "t2a"."tib0" NOT NULL UNIQUE ] +| | ) [ "t2a"."tib0" NOT NULL UNIQUE, tinyint(8) "0" as "elrik", tinyint(8) "0" as "ether", tinyint(8) "0" as "jaelen", tinyint(8) "0" as "sora" ] +| ) [ tinyint(8) "0" as "cods" ] [ "cods" NOT NULL, "elrik" NOT NULL, "ether" NOT NULL, "jaelen" NOT NULL, "sora" NOT NULL, "sys"."min" no nil ("t2a"."tib0" NOT NULL UNIQUE) NOT NULL as "%1"."%1" ] ) [ "cods" NOT NULL UNIQUE, "elrik" NOT NULL, "ether" NOT NULL, "jaelen" NOT NULL, "sora" NOT NULL, "%1"."%1" NOT NULL ] statement ok diff --git a/sql/test/BugTracker-2015/Tests/quantile_function_resolution.Bug-3773.test b/sql/test/BugTracker-2015/Tests/quantile_function_resolution.Bug-3773.test --- a/sql/test/BugTracker-2015/Tests/quantile_function_resolution.Bug-3773.test +++ b/sql/test/BugTracker-2015/Tests/quantile_function_resolution.Bug-3773.test @@ -10,9 +10,9 @@ PLAN select quantile(y, 0.0) from x project ( | group by ( | | project ( -| | | table("sys"."x") [ "x"."y" NOT NULL ] -| | ) [ "x"."y" NOT NULL, double(53) "0" as "%2"."%2" ] -| ) [ ] [ "sys"."quantile" no nil (decimal(18,3)["x"."y" NOT NULL] NOT NULL, "%2"."%2" NOT NULL) UNIQUE as "%1"."%1" ] +| | | table("sys"."x") [ "x"."y" NOT NULL UNIQUE ] +| | ) [ "x"."y" NOT NULL UNIQUE, double(53) "0" as "%2"."%2" ] +| ) [ ] [ "sys"."quantile" no nil (decimal(18,3)["x"."y" NOT NULL UNIQUE] NOT NULL, "%2"."%2" NOT NULL) UNIQUE as "%1"."%1" ] ) [ "%1"."%1" UNIQUE ] query T nosort @@ -21,9 +21,9 @@ PLAN select quantile(y, 0) from x project ( | group by ( | | project ( -| | | table("sys"."x") [ "x"."y" NOT NULL ] -| | ) [ "x"."y" NOT NULL, double(53) "0" as "%2"."%2" ] -| ) [ ] [ "sys"."quantile" no nil (decimal(18,3)["x"."y" NOT NULL] NOT NULL, "%2"."%2" NOT NULL) UNIQUE as "%1"."%1" ] +| | | table("sys"."x") [ "x"."y" NOT NULL UNIQUE ] +| | ) [ "x"."y" NOT NULL UNIQUE, double(53) "0" as "%2"."%2" ] +| ) [ ] [ "sys"."quantile" no nil (decimal(18,3)["x"."y" NOT NULL UNIQUE] NOT NULL, "%2"."%2" NOT NULL) UNIQUE as "%1"."%1" ] ) [ "%1"."%1" UNIQUE ] statement ok diff --git a/sql/test/BugTracker-2015/Tests/schema_view.Bug-3708.test b/sql/test/BugTracker-2015/Tests/schema_view.Bug-3708.test --- a/sql/test/BugTracker-2015/Tests/schema_view.Bug-3708.test +++ b/sql/test/BugTracker-2015/Tests/schema_view.Bug-3708.test @@ -55,8 +55,8 @@ query T nosort PLAN select * from s1.s4 ---- project ( -| table("s1"."s3") [ "s3"."x" NOT NULL ] -) [ "s3"."x" NOT NULL as "s4"."x" ] +| table("s1"."s3") [ "s3"."x" NOT NULL UNIQUE ] +) [ "s3"."x" NOT NULL UNIQUE as "s4"."x" ] statement ok set schema s2 @@ -65,8 +65,8 @@ query T nosort PLAN select * from s1.s4 ---- project ( -| table("s1"."s3") [ "s3"."x" NOT NULL ] -) [ "s3"."x" NOT NULL as "s4"."x" ] +| table("s1"."s3") [ "s3"."x" NOT NULL UNIQUE ] +) [ "s3"."x" NOT NULL UNIQUE as "s4"."x" ] statement ok set schema sys diff --git a/sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test b/sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test --- a/sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test +++ b/sql/test/BugTracker-2016/Tests/memory-consumption-query-PLAN-25joins.Bug-3972.test @@ -134,27 +134,27 @@ top N ( | | | | | | | | | | | | | | | | | | | | | | | | | left outer join ( | | | | | | | | | | | | | | | | | | | | | | | | | | left outer join ( | | | | | | | | | | | | | | | | | | | | | | | | | | | left outer join ( -| | | | | | | | | | | | | | | | | | | | | | | | | | | | table("sys"."table1") [ "table1"."t1pkcol" NOT NULL UNIQUE HASHCOL , "table1"."t1cola1" NOT NULL, "table1"."t1cola11" NOT NULL, "table1"."t1cola12" NOT NULL, "table1"."t1cola82" NOT NULL, "table1"."t1cola91" NOT NULL, "table1"."t1cola101" NOT NULL, "table1"."t1cola111" NOT NULL, "table1"."t1cola112" NOT NULL, "table1"."t1cola114" NOT NULL, "table1"."t1colb1" NOT NULL, "table1"."t1colb111" NOT NULL, "table1"."t1colb112" NOT NULL, "table1"."t1colb113" NOT NULL, "table1"."t1colb114" NOT NULL, "table1"."t1colc91" NOT NULL, "table1"."t1cold1" NOT NULL, "table1"."t1cold111" NOT NULL, "table1"."t1cold112" NOT NULL, "table1"."t1cold113" NOT NULL ], -| | | | | | | | | | | | | | | | | | | | | | | | | | | | table("sys"."table4") [ "table4"."t4cola1" NOT NULL, "table4"."t4cola2" NOT NULL, "table4"."t4cola111" NOT NULL, "table4"."t4colb111" NOT NULL, "table4"."t4colb112" NOT NULL, "table4"."t4colb114" NOT NULL, "table4"."t4colb115" NOT NULL ] -| | | | | | | | | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1cola111" NOT NULL) = ("table4"."t4cola111" NOT NULL) ], -| | | | | | | | | | | | | | | | | | | | | | | | | | | table("sys"."table2") [ "table2"."t2cola1" NOT NULL, "table2"."t2cola10" NOT NULL, "table2"."t2cola81" NOT NULL, "table2"."t2cola82" NOT NULL, "table2"."t2cola112" NOT NULL, "table2"."t2cola113" NOT NULL, "table2"."t2colc111" NOT NULL, "table2"."t2colc112" NOT NULL, "table2"."t2colc113" NOT NULL, "table2"."t2colc114" NOT NULL, "table2"."t2colc115" NOT NULL ] -| | | | | | | | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1cola112" NOT NULL) = ("table2"."t2cola112" NOT NULL) ], -| | | | | | | | | | | | | | | | | | | | | | | | | | table("sys"."table5") [ "table5"."t5cola1" NOT NULL, "table5"."t5cola2" NOT NULL, "table5"."t5cola3" NOT NULL, "table5"."t5cola5" NOT NULL, "table5"."t5cola81" NOT NULL, "table5"."t5cola113" NOT NULL, "table5"."t5colb113" NOT NULL ] -| | | | | | | | | | | | | | | | | | | | | | | | | ) [ ("table5"."t5cola113" NOT NULL) = ("table2"."t2cola113") ], +| | | | | | | | | | | | | | | | | | | | | | | | | | | | table("sys"."table1") [ "table1"."t1pkcol" NOT NULL UNIQUE HASHCOL , "table1"."t1cola1" NOT NULL UNIQUE, "table1"."t1cola11" NOT NULL UNIQUE, "table1"."t1cola12" NOT NULL UNIQUE, "table1"."t1cola82" NOT NULL UNIQUE, "table1"."t1cola91" NOT NULL UNIQUE, "table1"."t1cola101" NOT NULL UNIQUE, "table1"."t1cola111" NOT NULL UNIQUE, "table1"."t1cola112" NOT NULL UNIQUE, "table1"."t1cola114" NOT NULL UNIQUE, "table1"."t1colb1" NOT NULL UNIQUE, "table1"."t1colb111" NOT NULL UNIQUE, "table1"."t1colb112" NOT NULL UNIQUE, "table1"."t1colb113" NOT NULL UNIQUE, "table1"."t1colb114" NOT NULL UNIQUE, "table1"."t1colc91" NOT NULL UNIQUE, "table1"."t1cold1" NOT NULL UNIQUE, "table1"."t1cold111" NOT NULL UNIQUE, "table1"."t1cold112" NOT NULL UNIQUE, "table1"."t1cold113" NOT NULL UNIQUE ], +| | | | | | | | | | | | | | | | | | | | | | | | | | | | table("sys"."table4") [ "table4"."t4cola1" NOT NULL UNIQUE, "table4"."t4cola2" NOT NULL UNIQUE, "table4"."t4cola111" NOT NULL UNIQUE, "table4"."t4colb111" NOT NULL UNIQUE, "table4"."t4colb112" NOT NULL UNIQUE, "table4"."t4colb114" NOT NULL UNIQUE, "table4"."t4colb115" NOT NULL UNIQUE ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1cola111" NOT NULL UNIQUE) = ("table4"."t4cola111" NOT NULL UNIQUE) ], +| | | | | | | | | | | | | | | | | | | | | | | | | | | table("sys"."table2") [ "table2"."t2cola1" NOT NULL UNIQUE, "table2"."t2cola10" NOT NULL UNIQUE, "table2"."t2cola81" NOT NULL UNIQUE, "table2"."t2cola82" NOT NULL UNIQUE, "table2"."t2cola112" NOT NULL UNIQUE, "table2"."t2cola113" NOT NULL UNIQUE, "table2"."t2colc111" NOT NULL UNIQUE, "table2"."t2colc112" NOT NULL UNIQUE, "table2"."t2colc113" NOT NULL UNIQUE, "table2"."t2colc114" NOT NULL UNIQUE, "table2"."t2colc115" NOT NULL UNIQUE ] +| | | | | | | | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1cola112" NOT NULL) = ("table2"."t2cola112" NOT NULL UNIQUE) ], +| | | | | | | | | | | | | | | | | | | | | | | | | | table("sys"."table5") [ "table5"."t5cola1" NOT NULL UNIQUE, "table5"."t5cola2" NOT NULL UNIQUE, "table5"."t5cola3" NOT NULL UNIQUE, "table5"."t5cola5" NOT NULL UNIQUE, "table5"."t5cola81" NOT NULL UNIQUE, "table5"."t5cola113" NOT NULL UNIQUE, "table5"."t5colb113" NOT NULL UNIQUE ] +| | | | | | | | | | | | | | | | | | | | | | | | | ) [ ("table5"."t5cola113" NOT NULL UNIQUE) = ("table2"."t2cola113") ], | | | | | | | | | | | | | | | | | | | | | | | | | table("sys"."table6") [ "table6"."t6pkcol" NOT NULL UNIQUE HASHCOL as "lookup1"."t6pkcol" ] | | | | | | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1cola114" NOT NULL) = ("lookup1"."t6pkcol" NOT NULL UNIQUE HASHCOL ) ], -| | | | | | | | | | | | | | | | | | | | | | | | table("sys"."table2") [ "table2"."t2colb111" NOT NULL as "lookup2"."t2colb111" ] -| | | | | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1colb111" NOT NULL) = ("lookup2"."t2colb111" NOT NULL) ], -| | | | | | | | | | | | | | | | | | | | | | | table("sys"."table5") [ "table5"."t5colb112" NOT NULL as "lookup3"."t5colb112" ] -| | | | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1colb112" NOT NULL) = ("lookup3"."t5colb112" NOT NULL) ], -| | | | | | | | | | | | | | | | | | | | | | table("sys"."table7") [ "table7"."t7colb113" NOT NULL as "lookup4"."t7colb113" ] -| | | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1colb113" NOT NULL) = ("lookup4"."t7colb113" NOT NULL) ], -| | | | | | | | | | | | | | | | | | | | | table("sys"."table8") [ "table8"."t8colb114" NOT NULL as "lookup5"."t8colb114" ] -| | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1colb114" NOT NULL) = ("lookup5"."t8colb114" NOT NULL) ], +| | | | | | | | | | | | | | | | | | | | | | | | table("sys"."table2") [ "table2"."t2colb111" NOT NULL UNIQUE as "lookup2"."t2colb111" ] +| | | | | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1colb111" NOT NULL) = ("lookup2"."t2colb111" NOT NULL UNIQUE) ], +| | | | | | | | | | | | | | | | | | | | | | | table("sys"."table5") [ "table5"."t5colb112" NOT NULL UNIQUE as "lookup3"."t5colb112" ] +| | | | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1colb112" NOT NULL) = ("lookup3"."t5colb112" NOT NULL UNIQUE) ], +| | | | | | | | | | | | | | | | | | | | | | table("sys"."table7") [ "table7"."t7colb113" NOT NULL UNIQUE as "lookup4"."t7colb113" ] +| | | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1colb113" NOT NULL) = ("lookup4"."t7colb113" NOT NULL UNIQUE) ], +| | | | | | | | | | | | | | | | | | | | | table("sys"."table8") [ "table8"."t8colb114" NOT NULL UNIQUE as "lookup5"."t8colb114" ] +| | | | | | | | | | | | | | | | | | | | ) [ ("table1"."t1colb114" NOT NULL) = ("lookup5"."t8colb114" NOT NULL UNIQUE) ], | | | | | | | | | | | | | | | | | | | | table("sys"."table6") [ "table6"."t6pkcol" NOT NULL UNIQUE HASHCOL as "lookup11"."t6pkcol" ] | | | | | | | | | | | | | | | | | | | ) [ ("table4"."t4colb111") = ("lookup11"."t6pkcol" NOT NULL UNIQUE HASHCOL ) ], -| | | | | | | | | | | | | | | | | | | table("sys"."table2") [ "table2"."t2colb112" NOT NULL as "lookup21"."t2colb112" ] -| | | | | | | | | | | | | | | | | | ) [ ("table4"."t4colb112") = ("lookup21"."t2colb112" NOT NULL) ], +| | | | | | | | | | | | | | | | | | | table("sys"."table2") [ "table2"."t2colb112" NOT NULL UNIQUE as "lookup21"."t2colb112" ] +| | | | | | | | | | | | | | | | | | ) [ ("table4"."t4colb112") = ("lookup21"."t2colb112" NOT NULL UNIQUE) ], | | | | | | | | | | | | | | | | | | table("sys"."table5") [ "table5"."t5pkcol" NOT NULL UNIQUE HASHCOL as "lookup31"."t5pkcol" ] | | | | | | | | | | | | | | | | | ) [ ("table5"."t5colb113") = ("lookup31"."t5pkcol" NOT NULL UNIQUE HASHCOL ) ], | | | | | | | | | | | | | | | | | table("sys"."table7") [ "table7"."t7pkcol" NOT NULL UNIQUE HASHCOL as "lookup41"."t7pkcol" ] @@ -171,20 +171,20 @@ top N ( | | | | | | | | | | | ) [ ("table2"."t2colc114") = ("clookup4"."t7pkcol" NOT NULL UNIQUE HASHCOL ) ], | | | | | | | | | | | table("sys"."table8") [ "table8"."t8pkcol" NOT NULL UNIQUE HASHCOL as "clookup5"."t8pkcol" ] | | | | | | | | | | ) [ ("table2"."t2colc115") = ("clookup5"."t8pkcol" NOT NULL UNIQUE HASHCOL ) ], -| | | | | | | | | | table("sys"."table9") [ "table9"."t9pkcol" NOT NULL UNIQUE HASHCOL , "table9"."t9cola1" NOT NULL, "table9"."t9cola91" NOT NULL, "table9"."t9cola111" NOT NULL ] -| | | | | | | | | ) [ ("table1"."t1pkcol" NOT NULL HASHCOL ) = ("table9"."t9cola111" NOT NULL) ], -| | | | | | | | | table("sys"."table10") [ "table10"."t10pkcol" NOT NULL UNIQUE HASHCOL , "table10"."t10cola1" NOT NULL, "table10"."t10cola91" NOT NULL ] +| | | | | | | | | | table("sys"."table9") [ "table9"."t9pkcol" NOT NULL UNIQUE HASHCOL , "table9"."t9cola1" NOT NULL UNIQUE, "table9"."t9cola91" NOT NULL UNIQUE, "table9"."t9cola111" NOT NULL UNIQUE ] +| | | | | | | | | ) [ ("table1"."t1pkcol" NOT NULL HASHCOL ) = ("table9"."t9cola111" NOT NULL UNIQUE) ], +| | | | | | | | | table("sys"."table10") [ "table10"."t10pkcol" NOT NULL UNIQUE HASHCOL , "table10"."t10cola1" NOT NULL UNIQUE, "table10"."t10cola91" NOT NULL UNIQUE ] | | | | | | | | ) [ ("table9"."t9pkcol" HASHCOL ) = ("table10"."t10pkcol" NOT NULL UNIQUE HASHCOL ) ], -| | | | | | | | table("sys"."table11") [ "table11"."t11pkcol" NOT NULL UNIQUE HASHCOL , "table11"."t11cola91" NOT NULL ] +| | | | | | | | table("sys"."table11") [ "table11"."t11pkcol" NOT NULL UNIQUE HASHCOL , "table11"."t11cola91" NOT NULL UNIQUE ] | | | | | | | ) [ ("table9"."t9pkcol" HASHCOL ) = ("table11"."t11pkcol" NOT NULL UNIQUE HASHCOL ) ], -| | | | | | | table("sys"."table3") [ "table3"."t3pkcol" NOT NULL UNIQUE HASHCOL as "a1"."t3pkcol", "table3"."t3cola1" NOT NULL as "a1"."t3cola1" ] +| | | | | | | table("sys"."table3") [ "table3"."t3pkcol" NOT NULL UNIQUE HASHCOL as "a1"."t3pkcol", "table3"."t3cola1" NOT NULL UNIQUE as "a1"."t3cola1" ] _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org