Changeset: 816282aa4cc0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=816282aa4cc0
Modified Files:
        gdk/gdk_utils.c
        monetdb5/mal/mal_authorize.c
        testing/Mtest.py.in
Branch: default
Log Message:

Merge with Oct2020 branch.


diffs (269 lines):

diff --git a/clients/Tests/SingleServer b/clients/Tests/SingleServer
deleted file mode 100644
--- a/clients/Tests/SingleServer
+++ /dev/null
@@ -1,3 +0,0 @@
---set embedded_py=3
---set embedded_r=true
---set embedded_c=true
diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -956,7 +956,7 @@ GDKinit(opt *set, int setlen, bool embed
                        }
 #endif
                }
-       } else {
+       } else if (GDKgetenv("gdk_dbname") == NULL) {
                if (GDKsetenv("gdk_dbname", ":memory:") != GDK_SUCCEED) {
                        TRC_CRITICAL(GDK, "GDKsetenv gdk_dbname failed");
                        return GDK_FAIL;
diff --git a/monetdb5/mal/mal_authorize.c b/monetdb5/mal/mal_authorize.c
--- a/monetdb5/mal/mal_authorize.c
+++ b/monetdb5/mal/mal_authorize.c
@@ -521,7 +521,7 @@ AUTHaddUser(oid *uid, Client cntxt, cons
                throw(MAL, "addUser", "user '%s' already exists", username);
 
        /* we assume the BATs are still aligned */
-       if (!GDKinmemory(0)) {
+       if (!GDKembedded()) {
                rethrow("addUser", tmp, AUTHcypherValue(&hash, passwd));
        } else {
                hash = GDKstrdup("hash");
@@ -537,7 +537,7 @@ AUTHaddUser(oid *uid, Client cntxt, cons
        p = AUTHfindUser(username);
 
        /* make the stuff persistent */
-       if (!GDKinmemory(0))
+       if (!GDKembedded())
                AUTHcommit();
 
        *uid = p;
diff --git a/monetdb5/modules/kernel/batstr.c b/monetdb5/modules/kernel/batstr.c
--- a/monetdb5/modules/kernel/batstr.c
+++ b/monetdb5/modules/kernel/batstr.c
@@ -1329,7 +1329,7 @@ static str
 STRbatSubstitutecst(bat *ret, const bat *l, const str *arg2, const str *arg3, 
const bit *rep)
 {
        BATiter lefti;
-       BAT *bn, *left;
+       BAT *bn = NULL, *left;
        BUN p,q;
        str y = NULL, err = MAL_SUCCEED;
 
@@ -1380,7 +1380,7 @@ static str
 STRbatSubstitute(bat *ret, const bat *l, const bat *arg2, const bat *arg3, 
const bat *rep)
 {
        BATiter lefti, arg2i, arg3i;
-       BAT *bn, *left, *arg2b, *arg3b, *repb;
+       BAT *bn = NULL, *left, *arg2b = NULL, *arg3b = NULL, *repb;
        BUN p,q;
        str y = NULL, err = MAL_SUCCEED;
        bit *restrict repi;
@@ -1447,7 +1447,7 @@ static str
 STRbatsplitpartcst(bat *ret, const bat *bid, const str *needle, const int 
*field)
 {
        BATiter lefti;
-       BAT *bn, *left;
+       BAT *bn = NULL, *left;
        BUN p,q;
        str y = NULL, err = MAL_SUCCEED;
 
@@ -1498,7 +1498,7 @@ static str
 STRbatsplitpart(bat *ret, const bat *l, const bat *r, const bat *t)
 {
        BATiter lefti, arg2i;
-       BAT *bn, *left, *arg2b, *arg3b;
+       BAT *bn = NULL, *left, *arg2b = NULL, *arg3b;
        BUN p,q;
        str y = NULL, err = MAL_SUCCEED;
        int *restrict fieldi;
@@ -1561,7 +1561,7 @@ static str
 STRbatReplacecst(bat *ret, const bat *bid, const str *pat, const str *s2)
 {
        BATiter lefti;
-       BAT *bn, *left;
+       BAT *bn = NULL, *left;
        BUN p,q;
        str y = NULL, err = MAL_SUCCEED;
 
@@ -1612,7 +1612,7 @@ static str
 STRbatReplace(bat *ret, const bat *l, const bat *s, const bat *s2)
 {
        BATiter lefti, arg2i, arg3i;
-       BAT *bn, *left, *arg2b, *arg3b;
+       BAT *bn = NULL, *left, *arg2b = NULL, *arg3b;
        BUN p,q;
        str y = NULL, err = MAL_SUCCEED;
 
@@ -1675,7 +1675,7 @@ static str
 STRbatInsert(bat *ret, const bat *l, const bat *start, const bat *ll, const 
bat *s2)
 {
        BATiter lefti, s2i;
-       BAT *bn, *left, *startb, *lb, *s2b;
+       BAT *bn = NULL, *left, *startb = NULL, *lb = NULL, *s2b;
        BUN p,q;
        str y = NULL, err = MAL_SUCCEED;
        int *starti, *li;
@@ -1741,7 +1741,7 @@ static str
 STRbatInsertcst(bat *ret, const bat *bid, const int *start, const int *nchars, 
const str *input2)
 {
        BATiter lefti;
-       BAT *bn, *left;
+       BAT *bn = NULL, *left;
        BUN p,q;
        str y = NULL, err = MAL_SUCCEED;
 
diff --git a/sql/test/SQLancer/Tests/sqlancer07.sql 
b/sql/test/SQLancer/Tests/sqlancer07.sql
--- a/sql/test/SQLancer/Tests/sqlancer07.sql
+++ b/sql/test/SQLancer/Tests/sqlancer07.sql
@@ -107,10 +107,12 @@ INSERT INTO "t0" VALUES (''), ('Ral%}?U*
 CREATE TABLE "t2" ("c1" VARCHAR(388) NOT NULL);
 INSERT INTO "t2" VALUES 
('4'),('4'),('3eSU8,'),(''),('5E~쟱'),('~'),('1386006226'),('0.19005213960704492'),('''{Mdd뒆VB'''),('\015␱%L%]'),('+'),(''),('㕚o+k');
 
-select t0.c1 from t0 where (-5) in (case when t0.c1 then 1 end, (select -3 
from t0));
-       -- error while converting empty string to bit
-select t0.c1 from t0 where (-5) in (case when t0.c1 then 1 else -2 end, 
(select -3 from t0, t2 where false));
-       -- error while converting empty string to bit
+select t0.c1 from t0 where (5) in (case when t0.c1 = 'a' then 1 end, (select 
3));
+       -- empty
+select t0.c1 from t0 where (5) in (case when t0.c1 = 'a' then 1 end, (select 3 
from t0));
+       -- empty
+select t0.c1 from t0 where (-5) in (case when t0.c1 = 'a' then 1 else -2 end, 
(select -3 from t0, t2 where false));
+       -- empty
 DROP TABLE t0;
 DROP TABLE t2;
 
@@ -138,6 +140,8 @@ INSERT INTO "t1" VALUES (1457011207),(98
 CREATE TABLE "t2" ("c0" BIGINT NOT NULL,CONSTRAINT "t2_c0_pkey" PRIMARY KEY 
("c0"));
 INSERT INTO "t2" VALUES (596983192), (-601428889), (1688368391);
 
+SELECT 1 FROM t2, t0 CROSS JOIN t1 WHERE t0.c0 % (SELECT 1 WHERE FALSE) <= 
t1.c0;
+       -- empty
 SELECT t1.c0 FROM t2, t0 CROSS JOIN t1 WHERE ((((t0.c0)%((SELECT DISTINCT 
t0.c0 FROM t1, t0, t2 WHERE FALSE))))<=(t1.c0));
        -- empty
 SELECT CAST(SUM(count) AS BIGINT) FROM (SELECT ALL CAST(((((t0.c0)%((SELECT 
DISTINCT t0.c0 FROM t1, t0, t2 WHERE FALSE))))<=(t1.c0)) AS INT) as count FROM 
t2, t0 CROSS JOIN t1) as res;
diff --git a/sql/test/SQLancer/Tests/sqlancer07.stable.err 
b/sql/test/SQLancer/Tests/sqlancer07.stable.err
--- a/sql/test/SQLancer/Tests/sqlancer07.stable.err
+++ b/sql/test/SQLancer/Tests/sqlancer07.stable.err
@@ -19,15 +19,7 @@ MAPI  = (monetdb) /var/tmp/mtest-240512/
 QUERY = select 1 from t0, t1 inner join t0 on true;
 ERROR = !SELECT: relation name "t0" specified more than once
 CODE  = 42000
-MAPI  = (monetdb) /var/tmp/mtest-56630/.s.monetdb.38424
-QUERY = select t0.c1 from t0 where (-5) in (case when t0.c1 then 1 end, 
(select -3 from t0));
-ERROR = !conversion of string '' to type bit failed.
-CODE  = 22018
-MAPI  = (monetdb) /var/tmp/mtest-56630/.s.monetdb.38424
-QUERY = select t0.c1 from t0 where (-5) in (case when t0.c1 then 1 else -2 
end, (select -3 from t0, t2 where false));
-ERROR = !conversion of string '' to type bit failed.
-CODE  = 22018
-MAPI  = (monetdb) /var/tmp/mtest-57059/.s.monetdb.30988
+MAPI  = (monetdb) /var/tmp/mtest-195720/.s.monetdb.38351
 QUERY = INSERT INTO t1(c0) 
VALUES((0.6548429615298178*0.3050008736497528)/(0.5061323979270875)); --error, 
scale too large
 ERROR = !Scale (48) overflows type
 CODE  = 42000
diff --git a/sql/test/SQLancer/Tests/sqlancer07.stable.out 
b/sql/test/SQLancer/Tests/sqlancer07.stable.out
--- a/sql/test/SQLancer/Tests/sqlancer07.stable.out
+++ b/sql/test/SQLancer/Tests/sqlancer07.stable.out
@@ -151,6 +151,21 @@ stdout of test 'sqlancer07` in directory
 #CREATE TABLE "t2" ("c1" VARCHAR(388) NOT NULL);
 #INSERT INTO "t2" VALUES 
('4'),('4'),('3eSU8,'),(''),('5E~쟱'),('~'),('1386006226'),('0.19005213960704492'),('''{Mdd뒆VB'''),('\015␱%L%]'),('+'),(''),('㕚o+k');
 [ 13   ]
+#select t0.c1 from t0 where (5) in (case when t0.c1 = 'a' then 1 end, (select 
3));
+% .t0 # table_name
+% c1 # name
+% varchar # type
+% 0 # length
+#select t0.c1 from t0 where (5) in (case when t0.c1 = 'a' then 1 end, (select 
3 from t0));
+% .t0 # table_name
+% c1 # name
+% varchar # type
+% 0 # length
+#select t0.c1 from t0 where (-5) in (case when t0.c1 = 'a' then 1 else -2 end, 
(select -3 from t0, t2 where false));
+% .t0 # table_name
+% c1 # name
+% varchar # type
+% 0 # length
 #DROP TABLE t0;
 #DROP TABLE t2;
 #CREATE TABLE t1 (c0 DOUBLE PRECISION NOT NULL);
@@ -180,6 +195,22 @@ stdout of test 'sqlancer07` in directory
 #CREATE TABLE "t2" ("c0" BIGINT NOT NULL,CONSTRAINT "t2_c0_pkey" PRIMARY KEY 
("c0"));
 #INSERT INTO "t2" VALUES (596983192), (-601428889), (1688368391);
 [ 3    ]
+#SELECT 1 FROM t2, t0 CROSS JOIN t1 WHERE t0.c0 % (SELECT 1 WHERE FALSE) <= 
t1.c0;
+% .%4 # table_name
+% %4 # name
+% tinyint # type
+% 1 # length
+#SELECT t1.c0 FROM t2, t0 CROSS JOIN t1 WHERE ((((t0.c0)%((SELECT DISTINCT 
t0.c0 FROM t1, t0, t2 WHERE FALSE))))<=(t1.c0));
+% sys.t1 # table_name
+% c0 # name
+% bigint # type
+% 1 # length
+#SELECT CAST(SUM(count) AS BIGINT) FROM (SELECT ALL CAST(((((t0.c0)%((SELECT 
DISTINCT t0.c0 FROM t1, t0, t2 WHERE FALSE))))<=(t1.c0)) AS INT) as count FROM 
t2, t0 CROSS JOIN t1) as res;
+% .%4 # table_name
+% %4 # name
+% bigint # type
+% 1 # length
+[ NULL ]
 #ROLLBACK;
 
 # 10:16:14 >  
diff --git a/testing/Mtest.py.in b/testing/Mtest.py.in
--- a/testing/Mtest.py.in
+++ b/testing/Mtest.py.in
@@ -44,6 +44,7 @@ verbose = False
 quiet = False
 
 initdb = None
+single_in_memory = False
 
 global_timeout = 0
 start_time = time.time()
@@ -1351,7 +1352,17 @@ def PerformDir(env, testdir, testlist, B
                 for TST,COND in testlist:
                     if oneserver and (pSrvr is None or pSrvr.poll() is not 
None):
                         # restart server
-                        cmd = splitcommand(env['exe']['mserver5'][1]) + 
['--dbpath=%s' % LogDBdir] + options
+                        inmem = single_in_memory
+                        for o in options:
+                            if o.startswith('embedded'):
+                                inmem = False
+                                break
+                        if inmem:
+                            cmd = splitcommand(env['exe']['mserver5'][1]) + 
['--set', 'gdk_dbname=%s' % TSTDB, '--in-memory'] + options
+                            pollfile = None
+                        else:
+                            cmd = splitcommand(env['exe']['mserver5'][1]) + 
['--dbpath=%s' % LogDBdir] + options
+                            pollfile = os.path.join(LogDBdir, '.started')
                         if env.get('MULTIFARM'):
                             cmd.append('--dbextra=%s' % 
os.path.join(env['GDK_DBFARM'], TSTPREF + '_transient'))
                             shutil.rmtree(os.path.join(env['GDK_DBFARM'], 
TSTPREF + '_transient'),
@@ -1363,7 +1374,7 @@ def PerformDir(env, testdir, testlist, B
                                             open(os.path.join(TSTTRGDIR, 
'SingleServer.out'), 'a'),
                                             open(os.path.join(TSTTRGDIR, 
'SingleServer.err'), 'a'),
                                             0,
-                                            os.path.join(LogDBdir, '.started'),
+                                            pollfile,
                                             int(env['MAPIPORT']))
                         os.chdir(TSTTRGDIR)
                         pSrvr.LaunchIt()
@@ -3789,6 +3800,7 @@ def main(argv) :
         parser.add_argument('--data_path', '-D', action='store', 
dest='data_path', metavar='<path>', help='Path to the root directory of the 
data files needed for testing')
         parser.add_argument('--alltests', action='store_true', 
dest='alltests', help='also run tests that are known to fail')
         parser.add_argument('--initdb', action='store', dest='initdb', 
metavar='<zipfile>', help='zip file with contents for initial database')
+        parser.add_argument('--single-in-memory', action='store_true', 
dest='single_in_memory', help='use --in-memory for SingleServer directories')
     elif THISFILE == 'Mapprove.py':
         f = _configure(os.path.join('@QXprefix@',dftTSTPREF,'.Mapprove.rc'))
         v = ReadMapproveRc(f)
@@ -3875,6 +3887,8 @@ def main(argv) :
             env['TSTDATAPATH'] = a
         global initdb
         initdb = opts.initdb
+        global single_in_memory
+        single_in_memory = opts.single_in_memory
     if THISFILE == 'Mapprove.py':
         a = opts.ext
         if a is None:
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to