Changeset: cd7802d93fd4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/cd7802d93fd4
Modified Files:
clients/odbc/driver/SQLGetInfo.c
clients/odbc/tests/ODBCgetInfo.c
sql/test/odbc-escape-sequences/Tests/time-date-interval-functions.test
Branch: Jun2023
Log Message:
SQL_TSI_FRAC_SECOND is now also suported for both timestampadd() and
timestampdiff() functions.
diffs (64 lines):
diff --git a/clients/odbc/driver/SQLGetInfo.c b/clients/odbc/driver/SQLGetInfo.c
--- a/clients/odbc/driver/SQLGetInfo.c
+++ b/clients/odbc/driver/SQLGetInfo.c
@@ -1038,7 +1038,8 @@ MNDBGetInfo(ODBCDbc *dbc,
case SQL_TIMEDATE_ADD_INTERVALS:
case SQL_TIMEDATE_DIFF_INTERVALS:
/* when server is 11.46 or higher */
- nValue = SQL_FN_TSI_SECOND |
+ nValue = SQL_FN_TSI_FRAC_SECOND |
+ SQL_FN_TSI_SECOND |
SQL_FN_TSI_MINUTE |
SQL_FN_TSI_HOUR |
SQL_FN_TSI_DAY |
@@ -1046,7 +1047,6 @@ MNDBGetInfo(ODBCDbc *dbc,
SQL_FN_TSI_MONTH |
SQL_FN_TSI_QUARTER |
SQL_FN_TSI_YEAR;
- /* SQL_FN_TSI_FRAC_SECOND | */
break;
case SQL_TIMEDATE_FUNCTIONS:
nValue = SQL_FN_TD_CURRENT_DATE |
diff --git a/clients/odbc/tests/ODBCgetInfo.c b/clients/odbc/tests/ODBCgetInfo.c
--- a/clients/odbc/tests/ODBCgetInfo.c
+++ b/clients/odbc/tests/ODBCgetInfo.c
@@ -1080,13 +1080,13 @@ const struct {
.info = SQL_TIMEDATE_ADD_INTERVALS,
.name = "SQL_TIMEDATE_ADD_INTERVALS",
.type = INTEGER,
- .i = SQL_FN_TSI_SECOND | SQL_FN_TSI_MINUTE | SQL_FN_TSI_HOUR |
SQL_FN_TSI_DAY | SQL_FN_TSI_WEEK | SQL_FN_TSI_MONTH | SQL_FN_TSI_QUARTER |
SQL_FN_TSI_YEAR,
+ .i = SQL_FN_TSI_FRAC_SECOND | SQL_FN_TSI_SECOND |
SQL_FN_TSI_MINUTE | SQL_FN_TSI_HOUR | SQL_FN_TSI_DAY | SQL_FN_TSI_WEEK |
SQL_FN_TSI_MONTH | SQL_FN_TSI_QUARTER | SQL_FN_TSI_YEAR,
},
{
.info = SQL_TIMEDATE_DIFF_INTERVALS,
.name = "SQL_TIMEDATE_DIFF_INTERVALS",
.type = INTEGER,
- .i = SQL_FN_TSI_SECOND | SQL_FN_TSI_MINUTE | SQL_FN_TSI_HOUR |
SQL_FN_TSI_DAY | SQL_FN_TSI_WEEK | SQL_FN_TSI_MONTH | SQL_FN_TSI_QUARTER |
SQL_FN_TSI_YEAR,
+ .i = SQL_FN_TSI_FRAC_SECOND | SQL_FN_TSI_SECOND |
SQL_FN_TSI_MINUTE | SQL_FN_TSI_HOUR | SQL_FN_TSI_DAY | SQL_FN_TSI_WEEK |
SQL_FN_TSI_MONTH | SQL_FN_TSI_QUARTER | SQL_FN_TSI_YEAR,
},
{
.info = SQL_TIMEDATE_FUNCTIONS,
diff --git
a/sql/test/odbc-escape-sequences/Tests/time-date-interval-functions.test
b/sql/test/odbc-escape-sequences/Tests/time-date-interval-functions.test
--- a/sql/test/odbc-escape-sequences/Tests/time-date-interval-functions.test
+++ b/sql/test/odbc-escape-sequences/Tests/time-date-interval-functions.test
@@ -314,7 +314,7 @@ select { fn timestampadd(SQL_TSI_DAY, 14
2022-12-12 14:13:12
query T rowsort
-select { fn timestampadd(SQL_TSI_DAY, 28, timestamp'2022-11-14 14:13:12') }
+select { fn timestampadd(SQL_TSI_DAY, 4*7, timestamp'2022-11-14 14:13:12') }
----
2022-12-12 14:13:12
@@ -344,6 +344,11 @@ 2027-11-14 14:13:12
# interval has the same value as TIMESTAMPADD.
# Fractional seconds are expressed in billionths of a second.
+query T rowsort
+select cast ({ fn timestampdiff(SQL_TSI_FRAC_SECOND, { ts '2022-12-12
12:00:00.123456'}, {ts'2022-12-12 12:00:30.654321' }) } as varchar(20))
+----
+30.531
+
query I rowsort
select { fn timestampdiff(SQL_TSI_SECOND, timestamp'2022-12-12 12:00:00',
timestamp'2022-12-12 12:00:30') }
----
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]