Changeset: 29287f176561 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=29287f176561
Added Files:
        sql/server/sql_var.c
        sql/test/scoping/Tests/All
        sql/test/scoping/Tests/SingleServer
        sql/test/scoping/Tests/ambiguity.sql
        sql/test/scoping/Tests/ambiguity.stable.err
        sql/test/scoping/Tests/ambiguity.stable.out
        sql/test/scoping/Tests/predefinedvariable.sql
        sql/test/scoping/Tests/predefinedvariable.stable.err
        sql/test/scoping/Tests/predefinedvariable.stable.out
        sql/test/scoping/Tests/schema_disambiguity.sql
        sql/test/scoping/Tests/schema_disambiguity.stable.err
        sql/test/scoping/Tests/schema_disambiguity.stable.out
        sql/test/scoping/Tests/scoping01.sql
        sql/test/scoping/Tests/scoping01.stable.err
        sql/test/scoping/Tests/scoping01.stable.out
        sql/test/scoping/Tests/scoping02.sql
        sql/test/scoping/Tests/scoping02.stable.err
        sql/test/scoping/Tests/scoping02.stable.out
        sql/test/scoping/Tests/scoping03.sql
        sql/test/scoping/Tests/scoping03.stable.err
        sql/test/scoping/Tests/scoping03.stable.out
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/mapiclient/mhelp.c
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.sql
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
        
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.mal
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_optimizer.c
        sql/backends/monet5/sql_orderidx.c
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_statement.h
        sql/backends/monet5/sql_statistics.c
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/sql_user.c
        sql/common/sql_hash.c
        sql/common/sql_list.c
        sql/include/sql_catalog.h
        sql/include/sql_hash.h
        sql/include/sql_relation.h
        sql/rel.txt
        sql/server/Makefile.ag
        sql/server/rel_dump.c
        sql/server/rel_exp.c
        sql/server/rel_exp.h
        sql/server/rel_psm.c
        sql/server/rel_rel.c
        sql/server/rel_schema.c
        sql/server/rel_schema.h
        sql/server/rel_select.c
        sql/server/rel_semantic.c
        sql/server/rel_sequence.c
        sql/server/rel_updates.c
        sql/server/sql_env.c
        sql/server/sql_env.h
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
        sql/server/sql_parser.y
        sql/server/sql_privileges.c
        sql/server/sql_privileges.h
        sql/server/sql_scan.c
        sql/server/sql_semantic.c
        sql/server/sql_semantic.h
        sql/storage/sql_storage.h
        sql/storage/store.c
        sql/test/BugConstraints/add_constraint_1643522.sql
        
sql/test/BugDay_2005-10-06_2.9.3/Tests/UNION_JOIN_vs_plain_set_UNION-2.SF-920585.sql
        sql/test/BugTracker-2009/Tests/set_and_arg_null.SF-2812729.sql
        sql/test/BugTracker-2009/Tests/set_and_arg_null.SF-2812729.stable.out
        sql/test/BugTracker-2010/Tests/predicate_in_select.Bug-2535.sql
        sql/test/BugTracker-2010/Tests/with_row_number_crash.Bug-2631.sql
        sql/test/BugTracker-2012/Tests/not-equal-Bug.3139.sql
        sql/test/BugTracker-2012/Tests/not-equal-Bug.3139.stable.out
        
sql/test/BugTracker-2012/Tests/now_results_in_illegal_argument.Bug-2978.sql
        
