projects
/
m6w6
/
ext-pq
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
|
github
raw
|
patch
|
inline
| side by side (from parent 1:
d4ed030
)
allow INT8 / TID on 32 bits
author
Remi Collet
<remi@php.net>
Sat, 18 Oct 2014 13:15:08 +0000
(15:15 +0200)
committer
Remi Collet
<remi@php.net>
Sat, 18 Oct 2014 13:15:42 +0000
(15:15 +0200)
src/php_pqres.c
patch
|
blob
|
history
diff --git
a/src/php_pqres.c
b/src/php_pqres.c
index 9dda1073fc149af7d014efd28e25f88ff31ce38d..75a608128368cbd459a946f69b23fde4031e4d15 100644
(file)
--- a/
src/php_pqres.c
+++ b/
src/php_pqres.c
@@
-126,10
+126,9
@@
zval *php_pqres_typed_zval(php_pqres_t *res, char *val, size_t len, Oid typ TSRM
}
ZVAL_BOOL(zv, *val == 't');
break;
}
ZVAL_BOOL(zv, *val == 't');
break;
-#if SIZEOF_LONG >= 8
+
case PHP_PQ_OID_INT8:
case PHP_PQ_OID_TID:
case PHP_PQ_OID_INT8:
case PHP_PQ_OID_TID:
-#endif
case PHP_PQ_OID_INT4:
case PHP_PQ_OID_INT2:
case PHP_PQ_OID_XID:
case PHP_PQ_OID_INT4:
case PHP_PQ_OID_INT2:
case PHP_PQ_OID_XID:
@@
-137,7
+136,21
@@
zval *php_pqres_typed_zval(php_pqres_t *res, char *val, size_t len, Oid typ TSRM
if (!(res->auto_convert & PHP_PQRES_CONV_INT)) {
goto noconversion;
}
if (!(res->auto_convert & PHP_PQRES_CONV_INT)) {
goto noconversion;
}
- ZVAL_LONG(zv, zend_atol(val, len));
+ {
+ long lval;
+ double dval;
+
+ switch (is_numeric_string(val, len, &lval, &dval, 0)) {
+ case IS_LONG:
+ ZVAL_LONG(zv, lval);
+ break;
+ case IS_DOUBLE:
+ ZVAL_DOUBLE(zv, dval);
+ break;
+ default:
+ goto noconversion;
+ }
+ }
break;
case PHP_PQ_OID_FLOAT4:
break;
case PHP_PQ_OID_FLOAT4: