1
0
mirror of https://github.com/danog/ext-pq.git synced 2025-01-22 22:01:33 +01:00

make arg to fetchAllCols optional

This commit is contained in:
Michael Wallner 2014-09-15 13:22:20 +02:00
parent dd52670ccf
commit 66a1a0a14a

View File

@ -593,20 +593,28 @@ static STATUS column_nn(php_pqres_object_t *obj, zval *zcol, php_pqres_col_t *co
long index = -1; long index = -1;
char *name = NULL; char *name = NULL;
switch (Z_TYPE_P(zcol)) { if (!zcol) {
case IS_LONG: index = 0;
index = Z_LVAL_P(zcol); } else {
break; switch (Z_TYPE_P(zcol)) {
case IS_NULL:
index = 0;
break;
default: case IS_LONG:
convert_to_string(zcol); index = Z_LVAL_P(zcol);
/* no break */ break;
case IS_STRING: default:
if (!is_numeric_string(Z_STRVAL_P(zcol), Z_STRLEN_P(zcol), &index, NULL, 0)) { convert_to_string(zcol);
name = Z_STRVAL_P(zcol); /* no break */
case IS_STRING:
if (!is_numeric_string(Z_STRVAL_P(zcol), Z_STRLEN_P(zcol), &index, NULL, 0)) {
name = Z_STRVAL_P(zcol);
}
break;
} }
break;
} }
if (name) { if (name) {
@ -814,16 +822,16 @@ static PHP_METHOD(pqres, fetchCol) {
} }
} }
ZEND_BEGIN_ARG_INFO_EX(ai_pqres_fetch_all_cols, 0, 0, 1) ZEND_BEGIN_ARG_INFO_EX(ai_pqres_fetch_all_cols, 0, 0, 0)
ZEND_ARG_INFO(0, col) ZEND_ARG_INFO(0, col)
ZEND_END_ARG_INFO(); ZEND_END_ARG_INFO();
static PHP_METHOD(pqres, fetchAllCols) { static PHP_METHOD(pqres, fetchAllCols) {
zend_error_handling zeh; zend_error_handling zeh;
zval *zcol; zval *zcol = NULL;
STATUS rv; STATUS rv;
zend_replace_error_handling(EH_THROW, exce(EX_INVALID_ARGUMENT), &zeh TSRMLS_CC); zend_replace_error_handling(EH_THROW, exce(EX_INVALID_ARGUMENT), &zeh TSRMLS_CC);
rv = zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &zcol); rv = zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|z!", &zcol);
zend_restore_error_handling(&zeh TSRMLS_CC); zend_restore_error_handling(&zeh TSRMLS_CC);
if (SUCCESS == rv) { if (SUCCESS == rv) {