sql/test/BugTracker-2012/Tests/now_results_in_illegal_argument.Bug-2978.stable.out
        sql/test/BugTracker-2013/Tests/nested_concat_query.Bug-3408.sql
        sql/test/BugTracker-2013/Tests/nested_concat_query.Bug-3408.stable.out
        sql/test/BugTracker-2014/Tests/current_timestamp.Bug-3427.sql
        sql/test/BugTracker-2014/Tests/current_timestamp.Bug-3427.stable.err
        sql/test/BugTracker-2014/Tests/current_timestamp.Bug-3427.stable.out
        sql/test/BugTracker-2015/Tests/long_insert.Bug-3845.sql
        sql/test/BugTracker-2015/Tests/schema-trigger.Bug-3710.sql
        sql/test/BugTracker-2015/Tests/schema_view2.Bug-3766.sql
        sql/test/BugTracker-2017/Tests/error-clean-cache.Bug-6351.sql
        sql/test/BugTracker-2017/Tests/error-clean-cache.Bug-6351.stable.err
        sql/test/BugTracker-2017/Tests/error-clean-cache.Bug-6351.stable.out
        sql/test/BugTracker-2018/Tests/comment-on-table-is-null.Bug-6639.sql
        sql/test/BugTracker-2019/Tests/alter_table_drop_column.Bug-6749.py
        sql/test/BugTracker-2019/Tests/alter_table_set_schema.Bug-6701.sql
        sql/test/BugTracker-2019/Tests/set-schema-mclient-msg.Bug-6754.sql
        
sql/test/BugTracker-2019/Tests/set-schema-mclient-msg.Bug-6754.stable.out
        sql/test/BugTracker/Tests/variables.SF-1508160.stable.err
        sql/test/BugTracker/Tests/variables.SF-1508160.stable.out
        sql/test/Dependencies/dependency_DBobjects.sql
        sql/test/Dependencies/dependency_functions.sql
        sql/test/Dependencies/dependency_owner_schema_3.sql
        sql/test/DropCascade/Tests/drop_columns_cascade.sql
        sql/test/DropCascade/Tests/drop_function_cascade.sql
        sql/test/DropCascade/Tests/drop_pkey_cascade.sql
        sql/test/DropCascade/Tests/drop_table_cascade.sql
        sql/test/DropCascade/Tests/drop_view_cascade.sql
        sql/test/SQLite_regress/sqllogictest/Tests/All
        sql/test/Tests/comment-on.stable.err
        sql/test/Tests/keys.sql
        sql/test/Tests/procedure_syntax.sql
        sql/test/Tests/session_vars.sql
        sql/test/Tests/session_vars.stable.err
        sql/test/Tests/session_vars.stable.out
        sql/test/Tests/zones.sql
        sql/test/Triggers/cascaded_triggers.sql
        sql/test/Triggers/referencing_clause_new.sql
        sql/test/Triggers/referencing_clause_old.sql
        sql/test/Triggers/trigger_activation.sql
        sql/test/Triggers/triggers_schema_operations.sql
        sql/test/Users/Tests/metadataConsistency.sql
        sql/test/Users/Tests/metadataConsistency.stable.out
        sql/test/Via-m/Tests/event_s03.stable.out
        sql/test/Via-m/Tests/event_s05.stable.out
        sql/test/Via-m/Tests/event_s07.stable.err
        sql/test/Via-m/Tests/event_s09.stable.out
        sql/test/Via-m/Tests/event_s11.stable.err
        sql/test/Via-m/Tests/event_s11.stable.out
        sql/test/Via-m/Tests/file_s04.stable.out
        sql/test/Via-m/Tests/file_s05.stable.out
        sql/test/Via-m/Tests/file_s06.stable.out
        sql/test/Via-m/Tests/file_s08.stable.out
        sql/test/Via-m/Tests/file_s10.stable.err
        sql/test/Via-m/Tests/file_s12.stable.err
        sql/test/Via-m/Tests/file_s15.stable.out
        sql/test/Via-m/Tests/media_s04.stable.out
        sql/test/Via-m/Tests/media_s06.stable.out
        sql/test/Via-m/Tests/media_s08.stable.out
        sql/test/Via-m/Tests/media_s10.stable.out
        sql/test/Via-m/Tests/media_s12.stable.err
        sql/test/Via-m/Tests/media_s14.stable.err
        sql/test/Via-m/Tests/media_s16.stable.err
        sql/test/Via-m/Tests/media_s18.stable.err
        sql/test/Via-m/Tests/media_s19.stable.err
        sql/test/Via-m/insert_event1.sql
        sql/test/Via-m/insert_event2.sql
        sql/test/Via-m/insert_event3.sql
        sql/test/Via-m/insert_event4.sql
        sql/test/Via-m/insert_file2.sql
        sql/test/Via-m/insert_file3.sql
        sql/test/Via-m/insert_file4.sql
        sql/test/Via-m/insert_file5.sql
        sql/test/Via-m/insert_file6.sql
        sql/test/Via-m/insert_file7.sql
        sql/test/Via-m/insert_file8.sql
        sql/test/Via-m/insert_media1.sql
        sql/test/Via-m/insert_media2.sql
        sql/test/Via-m/insert_media3.sql
        sql/test/Via-m/insert_media4.sql
        sql/test/Via-m/insert_media5.sql
        sql/test/Via-m/insert_media6.sql
        sql/test/Via-m/insert_media7.sql
        sql/test/bugs/Tests/create_insert_select_aggr-bug-00001.sql
        sql/test/bugs/Tests/create_insert_select_aggr-bug-00001.stable.err
        sql/test/bugs/Tests/union_all-bug-sf-941788.sql
        sql/test/emptydb/Tests/check.SQL.py
        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/in-value-list/Tests/various-in-value-list-queries.sql
        sql/test/json/Tests/components.sql
        sql/test/json/Tests/pathexpr.sql
        sql/test/mapi/Tests/sql_int128.sql
        sql/test/mapi/Tests/sql_int128.stable.out.int128
        sql/test/mergetables/Tests/part-elim.sql
        sql/test/mergetables/Tests/part-elim.stable.out
        sql/test/miscellaneous/Tests/All
        sql/test/miscellaneous/Tests/deallocate.sql
        sql/test/miscellaneous/Tests/deallocate.stable.out
        sql/test/miscellaneous/Tests/declared_tables.sql
        sql/test/miscellaneous/Tests/declared_tables.stable.err
        sql/test/miscellaneous/Tests/declared_tables.stable.out
        sql/test/miscellaneous/Tests/simple_selects.sql
        sql/test/miscellaneous/Tests/simple_selects.stable.err
        sql/test/miscellaneous/Tests/simple_selects.stable.out
        sql/test/miscellaneous/Tests/table_udf_missing_var.py
        sql/test/miscellaneous/Tests/table_udf_missing_var.stable.err
        sql/test/miscellaneous/Tests/table_udf_missing_var.stable.out
        sql/test/orderidx/Tests/imprints_all_types.sql
        sql/test/orderidx/Tests/oidx_all_types.sql
        sql/test/pg_regress/Tests/alter_table.stable.err
        sql/test/pg_regress/Tests/horology.stable.err
        sql/test/pg_regress/Tests/timestamp.sql
        sql/test/pg_regress/Tests/timestamp.stable.out
        sql/test/pg_regress/Tests/timestamptz.sql
        sql/test/pg_regress/Tests/timestamptz.stable.out
        sql/test/ssqq/Tests/insert_query.stable.err
        sql/test/ssqq/Tests/insert_query.stable.out
        sql/test/ssqq/Tests/insert_queue.stable.err
        sql/test/ssqq/Tests/insert_queue.stable.out
        sql/test/ssqq/Tests/insert_quser.stable.err
        sql/test/ssqq/Tests/insert_quser.stable.out
        sql/test/ssqq/insert_query.sql
        sql/test/ssqq/insert_queue.sql
        sql/test/ssqq/insert_quser.sql
        sql/test/subquery/Tests/subquery4.sql
        sql/test/subquery/Tests/subquery4.stable.err
        sql/test/subquery/Tests/subquery4.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
Branch: default
Log Message:

Merged scoping branch into default


