Changeset: 3a9196d518a6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/3a9196d518a6
Modified Files:
sql/backends/monet5/vaults/odbc/odbc_loader.c
sql/test/proto_loader/odbc/Tests/monetodbc_datatypes.test
Branch: Mar2025
Log Message:
Adjust test to include fractions of a second. It appears the fractions are in
microsecs, where we store millisecs.
diffs (75 lines):
diff --git a/sql/backends/monet5/vaults/odbc/odbc_loader.c
b/sql/backends/monet5/vaults/odbc/odbc_loader.c
--- a/sql/backends/monet5/vaults/odbc/odbc_loader.c
+++ b/sql/backends/monet5/vaults/odbc/odbc_loader.c
@@ -1098,7 +1098,7 @@ odbc_query(int caller, mvc *sql, sql_sub
case
SQL_INTERVAL_SECOND:
{
lng_val = (lng)
(itv_val.intval.day_second.second * 1000)
- +
itv_val.intval.day_second.fraction;
+ +
(itv_val.intval.day_second.fraction / 1000);
if
(itv_val.interval_sign == SQL_TRUE)
lng_val
= -lng_val;
if
(trace_enabled)
@@ -1135,7 +1135,7 @@ odbc_query(int caller, mvc *sql, sql_sub
+
itv_val.intval.day_second.hour) *60)
+
itv_val.intval.day_second.minute) *60)
+
itv_val.intval.day_second.second) *1000)
- +
itv_val.intval.day_second.fraction;
+ +
(itv_val.intval.day_second.fraction / 1000);
if
(itv_val.interval_sign == SQL_TRUE)
lng_val
= -lng_val;
if
(trace_enabled)
@@ -1159,7 +1159,7 @@ odbc_query(int caller, mvc *sql, sql_sub
lng_val = (lng)
(((((itv_val.intval.day_second.hour *60)
+
itv_val.intval.day_second.minute) *60)
+
itv_val.intval.day_second.second) *1000)
- +
itv_val.intval.day_second.fraction;
+ +
(itv_val.intval.day_second.fraction / 1000);
if
(itv_val.interval_sign == SQL_TRUE)
lng_val
= -lng_val;
if
(trace_enabled)
@@ -1171,7 +1171,7 @@ odbc_query(int caller, mvc *sql, sql_sub
{
lng_val = (lng)
(((itv_val.intval.day_second.minute *60)
+
itv_val.intval.day_second.second) *1000)
- +
itv_val.intval.day_second.fraction;
+ +
(itv_val.intval.day_second.fraction / 1000);
if
(itv_val.interval_sign == SQL_TRUE)
lng_val
= -lng_val;
if
(trace_enabled)
diff --git a/sql/test/proto_loader/odbc/Tests/monetodbc_datatypes.test
b/sql/test/proto_loader/odbc/Tests/monetodbc_datatypes.test
--- a/sql/test/proto_loader/odbc/Tests/monetodbc_datatypes.test
+++ b/sql/test/proto_loader/odbc/Tests/monetodbc_datatypes.test
@@ -248,19 +248,25 @@ 32
0
NULL
-query TTTT
-select cast('61' as interval second) as val1, cast('-61' as interval second)
as val2, cast('0' as interval second) as val0, cast(NULL as interval second) as
valnil
+query TT
+select * from 'odbc:DSN=MonetDB-Test;QUERY=select cast(''99'' as interval day)
as val1, cast(''-99'' as interval day) as val2'
----
-0:01:01
--1 day, 23:58:59
+99
+-99
+
+query TTTT
+select cast('61.2468' as interval second) as val1, cast('-61.987' as interval
second) as val2, cast('0' as interval second) as val0, cast(NULL as interval
second) as valnil
+----
+0:01:01.246000
+-1 day, 23:58:58.013000
0:00:00
NULL
query TTTT
-select * from 'odbc:DSN=MonetDB-Test;QUERY=select cast(''61'' as interval
second) as val1, cast(''-61'' as interval second) as val2, cast(''0'' as
interval second) as val0, cast(NULL as interval second) as valnil'
+select * from 'odbc:DSN=MonetDB-Test;QUERY=select cast(''61.2468'' as interval
second) as val1, cast(''-61.987'' as interval second) as val2, cast(''0'' as
interval second) as val0, cast(NULL as interval second) as valnil'
----
-0:01:01
--1 day, 23:58:59
+0:01:01.246000
+-1 day, 23:58:58.013000
0:00:00
NULL
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]