User-Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36
Build Identifier:
I am now running Sqlitelogictest queries that are exclusive to some database systems. This query is supposed to run only on MySQL. In MonetDB I guess we are are supposed to get a compilation error or an empty result set instead of a crash.
The original query for the other database systems including MonetDB was:
SELECT col0 + - - CAST ( NULL AS REAL ) - + col0 + + col1 FROM tab1 cor0 WHERE ( NULL ) IS NOT NULL
In the MySQL version the cast is made to a DECIMAL instead of a REAL, because I guess MySQL does not support the REAL type. However I think that the MySQL version should also run in MonetDB, by casting the col0 column into a decimal.
SELECT col0 + - - CAST( NULL AS DECIMAL ) - + col0 + + col1 FROM tab1 cor0 WHERE ( NULL ) IS NOT NULL;
Actual Results:
A SIGSEGV is received in a exp_is_atom call.
Expected Results:
An empty result set.
The SIGSEV:
Thread 6 "mserver5" received signal SIGSEGV, Segmentation fault.
0x00007fffe8b0a4b5 in exp_is_atom (e=0x0) at rel_exp.c:1337
1337 switch (e->type) {
Backtrace:
0 0x00007fffe8b0a4b5 in exp_is_atom (e=0x0) at rel_exp.c:1337
1 0x00007fffe8b1d51f in exp_simplify_math (sql=0x7fffb800a5f0, e=0x7fffb80baf40, changes=0x7fffcd396874) at rel_optimizer.c:2941
2 0x00007fffe8b1de61 in rel_simplify_math (changes=0x7fffcd396874, sql=0x7fffb800a5f0, rel=0x7fffb80b8630) at rel_optimizer.c:3080
3 0x00007fffe8b377e4 in rewrite (sql=0x7fffb800a5f0, rel=0x7fffb80b8630, rewriter=0x7fffe8b1dd02 <rel_simplify_math>, has_changes=0x7fffcd396938) at rel_optimizer.c:8821
4 0x00007fffe8b37816 in rewrite (sql=0x7fffb800a5f0, rel=0x7fffb80b8630, rewriter=0x7fffe8b1dd02 <rel_simplify_math>, has_changes=0x7fffcd396938) at rel_optimizer.c:8824
5 0x00007fffe8b376c1 in rewrite (sql=0x7fffb800a5f0, rel=0x7fffb80ba3b0, rewriter=0x7fffe8b1dd02 <rel_simplify_math>, has_changes=0x7fffcd396938) at rel_optimizer.c:8805
6 0x00007fffe8b37bd1 in _rel_optimizer (sql=0x7fffb800a5f0, rel=0x7fffb80ba3b0, g_changes=0x7fffcd3969c0, level=0) at rel_optimizer.c:8907
7 0x00007fffe8b3843f in rel_optimizer (sql=0x7fffb800a5f0, rel=0x7fffb80b8630) at rel_optimizer.c:9054
8 0x00007fffe8a18b85 in sql_symbol2relation (c=0x7fffb800a5f0, sym=0x7fffb80b7da0) at sql.c:121
9 0x00007fffe8a37a35 in SQLparser (c=0x7fffea11e338) at sql_scenario.c:1129
10 0x00007ffff7a15e20 in runPhase (c=0x7fffea11e338, phase=1) at mal_scenario.c:506
11 0x00007ffff7a15f64 in runScenarioBody (c=0x7fffea11e338) at mal_scenario.c:539
12 0x00007ffff7a16107 in runScenario (c=0x7fffea11e338) at mal_scenario.c:568
13 0x00007ffff7a17cbc in MSserveClient (dummy=0x7fffea11e338) at mal_session.c:473
14 0x00007ffff7a177ac in MSscheduleClient (command=0x7fffb80008d0 "0", challenge=0x7fffcd396deb "jwuMCBng4", fin=0x7fffb80028f0, fout=0x7fffc4002b70, protocol=PROTOCOL_9, blocksize=8190,
compute_column_widths=0) at mal_session.c:364
15 0x00007ffff7ab7694 in doChallenge (data=0x7fffc40008d0) at mal_mapi.c:273
16 0x00007ffff7691213 in thread_starter (arg=0x7fffc4004c60) at gdk_system.c:485
17 0x00007ffff4ca436d in start_thread () from /lib64/libpthread.so.0
18 0x00007ffff49dcbbf in clone () from /lib64/libc.so.6
Date: 2017-10-24 17:00:39 +0200
From: @PedroTadim
To: SQL devs <>
Version: -- development
CC: @njnes
Last updated: 2017-12-14 14:46:04 +0100
Comment 25785
Date: 2017-10-24 17:00:39 +0200
From: @PedroTadim
User-Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36
Build Identifier:
I am now running Sqlitelogictest queries that are exclusive to some database systems. This query is supposed to run only on MySQL. In MonetDB I guess we are are supposed to get a compilation error or an empty result set instead of a crash.
The original query for the other database systems including MonetDB was:
SELECT col0 + - - CAST ( NULL AS REAL ) - + col0 + + col1 FROM tab1 cor0 WHERE ( NULL ) IS NOT NULL
In the MySQL version the cast is made to a DECIMAL instead of a REAL, because I guess MySQL does not support the REAL type. However I think that the MySQL version should also run in MonetDB, by casting the col0 column into a decimal.
Reproducible: Always
Steps to Reproduce:
Actual Results:
A SIGSEGV is received in a exp_is_atom call.
Expected Results:
An empty result set.
The SIGSEV:
Thread 6 "mserver5" received signal SIGSEGV, Segmentation fault.
0x00007fffe8b0a4b5 in exp_is_atom (e=0x0) at rel_exp.c:1337
1337 switch (e->type) {
Backtrace:
0 0x00007fffe8b0a4b5 in exp_is_atom (e=0x0) at rel_exp.c:1337
1 0x00007fffe8b1d51f in exp_simplify_math (sql=0x7fffb800a5f0, e=0x7fffb80baf40, changes=0x7fffcd396874) at rel_optimizer.c:2941
2 0x00007fffe8b1de61 in rel_simplify_math (changes=0x7fffcd396874, sql=0x7fffb800a5f0, rel=0x7fffb80b8630) at rel_optimizer.c:3080
3 0x00007fffe8b377e4 in rewrite (sql=0x7fffb800a5f0, rel=0x7fffb80b8630, rewriter=0x7fffe8b1dd02 <rel_simplify_math>, has_changes=0x7fffcd396938) at rel_optimizer.c:8821
4 0x00007fffe8b37816 in rewrite (sql=0x7fffb800a5f0, rel=0x7fffb80b8630, rewriter=0x7fffe8b1dd02 <rel_simplify_math>, has_changes=0x7fffcd396938) at rel_optimizer.c:8824
5 0x00007fffe8b376c1 in rewrite (sql=0x7fffb800a5f0, rel=0x7fffb80ba3b0, rewriter=0x7fffe8b1dd02 <rel_simplify_math>, has_changes=0x7fffcd396938) at rel_optimizer.c:8805
6 0x00007fffe8b37bd1 in _rel_optimizer (sql=0x7fffb800a5f0, rel=0x7fffb80ba3b0, g_changes=0x7fffcd3969c0, level=0) at rel_optimizer.c:8907
7 0x00007fffe8b3843f in rel_optimizer (sql=0x7fffb800a5f0, rel=0x7fffb80b8630) at rel_optimizer.c:9054
8 0x00007fffe8a18b85 in sql_symbol2relation (c=0x7fffb800a5f0, sym=0x7fffb80b7da0) at sql.c:121
9 0x00007fffe8a37a35 in SQLparser (c=0x7fffea11e338) at sql_scenario.c:1129
10 0x00007ffff7a15e20 in runPhase (c=0x7fffea11e338, phase=1) at mal_scenario.c:506
11 0x00007ffff7a15f64 in runScenarioBody (c=0x7fffea11e338) at mal_scenario.c:539
12 0x00007ffff7a16107 in runScenario (c=0x7fffea11e338) at mal_scenario.c:568
13 0x00007ffff7a17cbc in MSserveClient (dummy=0x7fffea11e338) at mal_session.c:473
14 0x00007ffff7a177ac in MSscheduleClient (command=0x7fffb80008d0 "0", challenge=0x7fffcd396deb "jwuMCBng4", fin=0x7fffb80028f0, fout=0x7fffc4002b70, protocol=PROTOCOL_9, blocksize=8190,
compute_column_widths=0) at mal_session.c:364
15 0x00007ffff7ab7694 in doChallenge (data=0x7fffc40008d0) at mal_mapi.c:273
16 0x00007ffff7691213 in thread_starter (arg=0x7fffc4004c60) at gdk_system.c:485
17 0x00007ffff4ca436d in start_thread () from /lib64/libpthread.so.0
18 0x00007ffff49dcbbf in clone () from /lib64/libc.so.6
Comment 25787
Date: 2017-10-24 17:11:17 +0200
From: @PedroTadim
I added the test in this commit https://dev.monetdb.org/hg/MonetDB/rev/6d5c21f423bd Sorry I misspelled the Bug number with 64455 instead of 6445.
Comment 25801
Date: 2017-10-25 11:42:21 +0200
From: @njnes
fixed (properly return old expression if optimization isn't possible)
Comment 25804
Date: 2017-10-26 07:56:37 +0200
From: MonetDB Mercurial Repository <>
Changeset 5e59ce515a5b made by Niels Nes niels@cwi.nl in the MonetDB repo, refers to this bug.
For complete details, see https//devmonetdborg/hg/MonetDB?cmd=changeset;node=5e59ce515a5b
Changeset description:
The text was updated successfully, but these errors were encountered: