Commit 9d13fcf0 authored by Hiroshi Inoue's avatar Hiroshi Inoue

Fix the bug reported by Chris Lee.

parent f9e6e27c
...@@ -974,7 +974,7 @@ copy_statement_with_parameters(StatementClass *stmt) ...@@ -974,7 +974,7 @@ copy_statement_with_parameters(StatementClass *stmt)
ConnectionClass *conn = SC_get_conn(stmt); ConnectionClass *conn = SC_get_conn(stmt);
ConnInfo *ci = &(conn->connInfo); ConnInfo *ci = &(conn->connInfo);
BOOL prepare_dummy_cursor = FALSE, begin_first = FALSE; BOOL prepare_dummy_cursor = FALSE, begin_first = FALSE;
char token_save[32]; char token_save[64];
int token_len; int token_len;
BOOL prev_token_end; BOOL prev_token_end;
#ifdef DRIVER_CURSOR_IMPLEMENT #ifdef DRIVER_CURSOR_IMPLEMENT
...@@ -1247,7 +1247,7 @@ copy_statement_with_parameters(StatementClass *stmt) ...@@ -1247,7 +1247,7 @@ copy_statement_with_parameters(StatementClass *stmt)
token_save[0] = oldchar; token_save[0] = oldchar;
token_len = 1; token_len = 1;
} }
else else if (token_len + 1 < sizeof(token_save))
token_save[token_len++] = oldchar; token_save[token_len++] = oldchar;
} }
CVT_APPEND_CHAR(oldchar); CVT_APPEND_CHAR(oldchar);
......
...@@ -586,10 +586,10 @@ pgtype_precision(StatementClass *stmt, Int4 type, int col, int handle_unknown_si ...@@ -586,10 +586,10 @@ pgtype_precision(StatementClass *stmt, Int4 type, int col, int handle_unknown_si
return 8; return 8;
case PG_TYPE_ABSTIME: case PG_TYPE_ABSTIME:
case PG_TYPE_DATETIME:
case PG_TYPE_TIMESTAMP: case PG_TYPE_TIMESTAMP:
/*return 19;*/ return 22;
return 21; case PG_TYPE_DATETIME:
return 22;
case PG_TYPE_BOOL: case PG_TYPE_BOOL:
return 1; return 1;
...@@ -678,12 +678,12 @@ pgtype_length(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_ ...@@ -678,12 +678,12 @@ pgtype_length(StatementClass *stmt, Int4 type, int col, int handle_unknown_size_
case PG_TYPE_DATE: case PG_TYPE_DATE:
case PG_TYPE_TIME: case PG_TYPE_TIME:
return 6; return 6; /* sizeof(DATE(TIME)_STRUCT) */
case PG_TYPE_ABSTIME: case PG_TYPE_ABSTIME:
case PG_TYPE_DATETIME: case PG_TYPE_DATETIME:
case PG_TYPE_TIMESTAMP: case PG_TYPE_TIMESTAMP:
return 16; return 16; /* sizeof(TIMESTAMP_STRUCT) */
/* Character types (and NUMERIC) use the default precision */ /* Character types (and NUMERIC) use the default precision */
case PG_TYPE_VARCHAR: case PG_TYPE_VARCHAR:
...@@ -723,9 +723,10 @@ pgtype_scale(StatementClass *stmt, Int4 type, int col) ...@@ -723,9 +723,10 @@ pgtype_scale(StatementClass *stmt, Int4 type, int col)
* "yyyy-mm=dd hh:mm:ss[.f...]" * "yyyy-mm=dd hh:mm:ss[.f...]"
*/ */
case PG_TYPE_ABSTIME: case PG_TYPE_ABSTIME:
case PG_TYPE_DATETIME:
case PG_TYPE_TIMESTAMP: case PG_TYPE_TIMESTAMP:
return 0; return 0;
case PG_TYPE_DATETIME:
return 0;
case PG_TYPE_NUMERIC: case PG_TYPE_NUMERIC:
return getNumericScale(stmt, type, col); return getNumericScale(stmt, type, col);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment