Changeset: 406ff7fd3a0e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/406ff7fd3a0e Modified Files: monetdb5/modules/mal/inspect.c sql/scripts/25_debug.sql sql/server/sql_parser.y sql/test/escape-sequences/Tests/scalar-functions.test Branch: escape-sequences Log Message:
special case scalar functions diffs (68 lines): diff --git a/monetdb5/modules/mal/inspect.c b/monetdb5/modules/mal/inspect.c --- a/monetdb5/modules/mal/inspect.c +++ b/monetdb5/modules/mal/inspect.c @@ -521,6 +521,13 @@ INSPECTgetEnvironmentKey(str *ret, str * } static str +INSPECTgetDatabaseName(str *ret) +{ + char* key = "gdk_dbname"; + return INSPECTgetEnvironmentKey(ret, &key); +} + +static str INSPECTatom_sup_names(bat *ret) { int i, k; @@ -699,6 +706,7 @@ mel_func inspect_init_funcs[] = { command("inspect", "getAtomSizes", INSPECTatom_sizes, false, "Collect a BAT with the atom sizes.", args(1,1, batarg("",int))), command("inspect", "getEnvironment", INSPECTgetEnvironment, false, "Collect the environment variables.", args(2,2, batarg("k",str),batarg("v",str))), command("inspect", "getEnvironment", INSPECTgetEnvironmentKey, false, "Get the value of an environemnt variable", args(1,2, arg("",str),arg("k",str))), + command("inspect", "getDatabaseName", INSPECTgetDatabaseName, false, "Return database name", args(1,1, arg("",str))), { .imp=NULL } }; #include "mal_import.h" diff --git a/sql/scripts/25_debug.sql b/sql/scripts/25_debug.sql --- a/sql/scripts/25_debug.sql +++ b/sql/scripts/25_debug.sql @@ -32,6 +32,10 @@ create view sys.optimizers as select * f create view sys.environment as select * from sys.env(); GRANT SELECT ON sys.environment TO PUBLIC; +create function sys.database () + returns string + external name inspect."getDatabaseName"; + -- The BAT buffer pool overview create function sys.bbp () returns table (id int, name string, diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y --- a/sql/server/sql_parser.y +++ b/sql/server/sql_parser.y @@ -6393,6 +6393,8 @@ odbc_scalar_func: append_symbol(l, $3); append_type(l, &$5); $$ = _symbol_create_list( SQL_CAST, l ); } + | USER '(' ')' + { $$ = _symbol_create_list(SQL_NAME, append_string(append_string(L(), sa_strdup(SA, "sys")), sa_strdup(SA, "current_user"))); } ; odbc_data_type: diff --git a/sql/test/escape-sequences/Tests/scalar-functions.test b/sql/test/escape-sequences/Tests/scalar-functions.test --- a/sql/test/escape-sequences/Tests/scalar-functions.test +++ b/sql/test/escape-sequences/Tests/scalar-functions.test @@ -1,3 +1,13 @@ +query T rowsort +select { fn user() } +---- +monetdb + +query I rowsort +select length((select { fn database() })) > 0 +---- +1 + query I rowsort select { fn abs(-3) } ---- _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org