diffs (truncated from 14561 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
@@ -14182,7 +14182,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "export_table", "unsafe pattern sql.export_table(fname:str, 
fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, 
tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:bat[:any]...):int ",       "mvc_export_table_wrap;",       "Prepare a 
table result set for the COPY INTO stream"   ]
 [ "sql",       "first_value",  "pattern sql.first_value(b:any_1, s:lng, 
e:lng):any_1 ",        "SQLfirst_value;",      "return the first value of 
groups"      ]
 [ "sql",       "flush_log",    "unsafe command sql.flush_log():void ", 
"SQLflush_log;",        "start flushing the write ahead log"    ]
-[ "sql",       "getVariable",  "pattern sql.getVariable(mvc:int, 
varname:str):any_1 ", "getVariable;", "Get the value of a session variable"   ]
+[ "sql",       "getVariable",  "pattern sql.getVariable(mvc:int, sname:str, 
varname:str):any_1 ",      "getVariable;", "Get the value of a session 
variable"   ]
 [ "sql",       "getVersion",   "command sql.getVersion(clientid:int):lng ",    
"mvc_getVersion;",      "Return the database version identifier for a client."  
]
 [ "sql",       "get_value",    "pattern sql.get_value(sname:str, 
sequence:str):lng ",  "mvc_get_value;",       "return the current value of the 
sequence"      ]
 [ "sql",       "grow", "pattern sql.grow(tid:bat[:oid], X_0:any_1):int ",      
"mvc_grow_wrap;",       "Resize the tid column of a declared table."    ]
@@ -14248,7 +14248,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "row_number",   "pattern sql.row_number(b:any_1, p:bit, 
o:bit):int ",   "SQLrow_number;",       "return the row_numer-ed groups"        
]
 [ "sql",       "rt_credentials",       "pattern 
sql.rt_credentials(tablename:str) (uri:bat[:str], username:bat[:str], 
hash:bat[:str]) ",       "sql_rt_credentials_wrap;",     "Return the remote 
table credentials for the given table"       ]
 [ "sql",       "sessions",     "pattern sql.sessions() (id:bat[:int], 
user:bat[:str], start:bat[:timestamp], idle:bat[:timestamp], 
optmizer:bat[:str], stimeout:bat[:int], qtimeout:bat[:int], wlimit:bat[:int], 
mlimit:bat[:int]) ",  "sql_sessions_wrap;",   "SQL export table of active 
sessions, their timeouts and idle status"   ]
-[ "sql",       "setVariable",  "unsafe pattern sql.setVariable(mvc:int, 
varname:str, value:any_1):int ",       "setVariable;", "Set the value of a 
session variable"   ]
+[ "sql",       "setVariable",  "unsafe pattern sql.setVariable(mvc:int, 
sname:str, varname:str, value:any_1):int ",    "setVariable;", "Set the value 
of a session variable"   ]
 [ "sql",       "shrink",       "unsafe pattern sql.shrink(sch:str, 
tbl:str):void ",    "SQLshrink;",   "Consolidate the deletion table over all 
columns using shrinking"       ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:bte):str ", 
"SQLshutdown_wrap;",    ""      ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:bte, force:bit):str 
",      "SQLshutdown_wrap;",    ""      ]
@@ -14258,7 +14258,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:sht, force:bit):str 
",      "SQLshutdown_wrap;",    ""      ]
 [ "sql",       "single",       "pattern sql.single(x:any_2):bat[:any_2] ",     
"CMDBATsingle;",        ""      ]
 [ "sql",       "sql_environment",      "inline function sql.sql_environment() 
(name:bat[:str], value:bat[:str]);",     "",     ""      ]
-[ "sql",       "sql_variables",        "pattern sql.sql_variables():bat[:str] 
",       "sql_variables;",       "return the table with session variables"      
 ]
+[ "sql",       "sql_variables",        "pattern sql.sql_variables() 
(sname:bat[:str], name:bat[:str], type:bat[:str], value:bat[:str]) ",      
"sql_variables;",       "return the table with session variables"       ]
 [ "sql",       "stdev",        "pattern sql.stdev(b:bte, s:lng, e:lng):dbl ",  
"SQLstddev_samp;",      "return the standard deviation sample of groups"        
]
 [ "sql",       "stdev",        "pattern sql.stdev(b:dbl, s:lng, e:lng):dbl ",  
"SQLstddev_samp;",      "return the standard deviation sample of groups"        
]
 [ "sql",       "stdev",        "pattern sql.stdev(b:flt, s:lng, e:lng):dbl ",  
"SQLstddev_samp;",      "return the standard deviation sample of groups"        
]
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
@@ -19672,7 +19672,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "export_table", "unsafe pattern sql.export_table(fname:str, 
fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, 
tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:bat[:any]...):int ",       "mvc_export_table_wrap;",       "Prepare a 
table result set for the COPY INTO stream"   ]
 [ "sql",       "first_value",  "pattern sql.first_value(b:any_1, s:lng, 
e:lng):any_1 ",        "SQLfirst_value;",      "return the first value of 
groups"      ]
 [ "sql",       "flush_log",    "unsafe command sql.flush_log():void ", 
"SQLflush_log;",        "start flushing the write ahead log"    ]
-[ "sql",       "getVariable",  "pattern sql.getVariable(mvc:int, 
varname:str):any_1 ", "getVariable;", "Get the value of a session variable"   ]
+[ "sql",       "getVariable",  "pattern sql.getVariable(mvc:int, sname:str, 
varname:str):any_1 ",      "getVariable;", "Get the value of a session 
variable"   ]
 [ "sql",       "getVersion",   "command sql.getVersion(clientid:int):lng ",    
"mvc_getVersion;",      "Return the database version identifier for a client."  
]
 [ "sql",       "get_value",    "pattern sql.get_value(sname:str, 
sequence:str):lng ",  "mvc_get_value;",       "return the current value of the 
sequence"      ]
 [ "sql",       "grow", "pattern sql.grow(tid:bat[:oid], X_0:any_1):int ",      
"mvc_grow_wrap;",       "Resize the tid column of a declared table."    ]
@@ -19744,7 +19744,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "row_number",   "pattern sql.row_number(b:any_1, p:bit, 
o:bit):int ",   "SQLrow_number;",       "return the row_numer-ed groups"        
]
 [ "sql",       "rt_credentials",       "pattern 
sql.rt_credentials(tablename:str) (uri:bat[:str], username:bat[:str], 
hash:bat[:str]) ",       "sql_rt_credentials_wrap;",     "Return the remote 
table credentials for the given table"       ]
 [ "sql",       "sessions",     "pattern sql.sessions() (id:bat[:int], 
user:bat[:str], start:bat[:timestamp], idle:bat[:timestamp], 
optmizer:bat[:str], stimeout:bat[:int], qtimeout:bat[:int], wlimit:bat[:int], 
mlimit:bat[:int]) ",  "sql_sessions_wrap;",   "SQL export table of active 
sessions, their timeouts and idle status"   ]
-[ "sql",       "setVariable",  "unsafe pattern sql.setVariable(mvc:int, 
varname:str, value:any_1):int ",       "setVariable;", "Set the value of a 
session variable"   ]
+[ "sql",       "setVariable",  "unsafe pattern sql.setVariable(mvc:int, 
sname:str, varname:str, value:any_1):int ",    "setVariable;", "Set the value 
of a session variable"   ]
 [ "sql",       "shrink",       "unsafe pattern sql.shrink(sch:str, 
tbl:str):void ",    "SQLshrink;",   "Consolidate the deletion table over all 
columns using shrinking"       ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:bte):str ", 
"SQLshutdown_wrap;",    ""      ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:bte, force:bit):str 
",      "SQLshutdown_wrap;",    ""      ]
@@ -19754,7 +19754,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:sht, force:bit):str 
",      "SQLshutdown_wrap;",    ""      ]
 [ "sql",       "single",       "pattern sql.single(x:any_2):bat[:any_2] ",     
"CMDBATsingle;",        ""      ]
 [ "sql",       "sql_environment",      "inline function sql.sql_environment() 
(name:bat[:str], value:bat[:str]);",     "",     ""      ]
-[ "sql",       "sql_variables",        "pattern sql.sql_variables():bat[:str] 
",       "sql_variables;",       "return the table with session variables"      
 ]
+[ "sql",       "sql_variables",        "pattern sql.sql_variables() 
(sname:bat[:str], name:bat[:str], type:bat[:str], value:bat[:str]) ",      
"sql_variables;",       "return the table with session variables"       ]
 [ "sql",       "stdev",        "pattern sql.stdev(b:bte, s:lng, e:lng):dbl ",  
"SQLstddev_samp;",      "return the standard deviation sample of groups"        
]
 [ "sql",       "stdev",        "pattern sql.stdev(b:dbl, s:lng, e:lng):dbl ",  
"SQLstddev_samp;",      "return the standard deviation sample of groups"        
]
 [ "sql",       "stdev",        "pattern sql.stdev(b:flt, s:lng, e:lng):dbl ",  
"SQLstddev_samp;",      "return the standard deviation sample of groups"        
]
diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c
--- a/clients/mapiclient/mhelp.c
+++ b/clients/mapiclient/mhelp.c
@@ -276,6 +276,11 @@ SQLhelp sqlhelp1[] = {
         "CURRENT_TIMESTAMP [ '(' ')' ] | NOW [ '(' ')' ]",
         NULL,
         NULL},
+       {"CURRENT_TIMEZONE",
+        "Pseudo column to get the current timezone offset as a second 
interval",
+        "CURRENT_TIMEZONE",
+        NULL,
+        NULL},
        {"CURRENT_USER",
         "Pseudo column to get the current user name",
         "CURRENT_USER | USER",
diff --git a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.sql 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.sql
--- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.sql
+++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.sql
@@ -8,16 +8,17 @@ explain copy into ttt from '/tmp/xyz';
 explain copy into ttt from E'\\tmp/xyz';
 explain copy into ttt from E'a:\\tmp/xyz';
 
-declare opt_pipe_name string;
-set opt_pipe_name = ( select optimizer );
+start transaction;
+create local temp table "opt_pipe_name" ("opt_pipe_name" string);
+insert into "opt_pipe_name" values ((select optimizer));
 
-declare opt_pipe_def  string;
-set opt_pipe_def  = ( select def from optimizers() where name = opt_pipe_name 
);
-
-set optimizer = 
substring(opt_pipe_def,0,length(opt_pipe_def)-length('optimizer.garbageCollector();'))
 || 'optimizer.sql_append();optimizer.garbageCollector();';
+set optimizer = substring((select def from optimizers() where name = (select 
opt_pipe_name from "opt_pipe_name")),0,
+                length((select def from optimizers() where name = (select 
opt_pipe_name from "opt_pipe_name")))-length('optimizer.garbageCollector();')) 
|| 'optimizer.sql_append();optimizer.garbageCollector();';
 select optimizer;
 
 select def from optimizers() where name = optimizer;
+rollback;
+
 explain copy into ttt from '/tmp/xyz';
 explain copy into ttt from E'\\tmp/xyz';
 explain copy into ttt from 'Z:/tmp/xyz';
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
@@ -63,7 +63,7 @@ stdout of test 'opt_sql_append` in direc
 function user.s10_0():void;
     X_1:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';":str, "sequential_pipe":str, 22:int);
     X_4:int := sql.mvc();
-    (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := 
sql.copy_from(0x7f371c1f09b0:ptr, "|":str, "\n":str, nil:str, "null":str, 
"/tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
+    (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := 
sql.copy_from(0x7fe1c01ac8a0: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, 
"averylongcolumnnametomakeitlargeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee":str,
 X_26:bat[:int]);
     X_35:int := sql.append(X_30:int, "sys":str, "ttt":str, "b":str, 
X_27:bat[:int]);
     X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_28:bat[:int]);
@@ -73,35 +73,36 @@ 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 
-#deadcode             actions= 0 time=4 usec 
-#reorder              actions= 1 time=19 usec 
-#reduce               actions=33 time=23 usec 
-#matpack              actions= 0 time=3 usec 
-#dataflow             actions=31 time=20 usec 
-#querylog             actions= 0 time=0 usec 
-#multiplex            actions= 0 time=3 usec 
-#generator            actions= 0 time=1 usec 
-#profiler             actions= 1 time=6 usec 
-#garbageCollector     actions= 1 time=13 usec 
-#total                actions= 1 time=245 usec 
-#declare opt_pipe_name string;
-#set opt_pipe_name = ( select optimizer );
-#declare opt_pipe_def  string;
-#set opt_pipe_def  = ( select def from optimizers() where name = opt_pipe_name 
);
-#set optimizer = 
substring(opt_pipe_def,0,length(opt_pipe_def)-length('optimizer.garbageCollector();'))
 || 'optimizer.sql_append();optimizer.garbageCollector();';
+#costmodel            actions= 1 time=2 usec 
+#coercion             actions=12 time=12 usec 
+#aliases              actions=12 time=11 usec 
+#evaluate             actions= 0 time=8 usec 
+#emptybind            actions= 0 time=1 usec 
+#pushselect           actions= 0 time=14 usec 
+#aliases              actions= 0 time=0 usec 
+#mergetable           actions= 0 time=40 usec 
+#deadcode             actions= 0 time=12 usec 
+#aliases              actions= 0 time=1 usec 
+#constants            actions= 0 time=9 usec 
+#commonTerms          actions= 0 time=5 usec 
+#projectionpath       actions= 0 time=4 usec 
+#deadcode             actions= 0 time=22 usec 
+#reorder              actions= 1 time=28 usec 
+#matpack              actions= 0 time=0 usec 
+#multiplex            actions= 0 time=2 usec 
+#profiler             actions= 1 time=1 usec 
+#candidates           actions= 1 time=1 usec 
+#deadcode             actions= 0 time=10 usec 
+#postfix              actions= 0 time=6 usec 
+#wlc                  actions= 0 time=0 usec 
+#garbagecollector     actions= 1 time=54 usec 
+#total                actions=27 time=431 usec 
+#start transaction;
+#create local temp table "opt_pipe_name" ("opt_pipe_name" string);
+#insert into "opt_pipe_name" values ((select optimizer));
+[ 1    ]
+#set optimizer = substring((select def from optimizers() where name = (select 
opt_pipe_name from "opt_pipe_name")),0,
+#                length((select def from optimizers() where name = (select 
opt_pipe_name from "opt_pipe_name")))-length('optimizer.garbageCollector();')) 
|| 'optimizer.sql_append();optimizer.garbageCollector();';
 #select optimizer;
 % .%2 # table_name
 % %2 # name
