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