diff --git a/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp b/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp index f35006ffef..b457a5c9a3 100644 --- a/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp +++ b/sql-odbc/src/IntegrationTests/ITODBCCatalog/test_odbc_catalog.cpp @@ -502,6 +502,8 @@ const std::vector< sample_data_getTypeInfo_struct > sample_data_all_types_info{ {"float", SQL_REAL, 7, "", "", "", 2, 0, 3, 0, 0, 0, "", 0, 0, SQL_REAL, 0, 10, 0}, {"date", SQL_TYPE_TIMESTAMP, 24, "", "", "", 2, 0, 3, 1, 0, 0, "", 0, 0, + SQL_TYPE_TIMESTAMP, 0, 10, 0}, + {"timestamp", SQL_TYPE_TIMESTAMP, 24, "", "", "", 2, 0, 3, 1, 0, 0, "", 0, 0, SQL_TYPE_TIMESTAMP, 0, 10, 0}}; const std::vector< sample_data_getTypeInfo_struct > diff --git a/sql-odbc/src/sqlodbc/opensearch_info.cpp b/sql-odbc/src/sqlodbc/opensearch_info.cpp index b2076e6def..4511e97639 100644 --- a/sql-odbc/src/sqlodbc/opensearch_info.cpp +++ b/sql-odbc/src/sqlodbc/opensearch_info.cpp @@ -72,7 +72,7 @@ const std::unordered_map< int, std::vector< int > > sql_opensearch_type_map = { {SQL_WVARCHAR, {OPENSEARCH_TYPE_KEYWORD, OPENSEARCH_TYPE_TEXT, OPENSEARCH_TYPE_NESTED, OPENSEARCH_TYPE_OBJECT}}, - {SQL_TYPE_TIMESTAMP, {OPENSEARCH_TYPE_DATETIME}}}; + {SQL_TYPE_TIMESTAMP, {OPENSEARCH_TYPE_DATETIME, OPENSEARCH_TYPE_TIMESTAMP}}}; const std::unordered_map< std::string, int > data_name_data_type_map = { {OPENSEARCH_TYPE_NAME_BOOLEAN, SQL_BIT}, @@ -87,6 +87,7 @@ const std::unordered_map< std::string, int > data_name_data_type_map = { {OPENSEARCH_TYPE_NAME_KEYWORD, SQL_WVARCHAR}, {OPENSEARCH_TYPE_NAME_TEXT, SQL_WVARCHAR}, {OPENSEARCH_TYPE_NAME_DATE, SQL_TYPE_TIMESTAMP}, + {OPENSEARCH_TYPE_NAME_TIMESTAMP, SQL_TYPE_TIMESTAMP}, {OPENSEARCH_TYPE_NAME_OBJECT, SQL_WVARCHAR}, {OPENSEARCH_TYPE_NAME_NESTED, SQL_WVARCHAR}}; diff --git a/sql-odbc/src/sqlodbc/opensearch_types.c b/sql-odbc/src/sqlodbc/opensearch_types.c index bde5e15d93..56b1985a36 100644 --- a/sql-odbc/src/sqlodbc/opensearch_types.c +++ b/sql-odbc/src/sqlodbc/opensearch_types.c @@ -494,6 +494,8 @@ const char *opensearchtype_attr_to_name(const ConnectionClass *conn, OID type, return OPENSEARCH_TYPE_NAME_NESTED; case OPENSEARCH_TYPE_DATETIME: return OPENSEARCH_TYPE_NAME_DATE; + case OPENSEARCH_TYPE_TIMESTAMP: + return OPENSEARCH_TYPE_NAME_TIMESTAMP; case OPENSEARCH_TYPE_OBJECT: return OPENSEARCH_TYPE_NAME_OBJECT; case OPENSEARCH_TYPE_VARCHAR: @@ -534,6 +536,8 @@ opensearchtype_attr_column_size(const ConnectionClass *conn, OID type, int attty return 0; case OPENSEARCH_TYPE_DATETIME: return 24; + case OPENSEARCH_TYPE_TIMESTAMP: + return 24; case OPENSEARCH_TYPE_OBJECT: return 0; default: @@ -990,7 +994,7 @@ OID sqltype_to_opensearchtype(const ConnectionClass *conn, SQLSMALLINT fSqlType) case SQL_TIMESTAMP: case SQL_TYPE_TIMESTAMP: - openSearchType = OPENSEARCH_TYPE_DATETIME; + openSearchType = OPENSEARCH_TYPE_TIMESTAMP; break; case SQL_VARBINARY: @@ -1311,6 +1315,7 @@ Int2 opensearchtype_unsigned(const ConnectionClass *conn, OID type) { case OPENSEARCH_TYPE_TEXT: case OPENSEARCH_TYPE_NESTED: case OPENSEARCH_TYPE_DATETIME: + case OPENSEARCH_TYPE_TIMESTAMP: case OPENSEARCH_TYPE_OBJECT: return SQL_TRUE; diff --git a/sql-odbc/src/sqlodbc/opensearch_types.h b/sql-odbc/src/sqlodbc/opensearch_types.h index 5bec08b4ea..fc1e4f722e 100644 --- a/sql-odbc/src/sqlodbc/opensearch_types.h +++ b/sql-odbc/src/sqlodbc/opensearch_types.h @@ -33,6 +33,7 @@ extern "C" { #define OPENSEARCH_TYPE_NAME_TEXT "text" #define OPENSEARCH_TYPE_NAME_NESTED "nested" #define OPENSEARCH_TYPE_NAME_DATE "date" +#define OPENSEARCH_TYPE_NAME_TIMESTAMP "timestamp" #define OPENSEARCH_TYPE_NAME_OBJECT "object" #define OPENSEARCH_TYPE_NAME_VARCHAR "varchar" #define OPENSEARCH_TYPE_NAME_UNSUPPORTED "unsupported"