@@ -119,44 +120,43 @@ end user.s10_0;
 % mal # name
 % clob # type
 % 235 # length
-function user.s26_0():void;
+function user.s22_0():void;
     X_1:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';":str, "user_0":str, 22:int);
     X_4:int := sql.mvc();
-    (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := 
sql.copy_from(0x7f371c1f09b0:ptr, "|":str, "\n":str, nil:str, "null":str, 
"/tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
+    (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := 
sql.copy_from(0x7fe1c01ac8a0: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, 
"averylongcolumnnametomakeitlargeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee":str,
 X_26:bat[:int]);
     X_35:int := sql.append(X_30:int, "sys":str, "ttt":str, "b":str, 
X_27:bat[:int]);
     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;
-#inline               actions= 0 time=1 usec 
-#candidates           actions= 1 time=14 usec 
-#remap                actions= 0 time=3 usec 
-#costModel            actions= 1 time=13 usec 
-#coercions            actions=10 time=14 usec 
-#evaluate             actions= 0 time=3 usec 
-#emptybind            actions= 0 time=3 usec 
-#pushselect           actions= 0 time=3 usec 
-#aliases              actions= 0 time=4 usec 
-#mitosis              actions= 0 time=2 usec 
-#mergetable           actions= 0 time=16 usec 
-#deadcode             actions= 0 time=4 usec 
-#aliases              actions= 0 time=4 usec 
-#constants            actions= 0 time=4 usec 
-#commonTerms          actions= 0 time=4 usec 
-#projectionpath       actions= 0 time=3 usec 
-#deadcode             actions= 0 time=4 usec 
-#reorder              actions= 1 time=19 usec 
-#reduce               actions=33 time=23 usec 
-#matpack              actions= 0 time=3 usec 
-#dataflow             actions=32 time=19 usec 
-#querylog             actions= 0 time=1 usec 
-#multiplex            actions= 0 time=3 usec 
-#generator            actions= 0 time=1 usec 
-#profiler             actions= 1 time=7 usec 
-#optimizer.sql_append actions= 1 time=8 usec 
-#garbageCollector     actions= 1 time=19 usec 
-#total                actions= 1 time=261 usec 
+end user.s22_0;
+#inline               actions= 0 time=4 usec 
+#remap                actions= 0 time=4 usec 
+#costmodel            actions= 1 time=4 usec 
+#coercion             actions=12 time=14 usec 
+#aliases              actions=12 time=13 usec 
+#evaluate             actions= 0 time=9 usec 
+#emptybind            actions= 0 time=1 usec 
+#pushselect           actions= 0 time=19 usec 
+#aliases              actions= 0 time=1 usec 
+#mergetable           actions= 0 time=81 usec 
+#deadcode             actions= 0 time=16 usec 
+#aliases              actions= 0 time=0 usec 
+#constants            actions= 0 time=11 usec 
+#commonTerms          actions= 0 time=6 usec 
+#projectionpath       actions= 0 time=6 usec 
+#deadcode             actions= 0 time=13 usec 
+#reorder              actions= 1 time=38 usec 
+#matpack              actions= 0 time=0 usec 
+#multiplex            actions= 0 time=11 usec 
+#profiler             actions= 1 time=3 usec 
+#candidates           actions= 1 time=3 usec 
+#deadcode             actions= 0 time=13 usec 
+#postfix              actions= 0 time=10 usec 
+#wlc                  actions= 0 time=2 usec 
+#optimizer.sql_append actions= 1 time=10 usec 
+#garbagecollector     actions= 1 time=69 usec 
+#total                actions=28 time=638 usec 
 #drop table ttt;
 
 # 22:58:58 >  
diff --git 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
--- 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
+++ 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
@@ -145,11 +145,12 @@ end user.s12_0;
 #wlc                  actions= 0 time=1 usec 
 #garbagecollector     actions= 1 time=58 usec 
 #total                actions=24 time=200 usec 
-#declare opt_pipe_name string;
-#set opt_pipe_name = ( select optimizer );
-#declare opt_pipe_def  string;
-#set opt_pipe_def  = ( select def from optimizers() where name = opt_pipe_name 
);
-#set optimizer = 
substring(opt_pipe_def,0,length(opt_pipe_def)-length('optimizer.garbageCollector();'))
 || 'optimizer.sql_append();optimizer.garbageCollector();';
+#start transaction;
+#create local temp table "opt_pipe_name" ("opt_pipe_name" string);
+#insert into "opt_pipe_name" values ((select optimizer));
+[ 1     ]
+#set optimizer = substring((select def from optimizers() where name = (select 
opt_pipe_name from "opt_pipe_name")),0,
+#                length((select def from optimizers() where name = (select 
opt_pipe_name from "opt_pipe_name")))-length('optimizer.garbageCollector();')) 
|| 'optimizer.sql_append();optimizer.garbageCollector();';
 #select optimizer;
 % .%2 # table_name
 % %2 # name
