From: Nikita Popov Date: Fri, 17 Jul 2020 13:41:50 +0000 (+0200) Subject: Fix some pgsql arginfos X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6ff31eebb12883697d232d309b4be2deec935d77;p=php Fix some pgsql arginfos And make sure too few/many arguments throws, to satisfy the function signature. --- diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index 78aa5dfe2e..c9b1652ea4 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -220,7 +220,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_field_num, 0, 0, 2) ZEND_ARG_INFO(0, field_name) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_fetch_result, 0, 0, 1) +ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_fetch_result, 0, 0, 2) ZEND_ARG_INFO(0, result) ZEND_ARG_INFO(0, row_number) ZEND_ARG_INFO(0, field_name) @@ -301,12 +301,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_create, 0, 0, 0) ZEND_ARG_INFO(0, large_object_id) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_unlink, 0, 0, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_unlink, 0, 0, 1) ZEND_ARG_INFO(0, connection) ZEND_ARG_INFO(0, large_object_oid) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_open, 0, 0, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_open, 0, 0, 1) ZEND_ARG_INFO(0, connection) ZEND_ARG_INFO(0, large_object_oid) ZEND_ARG_INFO(0, mode) @@ -337,7 +337,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_import, 0, 0, 0) ZEND_ARG_INFO(0, large_object_oid) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_export, 0, 0, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_export, 0, 0, 2) ZEND_ARG_INFO(0, connection) ZEND_ARG_INFO(0, objoid) ZEND_ARG_INFO(0, filename) @@ -504,6 +504,7 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_meta_data, 0, 0, 2) ZEND_ARG_INFO(0, db) ZEND_ARG_INFO(0, table) + ZEND_ARG_INFO(0, extended) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_convert, 0, 0, 3) @@ -659,7 +660,7 @@ static const zend_function_entry pgsql_functions[] = { PHP_FALIAS(pg_fieldprtlen, pg_field_prtlen, arginfo_pg_field_prtlen) PHP_FALIAS(pg_fieldisnull, pg_field_is_null, arginfo_pg_field_is_null) PHP_FALIAS(pg_freeresult, pg_free_result, arginfo_pg_free_result) - PHP_FALIAS(pg_result, pg_fetch_result, arginfo_pg_get_result) + PHP_FALIAS(pg_result, pg_fetch_result, arginfo_pg_fetch_result) PHP_FALIAS(pg_loreadall, pg_lo_read_all, arginfo_pg_lo_read_all) PHP_FALIAS(pg_locreate, pg_lo_create, arginfo_pg_lo_create) PHP_FALIAS(pg_lounlink, pg_lo_unlink, arginfo_pg_lo_unlink) @@ -3079,8 +3080,8 @@ PHP_FUNCTION(pg_lo_unlink) CHECK_DEFAULT_LINK(link); } else { - php_error_docref(NULL, E_WARNING, "Requires 1 or 2 arguments"); - RETURN_FALSE; + zend_argument_count_error("Requires 1 or 2 arguments, %d given", ZEND_NUM_ARGS()); + RETURN_THROWS(); } if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) { @@ -3152,8 +3153,8 @@ PHP_FUNCTION(pg_lo_open) CHECK_DEFAULT_LINK(link); } else { - php_error_docref(NULL, E_WARNING, "Requires 1 or 2 arguments"); - RETURN_FALSE; + zend_argument_count_error("Requires 1 or 2 arguments, %d given", ZEND_NUM_ARGS()); + RETURN_THROWS(); } if ((pgsql = (PGconn *)zend_fetch_resource2(link, "PostgreSQL link", le_link, le_plink)) == NULL) { @@ -3503,8 +3504,8 @@ PHP_FUNCTION(pg_lo_export) link = Z_RES_P(pgsql_link); } else { - php_error_docref(NULL, E_WARNING, "Requires 2 or 3 arguments"); - RETURN_FALSE; + zend_argument_count_error("Requires 2 or 3 arguments, %d given", ZEND_NUM_ARGS()); + RETURN_THROWS(); } if (php_check_open_basedir(file_out)) {