Browse Source

Remove warnings.

Fixed OID overflow bug.
Fixed type convertion bug.
# Thank you Edin.
experimental/new_ui_api
Yasuo Ohgaki 25 years ago
parent
commit
c53c212da6
  1. 35
      ext/pgsql/pgsql.c

35
ext/pgsql/pgsql.c

@ -1041,7 +1041,7 @@ static char *get_field_name(PGconn *pgsql, Oid oid, HashTable *list TSRMLS_DC)
char *ret=NULL;
/* try to lookup the type in the resource list */
snprintf(hashed_oid_key,31,"pgsql_oid_%d",(int) oid);
snprintf(hashed_oid_key,31,"pgsql_oid_%l", oid);
hashed_oid_key[31]=0;
if (zend_hash_find(list,hashed_oid_key,strlen(hashed_oid_key)+1,(void **) &field_type)==SUCCESS) {
@ -1049,7 +1049,7 @@ static char *get_field_name(PGconn *pgsql, Oid oid, HashTable *list TSRMLS_DC)
} else { /* hash all oid's */
int i,num_rows;
int oid_offset,name_offset;
char *tmp_oid, *tmp_name;
char *tmp_oid, *end_ptr, *tmp_name;
list_entry new_oid_entry;
if ((result = PQexec(pgsql,"select oid,typname from pg_type")) == NULL) {
@ -1070,7 +1070,7 @@ static char *get_field_name(PGconn *pgsql, Oid oid, HashTable *list TSRMLS_DC)
Z_TYPE(new_oid_entry) = le_string;
new_oid_entry.ptr = estrdup(tmp_name);
zend_hash_update(list,hashed_oid_key,strlen(hashed_oid_key)+1,(void *) &new_oid_entry, sizeof(list_entry), NULL);
if (!ret && atoi(tmp_oid)==oid) {
if (!ret && strtoul(tmp_oid, &end_ptr, 10)==oid) {
ret = estrdup(tmp_name);
}
}
@ -3193,7 +3193,7 @@ PHPAPI int php_pgsql_convert(PGconn *pg_link, const char *table_name, const zval
break;
case IS_LONG:
ZVAL_LONG(new_val, Z_DVAL_PP(val));
ZVAL_LONG(new_val, Z_LVAL_PP(val));
break;
case IS_DOUBLE:
@ -3758,8 +3758,8 @@ PHP_FUNCTION(pg_convert)
}
/* }}} */
#define MAX_LENGTH_OF_LONG 30
#define MAX_LENGTH_OF_DOUBLE 60
#define PGSQL_MAX_LENGTH_OF_LONG 30
#define PGSQL_MAX_LENGTH_OF_DOUBLE 60
/* {{{ php_pgsql_insert
*/
@ -3809,10 +3809,10 @@ PHPAPI int php_pgsql_insert(PGconn *pg_link, const char *table, zval *var_array,
values_len += Z_STRLEN_PP(val)+1;
break;
case IS_LONG:
values_len += MAX_LENGTH_OF_LONG+1;
values_len += PGSQL_MAX_LENGTH_OF_LONG+1;
break;
case IS_DOUBLE:
values_len += MAX_LENGTH_OF_DOUBLE+1;
values_len += PGSQL_MAX_LENGTH_OF_DOUBLE+1;
break;
default:
if (convert) {
@ -4041,10 +4041,10 @@ PHPAPI int php_pgsql_update(PGconn *pg_link, const char *table, zval *var_array,
values_len += Z_STRLEN_PP(val)+1;
break;
case IS_LONG:
values_len += MAX_LENGTH_OF_LONG+1;
values_len += PGSQL_MAX_LENGTH_OF_LONG+1;
break;
case IS_DOUBLE:
values_len += MAX_LENGTH_OF_DOUBLE+1;
values_len += PGSQL_MAX_LENGTH_OF_DOUBLE+1;
break;
default:
php_error(E_NOTICE, "%s() expect scaler values other than null. Need to convert?",
@ -4086,10 +4086,10 @@ PHPAPI int php_pgsql_update(PGconn *pg_link, const char *table, zval *var_array,
idsv_len += Z_STRLEN_PP(val)+1;
break;
case IS_LONG:
idsv_len += MAX_LENGTH_OF_LONG+1;
idsv_len += PGSQL_MAX_LENGTH_OF_LONG+1;
break;
case IS_DOUBLE:
idsv_len += MAX_LENGTH_OF_DOUBLE+1;
idsv_len += PGSQL_MAX_LENGTH_OF_DOUBLE+1;
break;
default:
php_error(E_NOTICE, "%s() expects scaler values other than null. Need to convert?",
@ -4357,10 +4357,10 @@ PHPAPI int php_pgsql_delete(PGconn *pg_link, const char *table, zval *ids_array,
idsv_len += Z_STRLEN_PP(val)+1;
break;
case IS_LONG:
idsv_len += MAX_LENGTH_OF_LONG+1;
idsv_len += PGSQL_MAX_LENGTH_OF_LONG+1;
break;
case IS_DOUBLE:
idsv_len += MAX_LENGTH_OF_DOUBLE+1;
idsv_len += PGSQL_MAX_LENGTH_OF_DOUBLE+1;
break;
default:
php_error(E_NOTICE, "%s() expects scaler values other than null. Need to convert?",
@ -4512,7 +4512,8 @@ PHPAPI int php_pgsql_result2array(PGresult *pg_result, zval *ret_array TSRMLS_DC
zval *row;
char *field_name, *element, *data;
size_t num_fields, element_len, data_len;
int pg_numrows, pg_row, i;
int pg_numrows, pg_row;
uint i;
assert(Z_TYPE_P(ret_array) == IS_ARRAY);
if ((pg_numrows = PQntuples(pg_result)) <= 0) {
@ -4595,10 +4596,10 @@ PHPAPI int php_pgsql_select(PGconn *pg_link, const char *table, zval *ids_array,
idsv_len += Z_STRLEN_PP(val)+1;
break;
case IS_LONG:
idsv_len += MAX_LENGTH_OF_LONG+1;
idsv_len += PGSQL_MAX_LENGTH_OF_LONG+1;
break;
case IS_DOUBLE:
idsv_len += MAX_LENGTH_OF_DOUBLE+1;
idsv_len += PGSQL_MAX_LENGTH_OF_DOUBLE+1;
break;
default:
php_error(E_NOTICE, "%s() expects scaler values other than null. Need to convert?",

Loading…
Cancel
Save