Changeset: f7c218b60924 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f7c218b60924
Modified Files:
        common/utils/msabaoth.c
        sql/benchmarks/tpch/Tests/01-explain.stable.out
        sql/benchmarks/tpch/Tests/01-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/01-plan.stable.out
        sql/benchmarks/tpch/Tests/03-explain.stable.out
        sql/benchmarks/tpch/Tests/03-plan.stable.out
        sql/benchmarks/tpch/Tests/05-explain.stable.out
        sql/benchmarks/tpch/Tests/05-plan.stable.out
        sql/benchmarks/tpch/Tests/06-explain.stable.out
        sql/benchmarks/tpch/Tests/06-plan.stable.out
        sql/benchmarks/tpch/Tests/07-explain.stable.out
        sql/benchmarks/tpch/Tests/07-plan.stable.out
        sql/benchmarks/tpch/Tests/08-explain.stable.out
        sql/benchmarks/tpch/Tests/08-plan.stable.out
        sql/benchmarks/tpch/Tests/09-explain.stable.out
        sql/benchmarks/tpch/Tests/09-plan.stable.out
        sql/benchmarks/tpch/Tests/10-explain.stable.out
        sql/benchmarks/tpch/Tests/10-plan.stable.out
        sql/benchmarks/tpch/Tests/11-explain.stable.out
        sql/benchmarks/tpch/Tests/11-plan.stable.out
        sql/benchmarks/tpch/Tests/14-explain.stable.out
        sql/benchmarks/tpch/Tests/14-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/14-plan.stable.out
        sql/benchmarks/tpch/Tests/15-explain.stable.out
        sql/benchmarks/tpch/Tests/15-plan.stable.out
        sql/benchmarks/tpch/Tests/17-explain.stable.out
        sql/benchmarks/tpch/Tests/17-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/17-plan.stable.out
        sql/benchmarks/tpch/Tests/18-plan.stable.out
        sql/benchmarks/tpch/Tests/19-explain.stable.out
        sql/benchmarks/tpch/Tests/19-plan.stable.out
        sql/benchmarks/tpch/Tests/20-explain.stable.out.int128
        sql/benchmarks/tpch/Tests/20-plan.stable.out
        tools/merovingian/daemon/client.c
        tools/merovingian/daemon/connections.c
        tools/merovingian/daemon/controlrunner.c
        tools/merovingian/daemon/discoveryrunner.c
        tools/merovingian/daemon/forkmserver.c
        tools/merovingian/daemon/handlers.c
        tools/merovingian/daemon/handlers.h
        tools/merovingian/daemon/merovingian.c
        tools/merovingian/daemon/merovingian.h
        tools/merovingian/daemon/multiplex-funnel.c
        tools/merovingian/utils/properties.c
Branch: mosaic
Log Message:

Merge with default


diffs (truncated from 1527 to 300 lines):

diff --git a/common/utils/msabaoth.c b/common/utils/msabaoth.c
--- a/common/utils/msabaoth.c
+++ b/common/utils/msabaoth.c
@@ -594,6 +594,85 @@ msab_getSingleStatus(const char *pathbuf
        sdb->path = strdup(buf);
        sdb->dbname = sdb->path + strlen(sdb->path) - strlen(dbname);
 
+
+       /* check the state of the server by looking at its gdk lock:
+        * - if we can lock it, the server has crashed or isn't running
+        * - if we can't open it because it's locked, the server is
+        *   running
+        * - to distinguish between a crash and proper shutdown, consult
+        *   the uplog
+        * - one exception to all above; if this is the same process, we
+        *   cannot lock (it always succeeds), hence, if we have the
+        *   same signature, we assume running if the uplog states so.
+        */
+       snprintf(buf, sizeof(buf), "%s/%s/%s", pathbuf, dbname,
+                        _sabaoth_internal_uuid);
+       if (stat(buf, &statbuf) != -1) {
+               /* database has the same process signature as ours, which
+                * means, it must be us, rely on the uplog state */
+               snprintf(log, sizeof(log), "%s/%s/%s", pathbuf, dbname, 
UPLOGFILE);
+               if ((f = fopen(log, "r")) != NULL) {
+                       (void)fseek(f, -1, SEEK_END);
+                       if (fread(data, 1, 1, f) != 1) {
+                               /* the log is empty, assume no crash */
+                               sdb->state = SABdbInactive;
+                       } else if (data[0] == '\t') {
+                               /* see if the database has finished starting */
+                               snprintf(buf, sizeof(buf), "%s/%s/%s",
+                                                pathbuf, dbname, STARTEDFILE);
+                               if (stat(buf, &statbuf) == -1) {
+                                       sdb->state = SABdbStarting;
+                               } else {
+                                       sdb->state = SABdbRunning;
+                               }
+                       } else { /* should be \n */
+                               sdb->state = SABdbInactive;
+                       }
+                       (void)fclose(f);
+               }
+       } else if ((snprintf(buf, sizeof(buf), "%s/%s/%s", pathbuf, dbname, 
".gdk_lock") > 0) & /* no typo */
+                          ((fd = MT_lockf(buf, F_TEST, 4, 1)) == -2)) {
+               /* Locking failed; this can be because the lockfile couldn't
+                * be created.  Probably there is no Mserver running for
+                * that case also.
+                */
+               sdb->state = SABdbInactive;
+       } else if (fd == -1) {
+               /* file is locked, so mserver is running, see if the database
+                * has finished starting */
+               snprintf(buf, sizeof(buf), "%s/%s/%s",
+                                pathbuf, dbname, STARTEDFILE);
+               if (stat(buf, &statbuf) == -1) {
+                       sdb->state = SABdbStarting;
+               } else {
+                       sdb->state = SABdbRunning;
+               }
+       } else {
+               /* file is not locked, check for a crash in the uplog */
+               snprintf(log, sizeof(log), "%s/%s/%s", pathbuf, dbname, 
UPLOGFILE);
+               if ((f = fopen(log, "r")) != NULL) {
+                       (void)fseek(f, -1, SEEK_END);
+                       if (fread(data, 1, 1, f) != 1) {
+                               /* the log is empty, assume no crash */
+                               sdb->state = SABdbInactive;
+                       } else if (data[0] == '\n') {
+                               sdb->state = SABdbInactive;
+                       } else { /* should be \t */
+                               sdb->state = SABdbCrashed;
+                       }
+                       (void)fclose(f);
+               } else {
+                       /* no uplog, so presumably never started */
+                       sdb->state = SABdbInactive;
+               }
+       }
+       snprintf(buf, sizeof(buf), "%s/%s/%s", pathbuf, dbname, 
MAINTENANCEFILE);
+       if (stat(buf, &statbuf) == -1) {
+               sdb->locked = 0;
+       } else {
+               sdb->locked = 1;
+       }
+
        /* add scenarios that are supported */
        sdb->scens = NULL;
        snprintf(buf, sizeof(buf), "%s/%s/%s", pathbuf, dbname, SCENARIOFILE);
@@ -638,84 +717,6 @@ msab_getSingleStatus(const char *pathbuf
                (void)fclose(f);
        }
 
-
-       /* check the state of the server by looking at its gdk lock:
-        * - if we can lock it, the server has crashed or isn't running
-        * - if we can't open it because it's locked, the server is
-        *   running
-        * - to distinguish between a crash and proper shutdown, consult
-        *   the uplog
-        * - one exception to all above; if this is the same process, we
-        *   cannot lock (it always succeeds), hence, if we have the
-        *   same signature, we assume running if the uplog states so.
-        */
-       snprintf(buf, sizeof(buf), "%s/%s/%s", pathbuf, dbname,
-                        _sabaoth_internal_uuid);
-       if (stat(buf, &statbuf) != -1) {
-               /* database has the same process signature as ours, which
-                * means, it must be us, rely on the uplog state */
-               snprintf(log, sizeof(log), "%s/%s/%s", pathbuf, dbname, 
UPLOGFILE);
-               if ((f = fopen(log, "r")) != NULL) {
-                       (void)fseek(f, -1, SEEK_END);
-                       if (fread(data, 1, 1, f) != 1) {
-                               /* the log is empty, assume no crash */
-                               sdb->state = SABdbInactive;
-                       } else if (data[0] == '\t') {
-                               /* see if the database has finished starting */
-                               snprintf(buf, sizeof(buf), "%s/%s/%s",
-                                                pathbuf, dbname, STARTEDFILE);
-                               if (stat(buf, &statbuf) == -1) {
-                                       sdb->state = SABdbStarting;
-                               } else {
-                                       sdb->state = SABdbRunning;
-                               }
-                       } else { /* should be \n */
-                               sdb->state = SABdbInactive;
-                       }
-                       (void)fclose(f);
-               }
-       } else if ((snprintf(buf, sizeof(buf), "%s/%s/%s", pathbuf, dbname, 
".gdk_lock") > 0) & /* no typo */
-                          ((fd = MT_lockf(buf, F_TEST, 4, 1)) == -2)) {
-               /* Locking failed; this can be because the lockfile couldn't
-                * be created.  Probably there is no Mserver running for
-                * that case also.
-                */
-               sdb->state = SABdbInactive;
-       } else if (fd == -1) {
-               /* lock denied, so mserver is running, see if the database
-                * has finished starting */
-               snprintf(buf, sizeof(buf), "%s/%s/%s",
-                                pathbuf, dbname, STARTEDFILE);
-               if (stat(buf, &statbuf) == -1) {
-                       sdb->state = SABdbStarting;
-               } else {
-                       sdb->state = SABdbRunning;
-               }
-       } else {
-               /* locking succeed, check for a crash in the uplog */
-               snprintf(log, sizeof(log), "%s/%s/%s", pathbuf, dbname, 
UPLOGFILE);
-               if ((f = fopen(log, "r")) != NULL) {
-                       (void)fseek(f, -1, SEEK_END);
-                       if (fread(data, 1, 1, f) != 1) {
-                               /* the log is empty, assume no crash */
-                               sdb->state = SABdbInactive;
-                       } else if (data[0] == '\n') {
-                               sdb->state = SABdbInactive;
-                       } else { /* should be \t */
-                               sdb->state = SABdbCrashed;
-                       }
-                       (void)fclose(f);
-               } else {
-                       /* no uplog, so presumably never started */
-                       sdb->state = SABdbInactive;
-               }
-       }
-       snprintf(buf, sizeof(buf), "%s/%s/%s", pathbuf, dbname, 
MAINTENANCEFILE);
-       if (stat(buf, &statbuf) == -1) {
-               sdb->locked = 0;
-       } else {
-               sdb->locked = 1;
-       }
        return sdb;
 }
 
