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

Reply via email to