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]

Reply via email to