diff --git a/sql/benchmarks/tpch/Tests/01-explain.stable.out 
b/sql/benchmarks/tpch/Tests/01-explain.stable.out
--- a/sql/benchmarks/tpch/Tests/01-explain.stable.out
+++ b/sql/benchmarks/tpch/Tests/01-explain.stable.out
@@ -55,14 +55,14 @@ function user.main():void;
     X_1244 := bat.new(nil:str);
     X_1251 := bat.append(X_1244,"sys.lineitem");
     X_1261 := bat.append(X_1251,"sys.lineitem");
-    X_1267 := bat.append(X_1261,"sys.L2");
-    X_1277 := bat.append(X_1267,"sys.L4");
-    X_1284 := bat.append(X_1277,"sys.L6");
-    X_1292 := bat.append(X_1284,"sys.L10");
-    X_1300 := bat.append(X_1292,"sys.L12");
-    X_1310 := bat.append(X_1300,"sys.L14");
-    X_1317 := bat.append(X_1310,"sys.L16");
-    X_1324 := bat.append(X_1317,"sys.L20");
+    X_1267 := bat.append(X_1261,"sys.L5");
+    X_1277 := bat.append(X_1267,"sys.L10");
+    X_1284 := bat.append(X_1277,"sys.L13");
+    X_1292 := bat.append(X_1284,"sys.L16");
+    X_1300 := bat.append(X_1292,"sys.L21");
+    X_1310 := bat.append(X_1300,"sys.L24");
+    X_1317 := bat.append(X_1310,"sys.L27");
+    X_1324 := bat.append(X_1317,"sys.L32");
     X_1246 := bat.new(nil:str);
     X_1253 := bat.append(X_1246,"l_returnflag");
     X_1262 := bat.append(X_1253,"l_linestatus");