@@ -162,12 +163,13 @@ end user.s12_0;
 % clob # type
 % 603 # length
 [ 
"optimizer.inline();optimizer.remap();optimizer.costModel();optimizer.coercions();optimizer.aliases();optimizer.evaluate();optimizer.emptybind();optimizer.pushselect();optimizer.aliases();optimizer.mergetable();optimizer.deadcode();optimizer.aliases();optimizer.constants();optimizer.commonTerms();optimizer.projectionpath();optimizer.deadcode();optimizer.reorder();optimizer.matpack();optimizer.querylog();optimizer.multiplex();optimizer.generator();optimizer.profiler();optimizer.candidates();optimizer.deadcode();optimizer.postfix();optimizer.wlc();optimizer.sql_append();optimizer.garbageCollector();"
        ]
+#rollback;
 #explain copy into ttt from E'\\tmp/xyz';
 % .explain # table_name
 % mal # name
 % clob # type
 % 235 # length
-function user.s28_0():void;
+function user.s24_0():void;
     X_1:void := querylog.define("explain copy into ttt from 
E\\'\\\\\\\\tmp/xyz\\';":str, "user_0":str, 22:int);
     X_4:int := sql.mvc();
     (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := 
sql.copy_from(0x3698b20:ptr, "|":str, "\n":str, nil:str, "null":str, 
"\\tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
@@ -176,7 +178,7 @@ function user.s28_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.s28_0;
+end user.s24_0;
 #inline               actions= 0 time=0 usec 
 #remap                actions= 0 time=0 usec 
 #costmodel            actions= 1 time=0 usec 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to