Changeset: 07e26e707812 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=07e26e707812
Modified Files:
sql/server/sql_semantic.c
sql/test/BugTracker-2011/Tests/All
sql/test/BugTracker-2011/Tests/supertype.Bug-2830.sql
sql/test/BugTracker-2011/Tests/supertype.Bug-2830.stable.err
sql/test/BugTracker-2011/Tests/supertype.Bug-2830.stable.out
Branch: Apr2011
Log Message:
fixed super type construction
diffs (133 lines):
diff --git a/sql/server/sql_semantic.c b/sql/server/sql_semantic.c
--- a/sql/server/sql_semantic.c
+++ b/sql/server/sql_semantic.c
@@ -653,26 +653,8 @@
rdigits = digits2bits(rdigits);
}
}
- if (idigits && rdigits) {
- if (idigits > rdigits) {
- digits = idigits;
- if (i->scale < scale)
- digits += scale - i->scale;
- } else if (idigits < rdigits) {
- digits = rdigits;
- if (r->scale < scale)
- digits += scale - r->scale;
- } else {
- /* same number of digits */
- digits = idigits;
- if (i->scale < r->scale)
- digits += r->scale - i->scale;
- else
- digits += i->scale - r->scale;
- }
- }
-
- sql_find_subtype(super, tpe, digits, scale);
+ digits = sql_max(idigits - i->scale, rdigits - r->scale);
+ sql_find_subtype(super, tpe, digits+scale, scale);
return super;
}
diff --git a/sql/test/BugTracker-2011/Tests/All
b/sql/test/BugTracker-2011/Tests/All
--- a/sql/test/BugTracker-2011/Tests/All
+++ b/sql/test/BugTracker-2011/Tests/All
@@ -16,3 +16,4 @@
crash_in_push_exp_down.Bug-2811
subquery_in_from_clause.Bug-2812
mkey-bulk_rotate_xor_hash.Bug-2825
+supertype.Bug-2830
diff --git a/sql/test/BugTracker-2011/Tests/supertype.Bug-2830.sql
b/sql/test/BugTracker-2011/Tests/supertype.Bug-2830.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2011/Tests/supertype.Bug-2830.sql
@@ -0,0 +1,1 @@
+select 30. - 0.025;
diff --git a/sql/test/BugTracker-2011/Tests/supertype.Bug-2830.stable.err
b/sql/test/BugTracker-2011/Tests/supertype.Bug-2830.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2011/Tests/supertype.Bug-2830.stable.err
@@ -0,0 +1,39 @@
+stderr of test 'supertype.Bug-2830` in directory 'test/BugTracker-2011` itself:
+
+
+# 22:35:24 >
+# 22:35:24 > mserver5 --debug=10 --set gdk_nr_threads=0 --set
"gdk_dbfarm=/ufs/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB" --set
mapi_open=true --set mapi_port=38266 --set monet_prompt= --trace --forcemito
--set mal_listing=2 "--dbname=mTests_test_BugTracker-2011" --set mal_listing=0
; echo ; echo Over..
+# 22:35:24 >
+
+# builtin opt gdk_dbname = demo
+# builtin opt gdk_dbfarm =
/ufs/niels/scratch/rc-clean/Linux-x86_64/var/monetdb5/dbfarm
+# builtin opt gdk_debug = 0
+# builtin opt gdk_alloc_map = no
+# builtin opt gdk_vmtrim = yes
+# 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 default_pipe =
inline,remap,evaluate,costModel,coercions,emptySet,aliases,mitosis,mergetable,deadcode,commonTerms,joinPath,reorder,deadcode,reduce,dataflow,history,multiplex,garbageCollector
+# builtin opt minimal_pipe = inline,remap,deadcode,multiplex,garbageCollector
+# builtin opt sql_optimizer = default_pipe
+# builtin opt sql_debug = 0
+# cmdline opt gdk_nr_threads = 0
+# cmdline opt gdk_dbfarm =
/ufs/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB
+# cmdline opt mapi_open = true
+# cmdline opt mapi_port = 38266
+# cmdline opt monet_prompt =
+# cmdline opt mal_listing = 2
+# cmdline opt gdk_dbname = mTests_test_BugTracker-2011
+# cmdline opt mal_listing = 0
+
+# 22:35:24 >
+# 22:35:24 > mclient -lsql -ftest -i -e --host=alf --port=38266
+# 22:35:24 >
+
+
+# 22:35:24 >
+# 22:35:24 > Done.
+# 22:35:24 >
+
diff --git a/sql/test/BugTracker-2011/Tests/supertype.Bug-2830.stable.out
b/sql/test/BugTracker-2011/Tests/supertype.Bug-2830.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2011/Tests/supertype.Bug-2830.stable.out
@@ -0,0 +1,38 @@
+stdout of test 'supertype.Bug-2830` in directory 'test/BugTracker-2011` itself:
+
+
+# 22:35:24 >
+# 22:35:24 > mserver5 --debug=10 --set gdk_nr_threads=0 --set
"gdk_dbfarm=/ufs/niels/scratch/rc-clean/Linux-x86_64/var/MonetDB" --set
mapi_open=true --set mapi_port=38266 --set monet_prompt= --trace --forcemito
--set mal_listing=2 "--dbname=mTests_test_BugTracker-2011" --set mal_listing=0
; echo ; echo Over..
+# 22:35:24 >
+
+# MonetDB 5 server v11.3.4
+# This is an unreleased version
+# Serving database 'mTests_test_BugTracker-2011', using 4 threads
+# Compiled for x86_64-unknown-linux-gnu/64bit with 64bit OIDs dynamically
linked
+# Found 7.752 GiB available main-memory.
+# Copyright (c) 1993-July 2008 CWI.
+# Copyright (c) August 2008-2011 MonetDB B.V., all rights reserved
+# Visit http://monetdb.cwi.nl/ for further information
+# Listening for connection requests on mapi:monetdb://alf.ins.cwi.nl:38266/
+# MonetDB/GIS module loaded
+# MonetDB/SQL module loaded
+
+Ready.
+
+Over..
+
+# 22:35:24 >
+# 22:35:24 > mclient -lsql -ftest -i -e --host=alf --port=38266
+# 22:35:24 >
+
+#select 30. - 0.025;
+% . # table_name
+% sql_sub_single_value # name
+% decimal # type
+% 11 # length
+[ 29.975 ]
+
+# 22:35:24 >
+# 22:35:24 > Done.
+# 22:35:24 >
+
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list