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

Reply via email to