Changeset: 9600b10bdd33 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9600b10bdd33
Modified Files:
sql/backends/monet5/sql_statement.c
sql/test/BugTracker-2008/Tests/varchar_char_semantics.SF-2075085.stable.out
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
sql/test/pg_regress/Tests/strings.stable.out
sql/test/pg_regress/Tests/strings_cast.stable.out
Branch: Oct2020
Log Message:
The same for conversion statements
diffs (110 lines):
diff --git a/sql/backends/monet5/sql_statement.c
b/sql/backends/monet5/sql_statement.c
--- a/sql/backends/monet5/sql_statement.c
+++ b/sql/backends/monet5/sql_statement.c
@@ -3063,13 +3063,14 @@ stmt_convert(backend *be, stmt *v, stmt
if (v->nr < 0)
return NULL;
- if (t->type->localtype == f->type->localtype &&
+ if ((t->type->localtype == f->type->localtype &&
(t->type->eclass == f->type->eclass ||
(EC_VARCHAR(f->type->eclass) && EC_VARCHAR(t->type->eclass))) &&
!EC_INTERVAL(f->type->eclass) &&
f->type->eclass != EC_DEC &&
(t->digits == 0 || f->digits == t->digits) &&
- type_has_tz(t) == type_has_tz(f)) {
+ type_has_tz(t) == type_has_tz(f)) ||
+ (EC_VARCHAR(f->type->eclass) && EC_VARCHAR(t->type->eclass) &&
f->digits > 0 && t->digits >= f->digits)) {
/* set output type. Despite the MAL code already being
generated,
the output type may still be checked */
tail_set_type(v, t);
diff --git
a/sql/test/BugTracker-2008/Tests/varchar_char_semantics.SF-2075085.stable.out
b/sql/test/BugTracker-2008/Tests/varchar_char_semantics.SF-2075085.stable.out
---
a/sql/test/BugTracker-2008/Tests/varchar_char_semantics.SF-2075085.stable.out
+++
b/sql/test/BugTracker-2008/Tests/varchar_char_semantics.SF-2075085.stable.out
@@ -31,7 +31,7 @@ stdout of test 'varchar_char_semantics.S
[ 10, "1234567890", "1234567890" ]
[ 5, "12345 ", "12345" ]
#SELECT COUNT(*) FROM T850 WHERE T850C = T850VC;
-% .%1 # table_name
+% sys.%1 # table_name
% %1 # name
% bigint # type
% 1 # length
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
@@ -5664,8 +5664,8 @@ stdout of test 'convert-function-test.Bu
#SELECT v, convert(v, varchar(36)) from T_char;
% sys.t_char, sys.%1 # table_name
% v, %1 # name
-% char, varchar # type
-% 33, 27 # length
+% char, char # type
+% 33, 33 # length
[ "0", "0" ]
[ "1", "1" ]
[ "0123456789", "0123456789" ]
@@ -5825,8 +5825,8 @@ stdout of test 'convert-function-test.Bu
#SELECT v, cast(v as varchar(36)) from T_char;
% sys.t_char, sys.%1 # table_name
% v, %1 # name
-% char, varchar # type
-% 33, 27 # length
+% char, char # type
+% 33, 33 # length
[ "0", "0" ]
[ "1", "1" ]
[ "0123456789", "0123456789" ]
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
@@ -5969,8 +5969,8 @@ stdout of test 'convert-function-test.Bu
#SELECT v, convert(v, varchar(36)) from T_char;
% sys.t_char, sys.%1 # table_name
% v, %1 # name
-% char, varchar # type
-% 33, 27 # length
+% char, char # type
+% 33, 33 # length
[ "0", "0" ]
[ "1", "1" ]
[ "0123456789", "0123456789" ]
@@ -6137,8 +6137,8 @@ stdout of test 'convert-function-test.Bu
#SELECT v, cast(v as varchar(36)) from T_char;
% sys.t_char, sys.%1 # table_name
% v, %1 # name
-% char, varchar # type
-% 33, 27 # length
+% char, char # type
+% 33, 33 # length
[ "0", "0" ]
[ "1", "1" ]
[ "0123456789", "0123456789" ]
diff --git a/sql/test/pg_regress/Tests/strings.stable.out
b/sql/test/pg_regress/Tests/strings.stable.out
--- a/sql/test/pg_regress/Tests/strings.stable.out
+++ b/sql/test/pg_regress/Tests/strings.stable.out
@@ -123,8 +123,8 @@ stdout of test 'strings` in directory 's
#SELECT CAST(f1 AS char(10)) AS "char(varchar)" FROM VARCHAR_TBL;
% sys. # table_name
% char(varchar) # name
-% char # type
-% 10 # length
+% varchar # type
+% 1 # length
[ "a" ]
[ "A" ]
[ "1" ]
diff --git a/sql/test/pg_regress/Tests/strings_cast.stable.out
b/sql/test/pg_regress/Tests/strings_cast.stable.out
--- a/sql/test/pg_regress/Tests/strings_cast.stable.out
+++ b/sql/test/pg_regress/Tests/strings_cast.stable.out
@@ -109,8 +109,8 @@ stdout of test 'strings_cast` in directo
#SELECT CAST(f1 AS char(10)) AS "char(varchar)" FROM VARCHAR_TBL;
% sys. # table_name
% char(varchar) # name
-% char # type
-% 10 # length
+% varchar # type
+% 4 # length
[ "a" ]
[ "ab" ]
[ "abcd" ]
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list