Changeset: 5e7ef9c3f0bd for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/5e7ef9c3f0bd Modified Files: monetdb5/modules/mal/mkey.c sql/server/rel_select.c sql/test/sys-schema/Tests/webExamplesComparisonFunctionsOperators.stable.err sql/test/sys-schema/Tests/webExamplesComparisonFunctionsOperators.stable.out sql/test/sys-schema/Tests/webExamplesMathematicalFunctionsOperators.stable.err sql/test/sys-schema/Tests/webExamplesMathematicalFunctionsOperators.stable.out Branch: Oct2020 Log Message:
Backported some bugfixes from default to Oct2020 diffs (234 lines): diff --git a/monetdb5/modules/mal/mkey.c b/monetdb5/modules/mal/mkey.c --- a/monetdb5/modules/mal/mkey.c +++ b/monetdb5/modules/mal/mkey.c @@ -139,13 +139,11 @@ MKEYrotate(lng *res, const lng *val, con static str MKEYhash(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p) { - lng *res; - ptr val; + lng *res = getArgReference_lng(stk,p,0); + ptr val = getArgReference(stk,p,1); int tpe = getArgType(mb,p,1); (void) cntxt; - res= getArgReference_lng(stk,p,0); - val= getArgReference(stk,p,1); switch (ATOMstorage(tpe)) { case TYPE_void: *res = lng_nil; /* It can be called from SQL */ @@ -288,7 +286,7 @@ MKEYrotate_xor_hash(Client cntxt, MalBlk int lbit = *getArgReference_int(stk, p, 2); int rbit = (int) sizeof(lng) * 8 - lbit; int tpe = getArgType(mb, p, 3); - ptr *pval = getArgReference(stk, p, 3); + ptr pval = getArgReference(stk, p, 3); ulng val; (void) cntxt; @@ -443,7 +441,7 @@ MKEYbulkconst_rotate_xor_hash(Client cnt bat *hid = getArgReference_bat(stk, p, 1); int lbit = *getArgReference_int(stk, p, 2); int tpe = getArgType(mb, p, 3); - ptr *pval = getArgReference(stk, p, 3); + ptr pval = getArgReference(stk, p, 3); BAT *hb, *bn; int rbit = (int) sizeof(lng) * 8 - lbit; ulng *r; @@ -497,8 +495,8 @@ MKEYbulkconst_rotate_xor_hash(Client cnt h = (const ulng *) Tloc(hb, 0); while (n-- > 0) { - *r++ = GDK_ROTATE(*h, lbit, rbit) ^ val; - h++; + *r++ = GDK_ROTATE(*h, lbit, rbit) ^ val; + h++; } if (bn->batCount <= 1) { diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -457,7 +457,7 @@ static list * check_arguments_and_find_largest_any_type(mvc *sql, sql_rel *rel, list *exps, sql_subfunc *sf, int maybe_zero_or_one) { list *nexps = new_exp_list(sql->sa); - sql_subtype *atp = NULL, super; + sql_subtype *atp = NULL, super, *res = !list_empty(sf->res) ? sf->res->h->data: NULL; /* find largest any type argument */ for (node *n = exps->h, *m = sf->func->ops->h; n && m; n = n->next, m = m->next) { @@ -492,8 +492,10 @@ check_arguments_and_find_largest_any_typ append(nexps, e); } /* dirty hack */ - if (sf->func->type != F_PROC && sf->func->type != F_UNION && sf->func->type != F_LOADER && sf->res && atp) - sf->res->h->data = sql_create_subtype(sql->sa, atp->type, atp->digits, atp->scale); + if (sf->func->type != F_PROC && sf->func->type != F_UNION && sf->func->type != F_LOADER && res) { + if (res->type->eclass == EC_ANY && atp) + sf->res->h->data = sql_create_subtype(sql->sa, atp->type, atp->digits, atp->scale); + } return nexps; } diff --git a/sql/test/sys-schema/Tests/webExamplesComparisonFunctionsOperators.stable.err b/sql/test/sys-schema/Tests/webExamplesComparisonFunctionsOperators.stable.err --- a/sql/test/sys-schema/Tests/webExamplesComparisonFunctionsOperators.stable.err +++ b/sql/test/sys-schema/Tests/webExamplesComparisonFunctionsOperators.stable.err @@ -9,10 +9,7 @@ MAPI = (monetdb) /var/tmp/mtest-103725/ QUERY = select 2 != 5 as t1; ERROR = !Unexpected symbol (!) CODE = 42000 -MAPI = (monetdb) /var/tmp/mtest-103725/.s.monetdb.35313 -QUERY = select "between"('ab', 'aa', 'ac', false, false, false, false, false) as tru; -ERROR = !TypeException:user.main[12]:'calc.between' undefined in: X_889:str := calc.between(X_877:str, X_879:str, X_881:str, X_883:bit, X_885:bit, X_886:bit, X_887:bit, X_888:bit); -MAPI = (monetdb) /var/tmp/mtest-105512/.s.monetdb.36087 +MAPI = (monetdb) /var/tmp/mtest-130542/.s.monetdb.34777 QUERY = select "between"('ab', 'aa', 'ac') as tru; ERROR = !SELECT: no such operator 'between' CODE = 42000 @@ -74,51 +71,51 @@ ERROR = !Illegal argument: (I)LIKE patte CODE = 22019 MAPI = (monetdb) /var/tmp/mtest-103725/.s.monetdb.35313 QUERY = select like('aabbccdd', '%bc_d%') as tru; -ERROR = !syntax error, unexpected LIKE in: "select like" +ERROR = !syntax error in: "select like" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-103725/.s.monetdb.35313 QUERY = select nullif('dc'); -ERROR = !syntax error, unexpected ')', expecting OR or ',' in: "select nullif('dc')" +ERROR = !syntax error in: "select nullif('dc')" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-103725/.s.monetdb.35313 QUERY = select nullif('ac', 'dc', 'de'); -ERROR = !syntax error, unexpected ',', expecting ')' or OR in: "select nullif('ac', 'dc'," +ERROR = !syntax error in: "select nullif('ac', 'dc'," CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-103725/.s.monetdb.35313 QUERY = select 'a' IS DISTINCT FROM 'b' as tru; -ERROR = !syntax error, unexpected DISTINCT, expecting sqlNULL or NOT in: "select 'a' is distinct" +ERROR = !syntax error in: "select 'a' is distinct" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-103725/.s.monetdb.35313 QUERY = select 'a' ISNULL as fals; -ERROR = !syntax error, unexpected AS, expecting SCOLON in: "select 'a' isnull as" +ERROR = !syntax error in: "select 'a' isnull as" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-103725/.s.monetdb.35313 QUERY = select 'a' ISNOTNULL as tru; -ERROR = !syntax error, unexpected AS, expecting SCOLON in: "select 'a' isnotnull as" +ERROR = !syntax error in: "select 'a' isnotnull as" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-105070/.s.monetdb.33078 QUERY = select ('a' = 'b') IS TRUE; -ERROR = !syntax error, unexpected BOOL_TRUE, expecting sqlNULL or NOT in: "select ('a' = 'b') is true" +ERROR = !syntax error in: "select ('a' = 'b') is true" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-105070/.s.monetdb.33078 QUERY = select ('a' = 'b') IS NOT TRUE; -ERROR = !syntax error, unexpected BOOL_TRUE, expecting sqlNULL in: "select ('a' = 'b') is not true" +ERROR = !syntax error in: "select ('a' = 'b') is not true" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-105070/.s.monetdb.33078 QUERY = select ('a' = 'b') IS FALSE; -ERROR = !syntax error, unexpected BOOL_FALSE, expecting sqlNULL or NOT in: "select ('a' = 'b') is false" +ERROR = !syntax error in: "select ('a' = 'b') is false" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-105070/.s.monetdb.33078 QUERY = select ('a' = 'b') IS NOT FALSE; -ERROR = !syntax error, unexpected BOOL_FALSE, expecting sqlNULL in: "select ('a' = 'b') is not false" +ERROR = !syntax error in: "select ('a' = 'b') is not false" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-105070/.s.monetdb.33078 QUERY = select ('a' = 'b') IS UNKNOWN; -ERROR = !syntax error, unexpected IDENT, expecting sqlNULL or NOT in: "select ('a' = 'b') is unknown" +ERROR = !syntax error in: "select ('a' = 'b') is unknown" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-105070/.s.monetdb.33078 QUERY = select ('a' = 'b') IS NOT UNKNOWN; -ERROR = !syntax error, unexpected IDENT, expecting sqlNULL in: "select ('a' = 'b') is not unknown" +ERROR = !syntax error in: "select ('a' = 'b') is not unknown" CODE = 42000 # 19:42:47 > diff --git a/sql/test/sys-schema/Tests/webExamplesComparisonFunctionsOperators.stable.out b/sql/test/sys-schema/Tests/webExamplesComparisonFunctionsOperators.stable.out --- a/sql/test/sys-schema/Tests/webExamplesComparisonFunctionsOperators.stable.out +++ b/sql/test/sys-schema/Tests/webExamplesComparisonFunctionsOperators.stable.out @@ -107,6 +107,12 @@ stdout of test 'webExamplesComparisonFun % boolean # type % 5 # length [ true ] +#select "between"('ab', 'aa', 'ac', false, false, false, false, false) as tru; +% . # table_name +% tru # name +% boolean # type +% 5 # length +[ true ] #select ifthenelse(('a' = 'b'), 1, 2) as two; % . # table_name % two # name diff --git a/sql/test/sys-schema/Tests/webExamplesMathematicalFunctionsOperators.stable.err b/sql/test/sys-schema/Tests/webExamplesMathematicalFunctionsOperators.stable.err --- a/sql/test/sys-schema/Tests/webExamplesMathematicalFunctionsOperators.stable.err +++ b/sql/test/sys-schema/Tests/webExamplesMathematicalFunctionsOperators.stable.err @@ -7,11 +7,11 @@ stderr of test 'webExamplesMathematicalF MAPI = (monetdb) /var/tmp/mtest-15053/.s.monetdb.37993 QUERY = select |/ 25.0 ; -ERROR = !syntax error, unexpected '|' in: "select |" +ERROR = !syntax error in: "select |" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-15053/.s.monetdb.37993 QUERY = select ||/ 27.0 ; -ERROR = !syntax error, unexpected CONCATSTRING in: "select ||" +ERROR = !syntax error in: "select ||" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-15053/.s.monetdb.37993 QUERY = select 5! ; @@ -23,11 +23,11 @@ ERROR = !Unexpected symbol (!) CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-15053/.s.monetdb.37993 QUERY = select @ -5.0 ; -ERROR = !syntax error, unexpected AT in: "select @" +ERROR = !syntax error in: "select @" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-15925/.s.monetdb.39524 QUERY = SELECT 10 DIV 5; -ERROR = !syntax error, unexpected sqlINT, expecting SCOLON in: "select 10 div 5" +ERROR = !syntax error in: "select 10 div 5" CODE = 42000 MAPI = (monetdb) /var/tmp/mtest-20677/.s.monetdb.33795 QUERY = select div(9,4); @@ -65,12 +65,6 @@ MAPI = (monetdb) /var/tmp/mtest-20677/. QUERY = select atan2(1.0, 2.0); ERROR = !SELECT: no such binary operator 'atan2(decimal,decimal)' CODE = 42000 -MAPI = (monetdb) /var/tmp/mtest-20677/.s.monetdb.33795 -QUERY = select rotate_xor_hash(1, 1, '1') ; -ERROR = !TypeException:user.main[7]:'calc.rotate_xor_hash' undefined in: X_4532:str := calc.rotate_xor_hash(X_4526:lng, X_4528:int, X_4530:str); -MAPI = (monetdb) /var/tmp/mtest-20677/.s.monetdb.33795 -QUERY = select rotate_xor_hash(cast(1 as bigint), cast(1 as int), '1') ; -ERROR = !TypeException:user.main[7]:'calc.rotate_xor_hash' undefined in: X_4553:str := calc.rotate_xor_hash(X_4547:lng, X_4549:int, X_4551:str); # 20:17:21 > # 20:17:21 > "Done." diff --git a/sql/test/sys-schema/Tests/webExamplesMathematicalFunctionsOperators.stable.out b/sql/test/sys-schema/Tests/webExamplesMathematicalFunctionsOperators.stable.out --- a/sql/test/sys-schema/Tests/webExamplesMathematicalFunctionsOperators.stable.out +++ b/sql/test/sys-schema/Tests/webExamplesMathematicalFunctionsOperators.stable.out @@ -528,6 +528,18 @@ project ( % 1 # length [ 2 ] #drop sequence tst20210325; +#select rotate_xor_hash(1, 1, '1') ; +% .%2 # table_name +% %2 # name +% bigint # type +% 11 # length +[ 15039430859 ] +#select rotate_xor_hash(cast(1 as bigint), cast(1 as int), '1') ; +% .%2 # table_name +% %2 # name +% bigint # type +% 11 # length +[ 15039430859 ] # 21:22:20 > # 21:22:20 > "Done." _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list