Changeset: a764357d30b7 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a764357d30b7
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
        sql/backends/monet5/UDF/udf/Tests/udf-fuse.stable.out
        sql/backends/monet5/UDF/udf/Tests/udf-reverse.stable.out
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_gencode.h
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_upgrades.c
        sql/common/sql_backend.c
        sql/common/sql_backend.h
        sql/common/sql_string.c
        sql/common/sql_string.h
        sql/scripts/51_sys_schema_extension.sql
        sql/server/rel_dump.c
        sql/server/rel_exp.c
        sql/server/rel_exp.h
        sql/server/rel_optimizer.c
        sql/server/rel_planner.c
        sql/server/rel_propagate.c
        sql/server/rel_psm.c
        sql/server/rel_schema.c
        sql/server/rel_select.c
        sql/server/rel_semantic.c
        sql/server/rel_updates.c
        sql/server/sql_env.c
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
        sql/server/sql_parser.y
        sql/server/sql_qc.c
        sql/server/sql_qc.h
        sql/server/sql_scan.c
        sql/server/sql_scan.h
        sql/server/sql_semantic.c
        sql/server/sql_semantic.h
        
sql/test/BugDay_2005-11-09_2.9.3/Tests/sql_server_crash.SF-1080024.stable.out
        sql/test/BugTracker-2009/Tests/prepare_decimal_bug.SF-2831994.stable.err
        sql/test/BugTracker-2009/Tests/prepare_decimal_bug.SF-2831994.stable.out
        
sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
        sql/test/BugTracker-2010/Tests/prepare_stmt.Bug-2533.Bug-2534.stable.err
        sql/test/BugTracker-2010/Tests/prepare_stmt.Bug-2533.Bug-2534.stable.out
        sql/test/BugTracker-2011/Tests/and-power.Bug-3013.stable.out
        sql/test/BugTracker-2012/Tests/querycache.Bug-3212.stable.out
        
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
        sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out
        sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out
        sql/test/BugTracker-2016/Tests/decimal_vs_integer.Bug-3941.stable.out
        
sql/test/BugTracker-2016/Tests/prepare_without_querycache.Bug-4047.stable.err
        sql/test/BugTracker-2017/Tests/drop_not_null_on_pkey.Bug-6189.stable.out
        sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case-nullif-coalesce.Bug-6565.stable.out
        
sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
        sql/test/BugTracker/Tests/bind_with_cast.SF-1720934.stable.err
        sql/test/BugTracker/Tests/bind_with_cast.SF-1720934.stable.out
        sql/test/BugTracker/Tests/caching.SF-1651599.stable.out
        sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-0join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-0join-view.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-view.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-view.stable.out
        sql/test/Tests/decimal2.stable.out
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/mapi/Tests/sql_int128.stable.out.int128
        sql/test/merge-partitions/Tests/mergepart09.stable.err
        sql/test/mergetables/Tests/mergequery.stable.out
        sql/test/pg_regress/Tests/date.stable.err
        sql/test/pg_regress/Tests/strings.stable.out
        sql/test/pg_regress/Tests/strings_cast.stable.out
        sql/test/remote/Tests/partition_elim.stable.out
        sql/test/subquery/Tests/correlated.stable.out
Branch: context
Log Message:

removed query caching - seems more overhead and maintains then it gives 
performance improvements
        removing this also gives more early optimization tricks
execution of prepared statements are handled similar too CALL's


