Changeset: 37a9c852a69f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=37a9c852a69f
Modified Files:
        sql/common/sql_types.c
        sql/server/sql_parser.y
        sql/server/sql_semantic.c
Branch: sfcgal
Log Message:

merged with default


diffs (46 lines):

diff --git a/sql/common/sql_types.c b/sql/common/sql_types.c
--- a/sql/common/sql_types.c
+++ b/sql/common/sql_types.c
@@ -43,6 +43,12 @@ int digits2bits(int digits)
                return 8;
        else if (digits < 5) 
                return 16;
+       else if (digits <= 5) 
+               return 17;
+       else if (digits <= 6) 
+               return 20;
+       else if (digits <= 7) 
+               return 24;
        else if (digits <= 8) 
                return 27;
        else if (digits < 10) 
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
@@ -4337,6 +4337,9 @@ literal:
                  /* find the most suitable data type for the given number */
                  if (!err) {
                    int bits = digits2bits(digits);
+
+                   for (;(1<<(bits-1)) > value; bits--) ;
+                  
                    if (value > GDK_bte_min && value <= GDK_bte_max)
                          sql_find_subtype(&t, "tinyint", bits, 0 );
                    else if (value > GDK_sht_min && value <= GDK_sht_max)
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
@@ -202,10 +202,11 @@ supertype(sql_subtype *super, sql_subtyp
        unsigned int scale = sql_max(i->scale, r->scale);
 
        *super = *r;
-       if (i->type->base.id >r->type->base.id || 
+       if (i->type->base.id > r->type->base.id || 
            (EC_VARCHAR(i->type->eclass) && !EC_VARCHAR(r->type->eclass))) {
+               *super = *i;
+               radix = i->type->radix;
                tpe = i->type->sqlname;
-               radix = i->type->radix;
        }
        /* 
         * Incase of different radix we should change one. 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to