Changeset: e5772ae8a5d6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e5772ae8a5d6
Modified Files:
        sql/backends/monet5/sql_cast.c
        sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err
        
sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err.int128
        sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out
        
sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out.int128
Branch: Jun2016
Log Message:

Use correct type for comparison.


diffs (168 lines):

diff --git a/sql/backends/monet5/sql_cast.c b/sql/backends/monet5/sql_cast.c
--- a/sql/backends/monet5/sql_cast.c
+++ b/sql/backends/monet5/sql_cast.c
@@ -397,7 +397,7 @@ SQLstr_cast_(str *res, mvc *m, int eclas
        if ((len > 0 && sz > len) || sz < 0) {
                if (r)
                        GDKfree(r);
-               if (ATOMcmp(TYPE_str, ATOMnilptr(TYPE_str), p) != 0) {
+               if (ATOMcmp(tpe, ATOMnilptr(tpe), p) != 0) {
                        throw(SQL, "str_cast", "22001!value too long for type 
(var)char(%d)", len);
                } else {
                        r = GDKstrdup(str_nil);
diff --git 
a/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err 
b/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err
--- a/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err
+++ b/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err
@@ -1380,7 +1380,10 @@ MAPI  = (monetdb) /var/tmp/mtest-13167/.
 QUERY = SELECT v, convert(v, varchar) from T_dec; -- missing length 
specification
 ERROR = !CHARACTER VARYING needs a mandatory length specification in: "select 
v, convert(v, varchar)"
         !syntax error, unexpected FROM in: "from"
-MAPI  = (monetdb) /var/tmp/mtest-10564/.s.monetdb.32160
+MAPI  = (monetdb) /var/tmp/mtest-26956/.s.monetdb.37342
+QUERY = SELECT v, convert(v, varchar(16)) from T_dec;
+ERROR = !value too long for type (var)char(16)
+MAPI  = (monetdb) /var/tmp/mtest-26956/.s.monetdb.37342
 QUERY = SELECT v, convert(v, longvarchar) from T_dec; -- LONGVARCHAR not valid 
data type
 ERROR = !type (longvarchar) unknown in: "select v, convert(v, longvarchar)"
         !syntax error, unexpected FROM in: "from"
@@ -1441,7 +1444,10 @@ MAPI  = (monetdb) /var/tmp/mtest-13167/.
 QUERY = SELECT v, cast(v as varchar) from T_dec; -- missing length 
specification
 ERROR = !CHARACTER VARYING needs a mandatory length specification in: "select 
v, cast(v as varchar)"
         !syntax error, unexpected FROM in: "from"
-MAPI  = (monetdb) /var/tmp/mtest-10564/.s.monetdb.32160
+MAPI  = (monetdb) /var/tmp/mtest-26956/.s.monetdb.37342
+QUERY = SELECT v, cast(v as varchar(16)) from T_dec;
+ERROR = !value too long for type (var)char(16)
+MAPI  = (monetdb) /var/tmp/mtest-26956/.s.monetdb.37342
 QUERY = SELECT v, cast(v as longvarchar) from T_dec; -- LONGVARCHAR not valid 
data type
 ERROR = !type (longvarchar) unknown in: "select v, cast(v as longvarchar)"
         !syntax error, unexpected FROM in: "from"
diff --git 
a/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err.int128
 
b/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err.int128
--- 
a/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err.int128
+++ 
b/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.err.int128
@@ -1302,7 +1302,10 @@ MAPI  = (monetdb) /var/tmp/mtest-13167/.
 QUERY = SELECT v, convert(v, varchar) from T_dec; -- missing length 
specification
 ERROR = !CHARACTER VARYING needs a mandatory length specification in: "select 
v, convert(v, varchar)"
         !syntax error, unexpected FROM in: "from"
-MAPI  = (monetdb) /var/tmp/mtest-10564/.s.monetdb.32160
+MAPI  = (monetdb) /var/tmp/mtest-26956/.s.monetdb.37342
+QUERY = SELECT v, convert(v, varchar(16)) from T_dec;
+ERROR = !value too long for type (var)char(16)
+MAPI  = (monetdb) /var/tmp/mtest-26956/.s.monetdb.37342
 QUERY = SELECT v, convert(v, longvarchar) from T_dec; -- LONGVARCHAR not valid 
data type
 ERROR = !type (longvarchar) unknown in: "select v, convert(v, longvarchar)"
         !syntax error, unexpected FROM in: "from"
@@ -1359,7 +1362,10 @@ MAPI  = (monetdb) /var/tmp/mtest-13167/.
 QUERY = SELECT v, cast(v as varchar) from T_dec; -- missing length 
specification
 ERROR = !CHARACTER VARYING needs a mandatory length specification in: "select 
v, cast(v as varchar)"
         !syntax error, unexpected FROM in: "from"
-MAPI  = (monetdb) /var/tmp/mtest-10564/.s.monetdb.32160
+MAPI  = (monetdb) /var/tmp/mtest-26956/.s.monetdb.37342
+QUERY = SELECT v, cast(v as varchar(16)) from T_dec;
+ERROR = !value too long for type (var)char(16)
+MAPI  = (monetdb) /var/tmp/mtest-26956/.s.monetdb.37342
 QUERY = SELECT v, cast(v as longvarchar) from T_dec; -- LONGVARCHAR not valid 
data type
 ERROR = !type (longvarchar) unknown in: "select v, cast(v as longvarchar)"
         !syntax error, unexpected FROM in: "from"
diff --git 
a/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out 
b/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out
--- a/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out
+++ b/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out
@@ -5180,23 +5180,6 @@ Ready.
 [ 0.1200000,   0.120   ]
 [ -3.1415629,  -3.142  ]
 [ NULL,        NULL    ]
-#SELECT v, convert(v, varchar(16)) from T_dec;
-% sys.t_dec,   sys.L1 # table_name
-% v,   L1 # name
-% decimal,     varchar # type
-% 19,  14 # length
-[ 1.0000000,   "1.0000000"     ]
-[ 0.0000000,   "0.0000000"     ]
-[ -1.0000000,  "-1.0000000"    ]
-[ -127.0000000,        "-127.0000000"  ]
-[ 127.0000000, "127.0000000"   ]
-[ -32767.0000000,      "-32767.0000000"        ]
-[ 32767.0000000,       "32767.0000000" ]
-[ -2147483647.0000000, NULL    ]
-[ 2147483647.0000000,  NULL    ]
-[ 0.1200000,   "0.1200000"     ]
-[ -3.1415629,  "-3.1415629"    ]
-[ NULL,        NULL    ]
 #SELECT v, convert(v, CHARACTER LARGE OBJECT) from T_dec;
 % sys.t_dec,   sys.L1 # table_name
 % v,   L1 # name
@@ -5478,23 +5461,6 @@ Ready.
 [ 0.1200000,   0.120   ]
 [ -3.1415629,  -3.142  ]
 [ NULL,        NULL    ]
-#SELECT v, cast(v as varchar(16)) from T_dec;
-% sys.t_dec,   sys.L1 # table_name
-% v,   L1 # name
-% decimal,     varchar # type
-% 19,  14 # length
-[ 1.0000000,   "1.0000000"     ]
-[ 0.0000000,   "0.0000000"     ]
-[ -1.0000000,  "-1.0000000"    ]
-[ -127.0000000,        "-127.0000000"  ]
-[ 127.0000000, "127.0000000"   ]
-[ -32767.0000000,      "-32767.0000000"        ]
-[ 32767.0000000,       "32767.0000000" ]
-[ -2147483647.0000000, NULL    ]
-[ 2147483647.0000000,  NULL    ]
-[ 0.1200000,   "0.1200000"     ]
-[ -3.1415629,  "-3.1415629"    ]
-[ NULL,        NULL    ]
 #SELECT v, cast(v as CHARACTER LARGE OBJECT) from T_dec;
 % sys.t_dec,   sys.L1 # table_name
 % v,   L1 # name
diff --git 
a/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out.int128
 
b/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out.int128
--- 
a/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out.int128
+++ 
b/sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out.int128
@@ -5461,23 +5461,6 @@ Ready.
 [ 0.1200000,   0.120   ]
 [ -3.1415629,  -3.142  ]
 [ NULL,        NULL    ]
-#SELECT v, convert(v, varchar(16)) from T_dec;
-% sys.t_dec,   sys.L1 # table_name
-% v,   L1 # name
-% decimal,     varchar # type
-% 19,  14 # length
-[ 1.0000000,   "1.0000000"     ]
-[ 0.0000000,   "0.0000000"     ]
-[ -1.0000000,  "-1.0000000"    ]
-[ -127.0000000,        "-127.0000000"  ]
-[ 127.0000000, "127.0000000"   ]
-[ -32767.0000000,      "-32767.0000000"        ]
-[ 32767.0000000,       "32767.0000000" ]
-[ -2147483647.0000000, NULL    ]
-[ 2147483647.0000000,  NULL    ]
-[ 0.1200000,   "0.1200000"     ]
-[ -3.1415629,  "-3.1415629"    ]
-[ NULL,        NULL    ]
 #SELECT v, convert(v, CHARACTER LARGE OBJECT) from T_dec;
 % sys.t_dec,   sys.L1 # table_name
 % v,   L1 # name
@@ -5776,23 +5759,6 @@ Ready.
 [ 0.1200000,   0.120   ]
 [ -3.1415629,  -3.142  ]
 [ NULL,        NULL    ]
-#SELECT v, cast(v as varchar(16)) from T_dec;
-% sys.t_dec,   sys.L1 # table_name
-% v,   L1 # name
-% decimal,     varchar # type
-% 19,  14 # length
-[ 1.0000000,   "1.0000000"     ]
-[ 0.0000000,   "0.0000000"     ]
-[ -1.0000000,  "-1.0000000"    ]
-[ -127.0000000,        "-127.0000000"  ]
-[ 127.0000000, "127.0000000"   ]
-[ -32767.0000000,      "-32767.0000000"        ]
-[ 32767.0000000,       "32767.0000000" ]
-[ -2147483647.0000000, NULL    ]
-[ 2147483647.0000000,  NULL    ]
-[ 0.1200000,   "0.1200000"     ]
-[ -3.1415629,  "-3.1415629"    ]
-[ NULL,        NULL    ]
 #SELECT v, cast(v as CHARACTER LARGE OBJECT) from T_dec;
 % sys.t_dec,   sys.L1 # table_name
 % v,   L1 # name
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to