Changeset: 0bdec6c8fff0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/0bdec6c8fff0
Modified Files:
sql/server/sql_parser.y
sql/test/escape-sequences/Tests/scalar-functions.test
Branch: escape-sequences
Log Message:
convert test cases
diffs (215 lines):
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
@@ -6415,7 +6415,7 @@ odbc_data_type:
| SQL_BIT
{ sql_find_subtype(&$$, "boolean", 0, 0); }
| SQL_CHAR
- { sql_find_subtype(&$$, "character", 1, 0); }
+ { sql_find_subtype(&$$, "char", 1, 0); }
| SQL_DATE
{ sql_find_subtype(&$$, "date", 0, 0); }
| SQL_DECIMAL
@@ -6425,7 +6425,14 @@ odbc_data_type:
| SQL_FLOAT
{ sql_find_subtype(&$$, "double", 0, 0); }
| SQL_GUID
- { sql_find_subtype(&$$, "uuid", 0, 0); }
+ {
+ sql_type* t = NULL;
+ if (!(t = mvc_bind_type(m, "uuid"))) {
+ sqlformaterror(m, SQLSTATE(22000) "Type uuid unknown");
+ YYABORT;
+ }
+ sql_init_subtype(&$$, t, 0, 0);
+ }
| SQL_HUGEINT
{ sql_find_subtype(&$$, "hugeint", 0, 0); }
| SQL_INTEGER
diff --git a/sql/test/escape-sequences/Tests/scalar-functions.test
b/sql/test/escape-sequences/Tests/scalar-functions.test
--- a/sql/test/escape-sequences/Tests/scalar-functions.test
+++ b/sql/test/escape-sequences/Tests/scalar-functions.test
@@ -15,7 +15,183 @@ select { fn abs(-3) }
3
query I rowsort
+select { fn convert(1, SQL_BIGINT) }
+----
+1
+
+query T rowsort
+select { fn convert(x'1234', SQL_BINARY) }
+----
+1234
+
+query I rowsort
+select { fn convert(true, SQL_BIT) }
+----
+1
+
+query T rowsort
+select { fn convert('abc', SQL_CHAR) }
+----
+a
+
+query T rowsort
+select { fn convert('2022-11-10', SQL_DATE) }
+----
+2022-11-10
+
+query T rowsort
+select { fn convert(3.33333, SQL_DECIMAL) }
+----
+3.333
+
+query T rowsort
+select { fn convert(3.33333, SQL_DOUBLE) }
+----
+3.33333
+
+query T rowsort
+select { fn convert(3.33333, SQL_FLOAT) }
+----
+3.33333
+
+query T rowsort
+select { fn convert('a338a15d-0422-4242-a7f0-65316edae19a', SQL_GUID) }
+----
+a338a15d-0422-4242-a7f0-65316edae19a
+
+query I rowsort
+select { fn convert(1, SQL_HUGEINT) }
+----
+1
+
+query I rowsort
+select { fn convert(1, SQL_INTEGER) }
+----
+1
+
+query I rowsort
+select { fn convert(interval '1' year, SQL_INTERVAL_YEAR) }
+----
+12
+
+query I rowsort
+select { fn convert(interval '1' year, SQL_INTERVAL_YEAR_TO_MONTH) }
+----
+12
+
+query I rowsort
+select { fn convert(interval '1' year, SQL_INTERVAL_MONTH) }
+----
+12
+
+query I rowsort
select { fn convert(date'2022-10-8' - date'2022-10-7', SQL_INTERVAL_DAY) }
----
1
+query T rowsort
+select { fn convert(interval '1' day, SQL_INTERVAL_DAY_TO_HOUR) }
+----
+1 day, 0:00:00
+
+
+query T rowsort
+select { fn convert(interval '1' day, SQL_INTERVAL_DAY_TO_MINUTE) }
+----
+1 day, 0:00:00
+
+query T rowsort
+select { fn convert(interval '1' day, SQL_INTERVAL_DAY_TO_SECOND) }
+----
+1 day, 0:00:00
+
+query T rowsort
+select { fn convert(interval '1' hour, SQL_INTERVAL_HOUR) }
+----
+1:00:00
+
+query T rowsort
+select { fn convert(interval '1' hour, SQL_INTERVAL_HOUR_TO_MINUTE) }
+----
+1:00:00
+
+query T rowsort
+select { fn convert(interval '1' hour, SQL_INTERVAL_HOUR_TO_SECOND) }
+----
+1:00:00
+
+query T rowsort
+select { fn convert(interval '1' minute, SQL_INTERVAL_MINUTE) }
+----
+0:01:00
+
+query T rowsort
+select { fn convert((interval '1' minute - interval '30' second),
SQL_INTERVAL_MINUTE_TO_SECOND) }
+----
+0:00:30
+
+query T rowsort
+select { fn convert(x'1234', SQL_LONGVARBINARY) }
+----
+1234
+
+query T rowsort
+select { fn convert('abc', SQL_LONGVARCHAR) }
+----
+abc
+
+query T rowsort
+select { fn convert(3.333333, SQL_NUMERIC) }
+----
+3.333
+
+query T rowsort
+select { fn convert(3.333333, SQL_REAL) }
+----
+3.333333
+
+query I rowsort
+select { fn convert(3, SQL_SMALLINT) }
+----
+3
+
+query T rowsort
+select { fn convert(time'00:01:45', SQL_TIME) }
+----
+00:01:45
+
+query T rowsort
+select { fn convert(timestamp'2022-11-10 00:01:45', SQL_TIMESTAMP) }
+----
+2022-11-10 00:01:45
+
+query I rowsort
+select { fn convert(1, SQL_TINYINT) }
+----
+1
+
+query T rowsort
+select { fn convert(x'1234', SQL_VARBINARY) }
+----
+1234
+
+query T rowsort
+select { fn convert('abc', SQL_VARCHAR) }
+----
+abc
+
+query T rowsort
+select { fn convert('abc', SQL_WCHAR) }
+----
+a
+
+query T rowsort
+select { fn convert('abc', SQL_WVARCHAR) }
+----
+abc
+
+query T rowsort
+select { fn convert('abc', SQL_WLONGVARCHAR) }
+----
+abc
+
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]