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