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