diff --git a/sql/benchmarks/tpch/Tests/01-plan.stable.out 
b/sql/benchmarks/tpch/Tests/01-plan.stable.out
--- a/sql/benchmarks/tpch/Tests/01-plan.stable.out
+++ b/sql/benchmarks/tpch/Tests/01-plan.stable.out
@@ -56,9 +56,9 @@ project (
 | | | select (
 | | | | table(sys.lineitem) [ lineitem.l_quantity NOT NULL, 
lineitem.l_extendedprice NOT NULL, lineitem.l_discount NOT NULL, lineitem.l_tax 
NOT NULL, lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, 
lineitem.l_shipdate NOT NULL ] COUNT 
 | | | ) [ lineitem.l_shipdate NOT NULL <= sys.sql_sub(date "1998-12-01", 
sec_interval(4) "7776000000") ]
-| | ) [ lineitem.l_quantity NOT NULL, lineitem.l_extendedprice NOT NULL, 
lineitem.l_discount NOT NULL, lineitem.l_tax NOT NULL, lineitem.l_returnflag 
NOT NULL, lineitem.l_linestatus NOT NULL, sys.sql_sub(decimal(15,2)[tinyint 
"1"], lineitem.l_discount NOT NULL) as L21.L21, 
sys.sql_mul(lineitem.l_extendedprice NOT NULL, L21.L21) as L22.L22, 
sys.sql_add(lineitem.l_tax NOT NULL, decimal(15,2)[tinyint "1"]) as L23.L23, 
sys.sql_mul(L22.L22, L23.L23) as L24.L24, double[lineitem.l_quantity NOT NULL] 
as L25.L25, double[lineitem.l_extendedprice NOT NULL] as L26.L26, 
double[lineitem.l_discount NOT NULL] as L27.L27 ]
-| ) [ lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL ] [ 
lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, sys.sum no nil 
(lineitem.l_quantity NOT NULL) NOT NULL as L1.L1, sys.sum no nil 
(lineitem.l_extendedprice NOT NULL) NOT NULL as L3.L3, sys.sum no nil (L22.L22) 
as L5.L5, sys.sum no nil (L24.L24) as L7.L7, sys.avg no nil (L25.L25) as 
L11.L11, sys.avg no nil (L26.L26) as L13.L13, sys.avg no nil (L27.L27) as 
L15.L15, sys.count() NOT NULL as L17.L17 ]
-) [ lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, L1 NOT 
NULL as L2.sum_qty, L3 NOT NULL as L4.sum_base_price, L5 as L6.sum_disc_price, 
L7 as L10.sum_charge, L11 as L12.avg_qty, L13 as L14.avg_price, L15 as 
L16.avg_disc, L17 NOT NULL as L20.count_order ] [ lineitem.l_returnflag ASC NOT 
NULL, lineitem.l_linestatus ASC NOT NULL ]
+| | ) [ lineitem.l_quantity NOT NULL, lineitem.l_extendedprice NOT NULL, 
lineitem.l_discount NOT NULL, lineitem.l_tax NOT NULL, lineitem.l_returnflag 
NOT NULL, lineitem.l_linestatus NOT NULL, sys.sql_sub(decimal(15,2)[tinyint 
"1"], lineitem.l_discount NOT NULL) as L35.L35, 
sys.sql_mul(lineitem.l_extendedprice NOT NULL, L35.L35) as L36.L36, 
sys.sql_add(lineitem.l_tax NOT NULL, decimal(15,2)[tinyint "1"]) as L37.L37, 
sys.sql_mul(L36.L36, L37.L37) as L40.L40, double[lineitem.l_quantity NOT NULL] 
as L41.L41, double[lineitem.l_extendedprice NOT NULL] as L42.L42, 
double[lineitem.l_discount NOT NULL] as L43.L43 ]
+| ) [ lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL ] [ 
lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, sys.sum no nil 
(lineitem.l_quantity NOT NULL) NOT NULL as L4.L4, sys.sum no nil 
(lineitem.l_extendedprice NOT NULL) NOT NULL as L7.L7, sys.sum no nil (L36.L36) 
as L12.L12, sys.sum no nil (L40.L40) as L15.L15, sys.avg no nil (L41.L41) as 
L20.L20, sys.avg no nil (L42.L42) as L23.L23, sys.avg no nil (L43.L43) as 
L26.L26, sys.count() NOT NULL as L31.L31 ]
+) [ lineitem.l_returnflag NOT NULL, lineitem.l_linestatus NOT NULL, L4 NOT 
NULL as L5.sum_qty, L7 NOT NULL as L10.sum_base_price, L12 as 
L13.sum_disc_price, L15 as L16.sum_charge, L20 as L21.avg_qty, L23 as 
L24.avg_price, L26 as L27.avg_disc, L31 NOT NULL as L32.count_order ] [ 
lineitem.l_returnflag ASC NOT NULL, lineitem.l_linestatus ASC NOT NULL ]
 
 # 22:46:28 >  
 # 22:46:28 >  "Done."