diffs (truncated from 6576 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -12030,7 +12030,6 @@ stdout of test 'MAL-signatures` in direc
 [ "url",       "url",  "command url.url(s:str):url ",  "URLnew;",      "Create 
an URL from a string literal"   ]
 [ "url",       "url",  "command url.url(s:url):url ",  "URLnoop;",     "Create 
an URL from a string literal"   ]
 [ "user",      "main", "function user.main():void;",   "",     ""      ]
-[ "user",      "s2_0", "function user.s2_0():void;",   "",     ""      ]
 [ "uuid",      "#cmp", "command uuid.#cmp():void ",    "UUIDcompare;", ""      
]
 [ "uuid",      "#fromstr",     "command uuid.#fromstr():void ",        
"UUIDfromString;",      ""      ]
 [ "uuid",      "#hash",        "command uuid.#hash():void ",   "UUIDhash;",    
""      ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -16458,7 +16458,6 @@ stdout of test 'MAL-signatures` in direc
 [ "url",       "url",  "command url.url(s:str):url ",  "URLnew;",      "Create 
an URL from a string literal"   ]
 [ "url",       "url",  "command url.url(s:url):url ",  "URLnoop;",     "Create 
an URL from a string literal"   ]
 [ "user",      "main", "function user.main():void;",   "",     ""      ]
-[ "user",      "s2_0", "function user.s2_0():void;",   "",     ""      ]
 [ "uuid",      "#cmp", "command uuid.#cmp():void ",    "UUIDcompare;", ""      
]
 [ "uuid",      "#fromstr",     "command uuid.#fromstr():void ",        
"UUIDfromString;",      ""      ]
 [ "uuid",      "#hash",        "command uuid.#hash():void ",   "UUIDhash;",    
""      ]
diff --git 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
--- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
+++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
@@ -60,8 +60,8 @@ stdout of test 'opt_sql_append` in direc
 % mal # name
 % clob # type
 % 180 # length
-function user.s10_0():void;
-    X_1:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';":str, "sequential_pipe":str, 22:int);
+function user.main():void;
+    X_1:void := querylog.define("explain copy into ttt from '/tmp/xyz';":str, 
"sequential_pipe":str, 21:int);
     X_4:int := sql.mvc();
     (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := sql.copy_from(nil:ptr, 
"|":str, "\n":str, nil:str, "null":str, "/tmp/xyz":str, -1:lng, 0:lng, 0:int, 
0:int, nil:str, 0:int);
     X_30:int := sql.append(X_4:int, "sys":str, "ttt":str, "a":str, 
X_26:bat[:int]);
@@ -69,23 +69,17 @@ function user.s10_0():void;
     X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_28:bat[:int]);
     X_40:lng := aggr.count(X_28:bat[:int]);
     sql.affectedRows(X_38:int, X_40:lng);
-end user.s10_0;
-#inline               actions= 0 time=1 usec 
-#candidates           actions= 1 time=14 usec 
-#remap                actions= 0 time=3 usec 
-#costModel            actions= 1 time=12 usec 
-#coercions            actions=10 time=13 usec 
-#evaluate             actions= 0 time=2 usec 
-#emptybind            actions= 0 time=4 usec 
-#pushselect           actions= 0 time=3 usec 
-#aliases              actions= 0 time=4 usec 
-#mitosis              actions= 0 time=2 usec 
-#mergetable           actions= 0 time=17 usec 
-#deadcode             actions= 0 time=5 usec 
-#aliases              actions= 0 time=4 usec 
-#constants            actions= 0 time=5 usec 
-#commonTerms          actions= 0 time=4 usec 
-#projectionpath       actions= 0 time=3 usec 
+end user.main;
+#inline               actions= 0 time=0 usec 
+#remap                actions= 0 time=1 usec 
+#costmodel            actions= 1 time=1 usec 
+#coercion             actions=12 time=3 usec 
+#aliases              actions=12 time=5 usec 
+#evaluate             actions= 0 time=3 usec 
+#emptybind            actions= 0 time=0 usec 
+#pushselect           actions= 0 time=2 usec 
+#aliases              actions= 0 time=0 usec 
+#mergetable           actions= 0 time=15 usec 
 #deadcode             actions= 0 time=4 usec 
 #reorder              actions= 1 time=19 usec 
 #reduce               actions=33 time=23 usec 
@@ -119,8 +113,8 @@ end user.s10_0;
 % mal # name
 % clob # type
 % 180 # length
-function user.s26_0():void;
-    X_1:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';":str, "user_0":str, 22:int);
+function user.main():void;
+    X_1:void := querylog.define("explain copy into ttt from '/tmp/xyz';":str, 
"user_0":str, 21:int);
     X_4:int := sql.mvc();
     (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := sql.copy_from(nil:ptr, 
"|":str, "\n":str, nil:str, "null":str, "/tmp/xyz":str, -1:lng, 0:lng, 0:int, 
0:int, nil:str, 0:int);
     X_30:int := sql.append(X_4:int, "sys":str, "ttt":str, "a":str, 
X_26:bat[:int]);
@@ -128,7 +122,7 @@ function user.s26_0():void;
     X_40:lng := aggr.count(X_28:bat[:int]);
     X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_28:bat[:int]);
     sql.affectedRows(X_38:int, X_40:lng);
-end user.s26_0;
+end user.main;
 #inline               actions= 0 time=1 usec 
 #candidates           actions= 1 time=14 usec 
 #remap                actions= 0 time=3 usec 
diff --git a/sql/backends/monet5/UDF/udf/Tests/udf-fuse.stable.out 
b/sql/backends/monet5/UDF/udf/Tests/udf-fuse.stable.out
--- a/sql/backends/monet5/UDF/udf/Tests/udf-fuse.stable.out
+++ b/sql/backends/monet5/UDF/udf/Tests/udf-fuse.stable.out
@@ -27,11 +27,11 @@ stdout of test 'udf-fuse` in directory '
 % mal # name
 % clob # type
 % 95 # length
-function user.s4_0():void;
-    X_3:void := querylog.define("explain select fuse(1,2);":str, 
"sequential_pipe":str, 8:int);
+function user.main():void;
+    X_1:void := querylog.define("explain select fuse(1,2);":str, 
"sequential_pipe":str, 7:int);
     X_9:sht := udf.fuse(1:bte, 2:bte);
     sql.resultSet(".L2":str, "L2":str, "smallint":str, 16:int, 0:int, 7:int, 
X_9:sht);
-end user.s4_0;
+end user.main;
 #inline               actions= 0 time=0 usec 
 #remap                actions= 0 time=1 usec 
 #costmodel            actions= 1 time=0 usec 
@@ -68,11 +68,11 @@ end user.s4_0;
 % mal # name
 % clob # type
 % 101 # length
-function user.s6_0():void;
-    X_3:void := querylog.define("explain select fuse(1000,2000);":str, 
"sequential_pipe":str, 8:int);
+function user.main():void;
+    X_1:void := querylog.define("explain select fuse(1000,2000);":str, 
"sequential_pipe":str, 7:int);
     X_9:int := udf.fuse(1000:sht, 2000:sht);
     sql.resultSet(".L2":str, "L2":str, "int":str, 32:int, 0:int, 7:int, 
X_9:int);
-end user.s6_0;
+end user.main;
 #inline               actions= 0 time=0 usec 
 #remap                actions= 0 time=1 usec 
 #costmodel            actions= 1 time=0 usec 
@@ -109,13 +109,13 @@ end user.s6_0;
 % mal # name
 % clob # type
 % 107 # length
-function user.s8_0():void;
-    X_3:void := querylog.define("explain select fuse(1000000,2000000);":str, 
"sequential_pipe":str, 8:int);
+function user.main():void;
+    X_1:void := querylog.define("explain select fuse(1000000,2000000);":str, 
"sequential_pipe":str, 7:int);
     X_9:lng := udf.fuse(1000000:int, 2000000:int);
     sql.resultSet(".L2":str, "L2":str, "bigint":str, 64:int, 0:int, 7:int, 
X_9:lng);
-end user.s8_0;
-#inline               actions= 0 time=1 usec 
-#remap                actions= 0 time=0 usec 
+end user.main;
+#inline               actions= 0 time=0 usec 
+#remap                actions= 0 time=1 usec 
 #costmodel            actions= 1 time=0 usec 
 #coercion             actions= 0 time=0 usec 
 #aliases              actions= 2 time=2 usec 
@@ -168,8 +168,8 @@ end user.s8_0;
 % mal # name
 % clob # type
 % 114 # length
-function user.s16_0():void;
-    X_1:void := querylog.define("explain select fuse(a,b) from udf_fuse;":str, 
"sequential_pipe":str, 27:int);
+function user.main():void;
+    X_1:void := querylog.define("explain select fuse(a,b) from udf_fuse;":str, 
"sequential_pipe":str, 26:int);
     X_29:bat[:str] := bat.new(nil:str);
     X_35:bat[:int] := bat.new(nil:int);
     X_33:bat[:int] := bat.new(nil:int);
@@ -188,9 +188,9 @@ function user.s16_0():void;
     X_42:bat[:int] := bat.append(X_33:bat[:int], 16:int);
     X_44:bat[:int] := bat.append(X_35:bat[:int], 0:int);
     sql.resultSet(X_36:bat[:str], X_38:bat[:str], X_40:bat[:str], 
X_42:bat[:int], X_44:bat[:int], X_25:bat[:sht]);
-end user.s16_0;
-#inline               actions= 0 time=1 usec 
-#remap                actions= 1 time=6 usec 
+end user.main;
+#inline               actions= 0 time=0 usec 
+#remap                actions= 1 time=9 usec 
 #costmodel            actions= 1 time=1 usec 
 #coercion             actions= 0 time=1 usec 
 #aliases              actions= 0 time=1 usec 
@@ -219,8 +219,8 @@ end user.s16_0;
 % mal # name
 % clob # type
 % 114 # length
-function user.s18_0():void;
-    X_1:void := querylog.define("explain select fuse(c,d) from udf_fuse;":str, 
"sequential_pipe":str, 27:int);
+function user.main():void;
+    X_1:void := querylog.define("explain select fuse(c,d) from udf_fuse;":str, 
"sequential_pipe":str, 26:int);
     X_29:bat[:str] := bat.new(nil:str);
     X_35:bat[:int] := bat.new(nil:int);
     X_33:bat[:int] := bat.new(nil:int);
@@ -239,7 +239,7 @@ function user.s18_0():void;
     X_42:bat[:int] := bat.append(X_33:bat[:int], 32:int);
     X_44:bat[:int] := bat.append(X_35:bat[:int], 0:int);
     sql.resultSet(X_36:bat[:str], X_38:bat[:str], X_40:bat[:str], 
X_42:bat[:int], X_44:bat[:int], X_25:bat[:int]);
-end user.s18_0;
+end user.main;
 #inline               actions= 0 time=0 usec 
 #remap                actions= 1 time=4 usec 
 #costmodel            actions= 1 time=1 usec 
@@ -270,8 +270,8 @@ end user.s18_0;
 % mal # name
 % clob # type
 % 114 # length
-function user.s20_0():void;
-    X_1:void := querylog.define("explain select fuse(e,f) from udf_fuse;":str, 
"sequential_pipe":str, 27:int);
+function user.main():void;
+    X_1:void := querylog.define("explain select fuse(e,f) from udf_fuse;":str, 
"sequential_pipe":str, 26:int);
     X_29:bat[:str] := bat.new(nil:str);
     X_35:bat[:int] := bat.new(nil:int);
     X_33:bat[:int] := bat.new(nil:int);
@@ -290,9 +290,9 @@ function user.s20_0():void;
     X_42:bat[:int] := bat.append(X_33:bat[:int], 64:int);
     X_44:bat[:int] := bat.append(X_35:bat[:int], 0:int);
     sql.resultSet(X_36:bat[:str], X_38:bat[:str], X_40:bat[:str], 
X_42:bat[:int], X_44:bat[:int], X_25:bat[:lng]);
-end user.s20_0;
-#inline               actions= 0 time=0 usec 
-#remap                actions= 1 time=4 usec 
+end user.main;
+#inline               actions= 0 time=1 usec 
+#remap                actions= 1 time=5 usec 
 #costmodel            actions= 1 time=1 usec 
 #coercion             actions= 0 time=1 usec 
 #aliases              actions= 0 time=0 usec 
diff --git a/sql/backends/monet5/UDF/udf/Tests/udf-reverse.stable.out 
b/sql/backends/monet5/UDF/udf/Tests/udf-reverse.stable.out
--- a/sql/backends/monet5/UDF/udf/Tests/udf-reverse.stable.out
+++ b/sql/backends/monet5/UDF/udf/Tests/udf-reverse.stable.out
@@ -46,17 +46,17 @@ stdout of test 'udf-reverse` in director
 % .explain # table_name
 % mal # name
 % clob # type
-% 108 # length
-function user.s4_0():void;
-    X_2:void := querylog.define("explain select reverse(\\'MonetDB\\');":str, 
"sequential_pipe":str, 7:int);
+% 104 # length
+function user.main():void;
+    X_1:void := querylog.define("explain select reverse('MonetDB');":str, 
"sequential_pipe":str, 6:int);
     X_7:str := udf.reverse("MonetDB":str);
     sql.resultSet(".L2":str, "L2":str, "clob":str, 0:int, 0:int, 4:int, 
X_7:str);
-end user.s4_0;
-#inline               actions= 0 time=1 usec 
-#remap                actions= 0 time=0 usec 
-#costmodel            actions= 1 time=0 usec 
-#coercion             actions= 0 time=0 usec 
-#aliases              actions= 1 time=2 usec 
+end user.main;
+#inline               actions= 0 time=0 usec 
+#remap                actions= 0 time=1 usec 
+#costmodel            actions= 1 time=1 usec 
+#coercion             actions= 1 time=3 usec 
+#aliases              actions= 1 time=3 usec 
 #evaluate             actions= 0 time=2 usec 
 #emptybind            actions= 0 time=1 usec 
 #pushselect           actions= 0 time=1 usec 
@@ -106,8 +106,8 @@ end user.s4_0;
 % mal # name
 % clob # type
 % 114 # length
-function user.s16_0():void;
-    X_1:void := querylog.define("explain select reverse(x) from 
udf_reverse;":str, "sequential_pipe":str, 22:int);
+function user.main():void;
+    X_1:void := querylog.define("explain select reverse(x) from 
udf_reverse;":str, "sequential_pipe":str, 21:int);
     X_22:bat[:str] := bat.new(nil:str);
     X_28:bat[:int] := bat.new(nil:int);
     X_26:bat[:int] := bat.new(nil:int);
@@ -124,7 +124,7 @@ function user.s16_0():void;
     X_35:bat[:int] := bat.append(X_26:bat[:int], 0:int);
     X_36:bat[:int] := bat.append(X_28:bat[:int], 0:int);
     sql.resultSet(X_29:bat[:str], X_31:bat[:str], X_33:bat[:str], 
X_35:bat[:int], X_36:bat[:int], X_18:bat[:str]);
-end user.s16_0;
+end user.main;
 #inline               actions= 0 time=1 usec 
 #remap                actions= 1 time=5 usec 
 #costmodel            actions= 1 time=1 usec 
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -268,7 +268,7 @@ distinct_value_list(backend *be, list *v
                sql_exp *e = n->data;
                stmt *i = exp_bin(be, e, NULL, NULL, NULL, NULL, NULL, NULL);
 
-               if (exp_is_null(be->mvc, e))
+               if (exp_is_null(e))
                        *last_null_value = i;
 
                if (!i)
@@ -1084,58 +1084,20 @@ check_table_types(backend *be, list *typ
 }
 #endif
 
-static void
-sql_convert_arg(mvc *sql, int nr, sql_subtype *rt)
-{
-       atom *a = sql_bind_arg(sql, nr);
-
-       if (atom_null(a)) {
-               if (a->data.vtype != rt->type->localtype) {
-                       a->data.vtype = rt->type->localtype;
-                       VALset(&a->data, a->data.vtype, (ptr) 
ATOMnilptr(a->data.vtype));
-               }
-       }
-       a->tpe = *rt;
-}
-
-/* try to do an inplace convertion 
- * 
- * inplace conversion is only possible if the s is an variable.
- * This is only done to be able to map more cached queries onto the same 
- * interface.
- */
-static stmt *
-inplace_convert(backend *be, sql_subtype *ct, stmt *s)
-{
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to