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

Reply via email to