diff --git a/sql/benchmarks/tpch/Tests/03-explain.stable.out 
b/sql/benchmarks/tpch/Tests/03-explain.stable.out
--- a/sql/benchmarks/tpch/Tests/03-explain.stable.out
+++ b/sql/benchmarks/tpch/Tests/03-explain.stable.out
@@ -57,7 +57,7 @@ function user.s4_1():void;
     X_211:void := querylog.define("explain select\n l_orderkey,\n 
sum(l_extendedprice * (1 - l_discount)) as revenue,\n o_orderdate,\n 
o_shippriority\nfrom\n customer,\n orders,\n lineitem\nwhere\n c_mktsegment = 
\\'BUILDING\\'\n and c_custkey = o_custkey\n and l_orderkey = o_orderkey\n and 
o_orderdate < date \\'1995-03-15\\'\n and l_shipdate > date 
\\'1995-03-15\\'\ngroup by\n l_orderkey,\n o_orderdate,\n o_shippriority\norder 
by\n revenue desc,\n o_orderdate\nlimit 10;","sequential_pipe",78);
     X_170 := bat.new(nil:str);
     X_177 := bat.append(X_170,"sys.lineitem");
-    X_187 := bat.append(X_177,"sys.L2");
+    X_187 := bat.append(X_177,"sys.L4");
     X_197 := bat.append(X_187,"sys.orders");
     X_205 := bat.append(X_197,"sys.orders");
     X_172 := bat.new(nil:str);
diff --git a/sql/benchmarks/tpch/Tests/03-plan.stable.out 
b/sql/benchmarks/tpch/Tests/03-plan.stable.out
--- a/sql/benchmarks/tpch/Tests/03-plan.stable.out
+++ b/sql/benchmarks/tpch/Tests/03-plan.stable.out
@@ -51,7 +51,7 @@ Ready.
 % .plan # table_name
 % rel # name
 % clob # type
-% 319 # length
+% 325 # length
 top N (
 | project (
 | | group by (
@@ -69,9 +69,9 @@ top N (
 | | | | | | table(sys.lineitem) [ lineitem.l_orderkey NOT NULL HASHCOL , 
lineitem.l_extendedprice NOT NULL, lineitem.l_discount NOT NULL, 
lineitem.l_shipdate NOT NULL, lineitem.%lineitem_l_orderkey_fkey NOT NULL 
JOINIDX sys.lineitem.lineitem_l_orderkey_fkey ] COUNT 
 | | | | | ) [ lineitem.l_shipdate NOT NULL > date "1995-03-15" ]
 | | | | ) [ lineitem.%lineitem_l_orderkey_fkey NOT NULL = orders.%TID% NOT 
NULL JOINIDX sys.lineitem.lineitem_l_orderkey_fkey ]
-| | | ) [ orders.o_orderdate NOT NULL, orders.o_shippriority NOT NULL, 
lineitem.l_orderkey NOT NULL HASHCOL , lineitem.l_extendedprice NOT NULL, 
lineitem.l_discount NOT NULL, sys.sql_sub(decimal(15,2)[tinyint "1"], 
lineitem.l_discount NOT NULL) as L3.L3, sys.sql_mul(lineitem.l_extendedprice 
NOT NULL, L3.L3) as L4.L4 ]
-| | ) [ lineitem.l_orderkey NOT NULL HASHCOL , orders.o_shippriority NOT NULL, 
orders.o_orderdate NOT NULL ] [ lineitem.l_orderkey NOT NULL HASHCOL , 
orders.o_orderdate NOT NULL, orders.o_shippriority NOT NULL, sys.sum no nil 
(L4.L4) as L1.L1 ]
-| ) [ lineitem.l_orderkey NOT NULL, L1 as L2.revenue, orders.o_orderdate NOT 
NULL, orders.o_shippriority NOT NULL ] [ L2.revenue, orders.o_orderdate ASC NOT 
NULL ]
+| | | ) [ orders.o_orderdate NOT NULL, orders.o_shippriority NOT NULL, 
lineitem.l_orderkey NOT NULL HASHCOL , lineitem.l_extendedprice NOT NULL, 
lineitem.l_discount NOT NULL, sys.sql_sub(decimal(15,2)[tinyint "1"], 
lineitem.l_discount NOT NULL) as L13.L13, sys.sql_mul(lineitem.l_extendedprice 
NOT NULL, L13.L13) as L14.L14 ]
+| | ) [ lineitem.l_orderkey NOT NULL HASHCOL , orders.o_shippriority NOT NULL, 
orders.o_orderdate NOT NULL ] [ lineitem.l_orderkey NOT NULL HASHCOL , 
orders.o_orderdate NOT NULL, orders.o_shippriority NOT NULL, sys.sum no nil 
(L14.L14) as L3.L3 ]
+| ) [ lineitem.l_orderkey NOT NULL, L3 as L4.revenue, orders.o_orderdate NOT 
NULL, orders.o_shippriority NOT NULL ] [ L4.revenue, orders.o_orderdate ASC NOT 
NULL ]
 ) [ bigint "10" ]
 
 # 22:46:29 >  
diff --git a/sql/benchmarks/tpch/Tests/05-explain.stable.out 
b/sql/benchmarks/tpch/Tests/05-explain.stable.out
--- a/sql/benchmarks/tpch/Tests/05-explain.stable.out
+++ b/sql/benchmarks/tpch/Tests/05-explain.stable.out
@@ -58,7 +58,7 @@ function user.s4_1():void;
     X_237:void := querylog.define("explain select\n n_name,\n 
sum(l_extendedprice * (1 - l_discount)) as revenue\nfrom\n customer,\n 
orders,\n lineitem,\n supplier,\n nation,\n region\nwhere\n c_custkey = 
o_custkey\n and l_orderkey = o_orderkey\n and l_suppkey = s_suppkey\n and 
c_nationkey = s_nationkey\n and s_nationkey = n_nationkey\n and n_regionkey = 
r_regionkey\n and r_name = \\'ASIA\\'\n and o_orderdate >= date 
\\'1994-01-01\\'\n and o_orderdate < date \\'1994-01-01\\' + interval \\'1\\' 
year\ngroup by\n n_name\norder by\n revenue desc;","sequential_pipe",93);
     X_210 := bat.new(nil:str);
     X_217 := bat.append(X_210,"sys.nation");
-    X_227 := bat.append(X_217,"sys.L2");
+    X_227 := bat.append(X_217,"sys.L4");
     X_212 := bat.new(nil:str);
     X_219 := bat.append(X_212,"n_name");
     X_229 := bat.append(X_219,"revenue");
diff --git a/sql/benchmarks/tpch/Tests/05-plan.stable.out 
b/sql/benchmarks/tpch/Tests/05-plan.stable.out
--- a/sql/benchmarks/tpch/Tests/05-plan.stable.out
+++ b/sql/benchmarks/tpch/Tests/05-plan.stable.out
@@ -52,7 +52,7 @@ Ready.
 % .plan # table_name
 % rel # name
 % clob # type
-% 241 # length
+% 247 # length
 project (
 | group by (
 | | project (
@@ -76,9 +76,9 @@ project (
 | | | | | table(sys.region) [ region.r_name NOT NULL, region.%TID% NOT NULL ] 
COUNT 
 | | | | ) [ region.r_name NOT NULL = char(25) "ASIA" ]
 | | | ) [ nation.%nation_n_regionkey_fkey NOT NULL = region.%TID% NOT NULL 
JOINIDX sys.nation.nation_n_regionkey_fkey ]
-| | ) [ lineitem.l_extendedprice NOT NULL, lineitem.l_discount NOT NULL, 
nation.n_name NOT NULL, sys.sql_sub(decimal(15,2)[tinyint "1"], 
lineitem.l_discount NOT NULL) as L3.L3, sys.sql_mul(lineitem.l_extendedprice 
NOT NULL, L3.L3) as L4.L4 ]
-| ) [ nation.n_name NOT NULL ] [ nation.n_name NOT NULL, sys.sum no nil 
(L4.L4) as L1.L1 ]
-) [ nation.n_name NOT NULL, L1 as L2.revenue ] [ L2.revenue ]
+| | ) [ lineitem.l_extendedprice NOT NULL, lineitem.l_discount NOT NULL, 
nation.n_name NOT NULL, sys.sql_sub(decimal(15,2)[tinyint "1"], 
lineitem.l_discount NOT NULL) as L14.L14, sys.sql_mul(lineitem.l_extendedprice 
NOT NULL, L14.L14) as L15.L15 ]
+| ) [ nation.n_name NOT NULL ] [ nation.n_name NOT NULL, sys.sum no nil 
(L15.L15) as L3.L3 ]
+) [ nation.n_name NOT NULL, L3 as L4.revenue ] [ L4.revenue ]
 
 # 22:46:29 >  
 # 22:46:29 >  "Done."
