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