From d8aa131ca088ef9b68e62547f44c3d20355366bd Mon Sep 17 00:00:00 2001 From: Edin Kadribasic Date: Sun, 23 Jan 2005 10:57:11 +0000 Subject: Store pgsql_type, intval and boolav per column --- ext/pdo_pgsql/pgsql_statement.c | 15 +++++++-------- ext/pdo_pgsql/php_pdo_pgsql_int.h | 5 ++++- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'ext/pdo_pgsql') diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c index 86e65e54c2..5f7a40c98e 100644 --- a/ext/pdo_pgsql/pgsql_statement.c +++ b/ext/pdo_pgsql/pgsql_statement.c @@ -173,8 +173,9 @@ static int pgsql_stmt_describe(pdo_stmt_t *stmt, int colno TSRMLS_DC) cols[colno].namelen = strlen(cols[colno].name); cols[colno].maxlen = PQfsize(S->result, colno); cols[colno].precision = PQfmod(S->result, colno); - - switch(PQftype(S->result, colno)) { + S->cols[colno].pgsql_type = PQftype(S->result, colno); + + switch(S->cols[colno].pgsql_type) { case BOOLOID: cols[colno].param_type = PDO_PARAM_BOOL; @@ -202,8 +203,6 @@ static int pgsql_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, unsigned { pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data; struct pdo_column_data *cols = stmt->columns; - long intval; - zend_bool boolval; if (!S->result) { return 0; @@ -220,14 +219,14 @@ static int pgsql_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, unsigned switch(cols[colno].param_type) { case PDO_PARAM_INT: - intval = atol(*ptr); - *ptr = &intval; + S->cols[colno].intval = atol(*ptr); + *ptr = (char *) &(S->cols[colno].intval); *len = sizeof(long); break; case PDO_PARAM_BOOL: - boolval = **ptr == 't' ? 1: 0; - *ptr = &boolval; + S->cols[colno].boolval = **ptr == 't' ? 1: 0; + *ptr = (char *) &(S->cols[colno].boolval); *len = sizeof(zend_bool); break; } diff --git a/ext/pdo_pgsql/php_pdo_pgsql_int.h b/ext/pdo_pgsql/php_pdo_pgsql_int.h index 00a6e0d3b7..ee3e290f83 100644 --- a/ext/pdo_pgsql/php_pdo_pgsql_int.h +++ b/ext/pdo_pgsql/php_pdo_pgsql_int.h @@ -42,7 +42,10 @@ typedef struct { } pdo_pgsql_db_handle; typedef struct { - char *def; + char *def; + Oid pgsql_type; + long intval; + zend_bool boolval; } pdo_pgsql_column; typedef struct { -- cgit v1.2.1