Changeset: 469a57574048 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=469a57574048 Added Files: sql/test/BugTracker-2017/Tests/modulo.Bug-6225.sql sql/test/BugTracker-2017/Tests/modulo.Bug-6225.stable.err sql/test/BugTracker-2017/Tests/modulo.Bug-6225.stable.out Modified Files: sql/ChangeLog sql/server/sql_parser.y sql/test/BugTracker-2017/Tests/All Branch: default Log Message:
Fixed operator precedence of % to be equal to * and /. This fixes bug 6225. diffs (130 lines): diff --git a/sql/ChangeLog b/sql/ChangeLog --- a/sql/ChangeLog +++ b/sql/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog file for sql # This file is updated with Maddlog +* Thu Mar 2 2017 Sjoerd Mullender <[email protected]> +- Made the operator precedence of % equal to those of * and /. All three + are evaluated from left to right. + * Mon Feb 6 2017 Sjoerd Mullender <[email protected]> - Removed table sys.connections. It was a remnant of an experimental change that had already been removed in 2012. diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y --- a/sql/server/sql_parser.y +++ b/sql/server/sql_parser.y @@ -573,8 +573,7 @@ int yydebug=1; %left <sval> COMPARISON /* <> < > <= >= */ %left <operation> '+' '-' '&' '|' '^' LEFT_SHIFT RIGHT_SHIFT LEFT_SHIFT_ASSIGN RIGHT_SHIFT_ASSIGN CONCATSTRING SUBSTRING POSITION SPLIT_PART %right UMINUS -%left <operation> '*' '/' -%left <operation> '%' +%left <operation> '*' '/' '%' %left <operation> '~' %left <operatio> GEOM_OVERLAP GEOM_OVERLAP_OR_ABOVE GEOM_OVERLAP_OR_BELOW GEOM_OVERLAP_OR_LEFT diff --git a/sql/test/BugTracker-2017/Tests/All b/sql/test/BugTracker-2017/Tests/All --- a/sql/test/BugTracker-2017/Tests/All +++ b/sql/test/BugTracker-2017/Tests/All @@ -33,3 +33,4 @@ real-power.Bug-6228 sqlsmith.Bug-6219 create_view_order_by.Bug-3465 cast_boolean_to_string.Bug-6110 +modulo.Bug-6225 diff --git a/sql/test/BugTracker-2017/Tests/modulo.Bug-6225.sql b/sql/test/BugTracker-2017/Tests/modulo.Bug-6225.sql new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2017/Tests/modulo.Bug-6225.sql @@ -0,0 +1,2 @@ +select 10*10/3; +select 10*10%3; diff --git a/sql/test/BugTracker-2017/Tests/modulo.Bug-6225.stable.err b/sql/test/BugTracker-2017/Tests/modulo.Bug-6225.stable.err new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2017/Tests/modulo.Bug-6225.stable.err @@ -0,0 +1,35 @@ +stderr of test 'modulo.Bug-6225` in directory 'sql/test/BugTracker-2017` itself: + + +# 17:14:41 > +# 17:14:41 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=35974" "--set" "mapi_usock=/var/tmp/mtest-24756/.s.monetdb.35974" "--set" "monet_prompt=" "--forcemito" "--set" "gdk_vm_maxsize=8589934592" "--dbpath=/ufs/sjoerd/Monet-devel/var/MonetDB/mTests_sql_test_BugTracker-2017" +# 17:14:41 > + +# builtin opt gdk_dbpath = /ufs/sjoerd/Monet-devel/var/monetdb5/dbfarm/demo +# builtin opt gdk_debug = 0 +# builtin opt gdk_vmtrim = no +# builtin opt monet_prompt = > +# builtin opt monet_daemon = no +# builtin opt mapi_port = 50000 +# builtin opt mapi_open = false +# builtin opt mapi_autosense = false +# builtin opt sql_optimizer = default_pipe +# builtin opt sql_debug = 0 +# cmdline opt gdk_nr_threads = 0 +# cmdline opt mapi_open = true +# cmdline opt mapi_port = 35974 +# cmdline opt mapi_usock = /var/tmp/mtest-24756/.s.monetdb.35974 +# cmdline opt monet_prompt = +# cmdline opt gdk_vm_maxsize = 8589934592 +# cmdline opt gdk_dbpath = /ufs/sjoerd/Monet-devel/var/MonetDB/mTests_sql_test_BugTracker-2017 +# cmdline opt gdk_debug = 536870922 + +# 17:14:41 > +# 17:14:41 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-24756" "--port=35974" +# 17:14:41 > + + +# 17:14:41 > +# 17:14:41 > "Done." +# 17:14:41 > + diff --git a/sql/test/BugTracker-2017/Tests/modulo.Bug-6225.stable.out b/sql/test/BugTracker-2017/Tests/modulo.Bug-6225.stable.out new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2017/Tests/modulo.Bug-6225.stable.out @@ -0,0 +1,43 @@ +stdout of test 'modulo.Bug-6225` in directory 'sql/test/BugTracker-2017` itself: + + +# 17:14:41 > +# 17:14:41 > "mserver5" "--debug=10" "--set" "gdk_nr_threads=0" "--set" "mapi_open=true" "--set" "mapi_port=35974" "--set" "mapi_usock=/var/tmp/mtest-24756/.s.monetdb.35974" "--set" "monet_prompt=" "--forcemito" "--set" "gdk_vm_maxsize=8589934592" "--dbpath=/ufs/sjoerd/Monet-devel/var/MonetDB/mTests_sql_test_BugTracker-2017" +# 17:14:41 > + +# MonetDB 5 server v11.26.0 (hg id: 2bac5d524bcb+) +# This is an unreleased version +# Serving database 'mTests_sql_test_BugTracker-2017', using 8 threads +# Compiled for x86_64-unknown-linux-gnu/64bit with 128bit integers +# Found 15.589 GiB available main-memory. +# Copyright (c) 1993-July 2008 CWI. +# Copyright (c) August 2008-2017 MonetDB B.V., all rights reserved +# Visit http://www.monetdb.org/ for further information +# Listening for connection requests on mapi:monetdb://madrid.da.cwi.nl:35974/ +# Listening for UNIX domain connection requests on mapi:monetdb:///var/tmp/mtest-24756/.s.monetdb.35974 +# MonetDB/GIS module loaded +# MonetDB/SQL module loaded + +Ready. + +# 17:14:41 > +# 17:14:41 > "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" "--host=/var/tmp/mtest-24756" "--port=35974" +# 17:14:41 > + +#select 10*10/3; +% .L2 # table_name +% L2 # name +% smallint # type +% 2 # length +[ 33 ] +#select 10*10%3; +% .L2 # table_name +% L2 # name +% smallint # type +% 1 # length +[ 1 ] + +# 17:14:41 > +# 17:14:41 > "Done." +# 17:14:41 > + _______________________________________________ checkin-list mailing list [email protected] https://www.monetdb.org/mailman/listinfo/checkin-list
