From 9d13fcf0af024b0ce9bc344a758c6b4072e50e95 Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Fri, 12 Oct 2001 01:08:51 +0000 Subject: [PATCH] Fix the bug reported by Chris Lee. --- src/interfaces/odbc/convert.c | 4 ++-- src/interfaces/odbc/pgtypes.c | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/interfaces/odbc/convert.c b/src/interfaces/odbc/convert.c index e5954ae75d..5e20631067 100644 --- a/src/interfaces/odbc/convert.c +++ b/src/interfaces/odbc/convert.c @@ -974,7 +974,7 @@ copy_statement_with_parameters(StatementClass *stmt) ConnectionClass *conn = SC_get_conn(stmt); ConnInfo *ci = &(conn->connInfo); BOOL prepare_dummy_cursor = FALSE, begin_first = FALSE; - char token_save[32]; + char token_save[64]; int token_len; BOOL prev_token_end; #ifdef DRIVER_CURSOR_IMPLEMENT @@ -1247,7 +1247,7 @@ copy_statement_with_parameters(StatementClass *stmt) token_save[0] = oldchar; token_len = 1; } - else + else if (token_len + 1 < sizeof(token_save)) token_save[token_len++] = oldchar; } CVT_APPEND_CHAR(oldchar); diff --git a/src/interfaces/odbc/pgtypes.c b/src/interfaces/odbc/pgtypes.c index 0af96536e8..d6995f8c46 100644 --- a/src/interfaces/odbc/pgtypes.c +++ b/src/interfaces/odbc/pgtypes.c @@ -586,10 +586,10 @@ pgtype_precision(StatementClass *stmt, Int4 type, int col, int handle_unknown_si return 8; case PG_TYPE_ABSTIME: - case PG_TYPE_DATETIME: case PG_TYPE_TIMESTAMP: - /*return 19;*/ -return 21; + return 22; + case PG_TYPE_DATETIME: + return 22; case PG_TYPE_BOOL: return 1; @@ -678,12 +678,12 @@ pgtype_length(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_ case PG_TYPE_DATE: case PG_TYPE_TIME: - return 6; + return 6; /* sizeof(DATE(TIME)_STRUCT) */ case PG_TYPE_ABSTIME: case PG_TYPE_DATETIME: case PG_TYPE_TIMESTAMP: - return 16; + return 16; /* sizeof(TIMESTAMP_STRUCT) */ /* Character types (and NUMERIC) use the default precision */ case PG_TYPE_VARCHAR: @@ -723,9 +723,10 @@ pgtype_scale(StatementClass *stmt, Int4 type, int col) * "yyyy-mm=dd hh:mm:ss[.f...]" */ case PG_TYPE_ABSTIME: - case PG_TYPE_DATETIME: case PG_TYPE_TIMESTAMP: return 0; + case PG_TYPE_DATETIME: + return 0; case PG_TYPE_NUMERIC: return getNumericScale(stmt, type, col); -- 2.40.0