diff --git a/sql/benchmarks/tpch/Tests/06-plan.stable.out 
b/sql/benchmarks/tpch/Tests/06-plan.stable.out
--- a/sql/benchmarks/tpch/Tests/06-plan.stable.out
+++ b/sql/benchmarks/tpch/Tests/06-plan.stable.out
@@ -44,9 +44,9 @@ project (
 | | | select (
 | | | | table(sys.lineitem) [ lineitem.l_quantity NOT NULL, 
lineitem.l_extendedprice NOT NULL, lineitem.l_discount NOT NULL, 
lineitem.l_shipdate NOT NULL ] COUNT 
 | | | ) [ date "1994-01-01" <= lineitem.l_shipdate NOT NULL < sys.sql_add(date 
"1994-01-01", month_interval "12"), 
decimal(15,2)[sys.sql_sub(decimal(3,2)[decimal(2,2) "6"], decimal(3,2) "1")] <= 
lineitem.l_discount NOT NULL <= 
decimal(15,2)[sys.sql_add(decimal(3,2)[decimal(2,2) "6"], decimal(3,2) "1")], 
lineitem.l_quantity NOT NULL < decimal(15,2)[tinyint "24"] ]
-| | ) [ lineitem.l_extendedprice NOT NULL, lineitem.l_discount NOT NULL, 
sys.sql_mul(lineitem.l_extendedprice NOT NULL, lineitem.l_discount NOT NULL) as 
L3.L3 ]
-| ) [  ] [ sys.sum no nil (L3.L3) as L1.L1 ]
-) [ L1 as L2.revenue ]
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to