Changeset: a0e91dd2c291 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/a0e91dd2c291
Modified Files:
sql/backends/monet5/vaults/odbc/odbc_loader.c
Branch: Mar2025
Log Message:
Optimize code for SQL_FLOAT col type.
diffs (39 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
@@ -586,6 +586,9 @@ odbc_query(mvc *sql, sql_subfunc *f, cha
GDKfree(colmetadata);
goto finish;
}
+ if (dataType == SQL_FLOAT) {
+ dataType = (columnSize == 7) ? SQL_REAL :
SQL_DOUBLE;
+ }
colmetadata[col].dataType = dataType;
colmetadata[col].columnSize = columnSize;
colmetadata[col].decimalDigits = decimalDigits;
@@ -680,7 +683,6 @@ odbc_query(mvc *sql, sql_subfunc *f, cha
for (SQLUSMALLINT col = 0; col < (SQLUSMALLINT)
nr_cols; col++) {
SQLSMALLINT sqltype = colmetadata[col].dataType;
- int mtype = colmetadata[col].mtype;
BAT * b = colmetadata[col].bat;
SQLSMALLINT targetType;
SQLPOINTER * targetValuePtr;
@@ -731,7 +733,7 @@ odbc_query(mvc *sql, sql_subfunc *f, cha
targetValuePtr = (SQLPOINTER *)
&flt_val;
break;
case SQL_FLOAT:
- if (mtype == TYPE_flt) {
+ if (colmetadata[col].mtype ==
TYPE_flt) {
targetType =
SQL_C_FLOAT;
targetValuePtr =
(SQLPOINTER *) &flt_val;
} else {
@@ -874,7 +876,7 @@ odbc_query(mvc *sql, sql_subfunc *f, cha
gdkret =
BUNappend(b, (void *) &dbl_val, false);
break;
case SQL_FLOAT:
- if (mtype ==
TYPE_flt) {
+ if
(colmetadata[col].mtype == TYPE_flt) {
if
(trace_enabled)
printf("Data row %lu col %u: %f\n", row, col+1, flt_val);
gdkret
= BUNappend(b, (void *) &flt_val, false);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]