Changeset: a4cc96be3c1a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a4cc96be3c1a
Modified Files:
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_statement.c
        sql/test/miscellaneous/Tests/simple_selects.sql
        sql/test/miscellaneous/Tests/simple_selects.stable.out
Branch: Oct2020
Log Message:

More trivial SQL to GDK conversions and while converting a second interval to a 
string, don't forget the dot separator


diffs (58 lines):

diff --git a/sql/backends/monet5/sql_result.c b/sql/backends/monet5/sql_result.c
--- a/sql/backends/monet5/sql_result.c
+++ b/sql/backends/monet5/sql_result.c
@@ -1138,13 +1138,14 @@ convert2str(mvc *m, sql_class eclass, in
                ts_res.fraction = d ? d - 1 : 0;
                ts_res.timezone = m->timezone;
                l = sql_time_tostr((void *) &ts_res, buf, &len2, mtype, p);
-
        } else if (eclass == EC_TIMESTAMP || eclass == EC_TIMESTAMP_TZ) {
                struct time_res ts_res;
                ts_res.has_tz = has_tz;
                ts_res.fraction = d ? d - 1 : 0;
                ts_res.timezone = m->timezone;
                l = sql_timestamp_tostr((void *) &ts_res, buf, &len2, mtype, p);
+       } else if (eclass == EC_SEC) {
+               l = dec_tostr((void *) (ptrdiff_t) 3, buf, &len2, mtype, p);
        } else if (eclass == EC_BIT) {
                bit b = *(bit *) p;
                if (len <= 0 || len > 5) {
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
@@ -3051,7 +3051,8 @@ tail_set_type(stmt *st, sql_subtype *t)
        }
 }
 
-#define trivial_string_conversion(x) ((x) == EC_BIT || (x) == EC_CHAR || (x) 
== EC_STRING || (x) == EC_NUM || (x) == EC_POS || (x) == EC_FLT)
+#define trivial_string_conversion(x) ((x) == EC_BIT || (x) == EC_CHAR || (x) 
== EC_STRING || (x) == EC_NUM || (x) == EC_POS || (x) == EC_FLT \
+                                                                         || 
(x) == EC_DATE || (x) == EC_BLOB || (x) == EC_MONTH)
 
 stmt *
 stmt_convert(backend *be, stmt *v, stmt *sel, sql_subtype *f, sql_subtype *t)
diff --git a/sql/test/miscellaneous/Tests/simple_selects.sql 
b/sql/test/miscellaneous/Tests/simple_selects.sql
--- a/sql/test/miscellaneous/Tests/simple_selects.sql
+++ b/sql/test/miscellaneous/Tests/simple_selects.sql
@@ -200,3 +200,6 @@ rollback;
 
 select * from (select 1 as c0, 2 as c0) as sub;
        -- 1 2
+
+select cast(interval '3' second as clob);
+       -- 3.000
diff --git a/sql/test/miscellaneous/Tests/simple_selects.stable.out 
b/sql/test/miscellaneous/Tests/simple_selects.stable.out
--- a/sql/test/miscellaneous/Tests/simple_selects.stable.out
+++ b/sql/test/miscellaneous/Tests/simple_selects.stable.out
@@ -386,6 +386,12 @@ stdout of test 'simple_selects` in direc
 % tinyint,     tinyint # type
 % 1,   1 # length
 [ 1,   2       ]
+#select cast(interval '3' second as clob);
+% .%1 # table_name
+% %1 # name
+% clob # type
+% 5 # length
+[ "3.000"      ]
 
 # 17:31:38 >  
 # 17:31:38 >  "Done."
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to