From 47688ab6d97f0efc004a12ad10174162ef4d2277 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Wed, 9 Sep 2020 12:20:10 +0200 Subject: [PATCH] Add stub for pgsql extension --- ext/pgsql/pgsql.c | 620 +----------------------------------- ext/pgsql/pgsql.stub.php | 504 +++++++++++++++++++++++++++++ ext/pgsql/pgsql_arginfo.h | 650 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 1167 insertions(+), 607 deletions(-) create mode 100644 ext/pgsql/pgsql.stub.php create mode 100644 ext/pgsql/pgsql_arginfo.h diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index f8fcd74c9d..ec5a6dcee2 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -39,6 +39,7 @@ #include "php_pgsql.h" #include "php_globals.h" #include "zend_exceptions.h" +#include "pgsql_arginfo.h" #ifdef HAVE_PGSQL @@ -88,603 +89,11 @@ ZEND_DECLARE_MODULE_GLOBALS(pgsql) static PHP_GINIT_FUNCTION(pgsql); -/* {{{ arginfo */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_connect, 0, 0, 1) - ZEND_ARG_INFO(0, connection_string) - ZEND_ARG_INFO(0, connect_type) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, port) - ZEND_ARG_INFO(0, options) - ZEND_ARG_INFO(0, tty) - ZEND_ARG_INFO(0, database) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_pconnect, 0, 0, 1) - ZEND_ARG_INFO(0, connection_string) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, port) - ZEND_ARG_INFO(0, options) - ZEND_ARG_INFO(0, tty) - ZEND_ARG_INFO(0, database) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_connect_poll, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_parameter_status, 0, 0, 1) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, param_name) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_close, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_dbname, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_last_error, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_options, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_port, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_tty, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_host, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_version, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_ping, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_query, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, query) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_query_params, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, query) - ZEND_ARG_INFO(0, params) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_prepare, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, stmtname) - ZEND_ARG_INFO(0, query) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_execute, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, stmtname) - ZEND_ARG_INFO(0, params) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_num_rows, 0, 0, 1) - ZEND_ARG_INFO(0, result) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_num_fields, 0, 0, 1) - ZEND_ARG_INFO(0, result) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_affected_rows, 0, 0, 1) - ZEND_ARG_INFO(0, result) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_last_notice, 0, 0, 1) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, option) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_field_table, 0, 0, 2) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, field_number) - ZEND_ARG_INFO(0, oid_only) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_field_name, 0, 0, 2) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, field_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_field_size, 0, 0, 2) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, field_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_field_type, 0, 0, 2) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, field_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_field_type_oid, 0, 0, 2) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, field_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_field_num, 0, 0, 2) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, field_name) -ZEND_END_ARG_INFO() - -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) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_fetch_row, 0, 0, 1) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, row) - ZEND_ARG_INFO(0, result_type) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_fetch_assoc, 0, 0, 1) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, row) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_fetch_array, 0, 0, 1) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, row) - ZEND_ARG_INFO(0, result_type) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_fetch_object, 0, 0, 1) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, row) - ZEND_ARG_INFO(0, class_name) - ZEND_ARG_INFO(0, l) - ZEND_ARG_INFO(0, ctor_params) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_fetch_all, 0, 0, 1) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, result_type) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_fetch_all_columns, 0, 0, 1) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, column_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_result_seek, 0, 0, 2) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, offset) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_field_prtlen, 0, 0, 1) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, row) - ZEND_ARG_INFO(0, field_name_or_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_field_is_null, 0, 0, 1) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, row) - ZEND_ARG_INFO(0, field_name_or_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_free_result, 0, 0, 1) - ZEND_ARG_INFO(0, result) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_last_oid, 0, 0, 1) - ZEND_ARG_INFO(0, result) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_trace, 0, 0, 1) - ZEND_ARG_INFO(0, filename) - ZEND_ARG_INFO(0, mode) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_untrace, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_create, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, large_object_id) -ZEND_END_ARG_INFO() - -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, 1) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, large_object_oid) - ZEND_ARG_INFO(0, mode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_close, 0, 0, 1) - ZEND_ARG_INFO(0, large_object) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_read, 0, 0, 1) - ZEND_ARG_INFO(0, large_object) - ZEND_ARG_INFO(0, len) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_write, 0, 0, 2) - ZEND_ARG_INFO(0, large_object) - ZEND_ARG_INFO(0, buf) - ZEND_ARG_INFO(0, len) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_read_all, 0, 0, 1) - ZEND_ARG_INFO(0, large_object) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_import, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, filename) - ZEND_ARG_INFO(0, large_object_oid) -ZEND_END_ARG_INFO() - -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) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_seek, 0, 0, 2) - ZEND_ARG_INFO(0, large_object) - ZEND_ARG_INFO(0, offset) - ZEND_ARG_INFO(0, whence) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_tell, 0, 0, 1) - ZEND_ARG_INFO(0, large_object) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_lo_truncate, 0, 0, 1) - ZEND_ARG_INFO(0, large_object) - ZEND_ARG_INFO(0, size) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_set_error_verbosity, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, verbosity) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_set_client_encoding, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, encoding) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_client_encoding, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_end_copy, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_put_line, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, query) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_copy_to, 0, 0, 2) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, table_name) - ZEND_ARG_INFO(0, delimiter) - ZEND_ARG_INFO(0, null_as) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_copy_from, 0, 0, 3) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, table_name) - ZEND_ARG_INFO(0, rows) - ZEND_ARG_INFO(0, delimiter) - ZEND_ARG_INFO(0, null_as) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_escape_string, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, data) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_escape_bytea, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, data) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_unescape_bytea, 0, 0, 1) - ZEND_ARG_INFO(0, data) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_escape_literal, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, data) -ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_escape_identifier, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, data) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_result_error, 0, 0, 1) - ZEND_ARG_INFO(0, result) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_result_error_field, 0, 0, 2) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, fieldcode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_connection_status, 0, 0, 1) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_transaction_status, 0, 0, 1) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_connection_reset, 0, 0, 1) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_cancel_query, 0, 0, 1) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_connection_busy, 0, 0, 1) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_send_query, 0, 0, 2) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, query) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_send_query_params, 0, 0, 3) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, query) - ZEND_ARG_INFO(0, params) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_send_prepare, 0, 0, 3) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, stmtname) - ZEND_ARG_INFO(0, query) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_send_execute, 0, 0, 3) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, stmtname) - ZEND_ARG_INFO(0, params) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_get_result, 0, 0, 1) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_result_status, 0, 0, 1) - ZEND_ARG_INFO(0, result) - ZEND_ARG_INFO(0, result_type) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_get_notify, 0, 0, 0) - ZEND_ARG_INFO(0, connection) - ZEND_ARG_INFO(0, e) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_get_pid, 0, 0, 0) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_socket, 0, 0, 1) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_consume_input, 0, 0, 1) - ZEND_ARG_INFO(0, connection) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_flush, 0, 0, 1) - ZEND_ARG_INFO(0, connection) -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) - ZEND_ARG_INFO(0, db) - ZEND_ARG_INFO(0, table) - ZEND_ARG_INFO(0, values) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_insert, 0, 0, 3) - ZEND_ARG_INFO(0, db) - ZEND_ARG_INFO(0, table) - ZEND_ARG_INFO(0, values) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_update, 0, 0, 4) - ZEND_ARG_INFO(0, db) - ZEND_ARG_INFO(0, table) - ZEND_ARG_INFO(0, fields) - ZEND_ARG_INFO(0, ids) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_delete, 0, 0, 3) - ZEND_ARG_INFO(0, db) - ZEND_ARG_INFO(0, table) - ZEND_ARG_INFO(0, ids) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_pg_select, 0, 0, 3) - ZEND_ARG_INFO(0, db) - ZEND_ARG_INFO(0, table) - ZEND_ARG_INFO(0, ids) - ZEND_ARG_INFO(0, options) - ZEND_ARG_INFO(0, result_type) -ZEND_END_ARG_INFO() -/* }}} */ - -/* {{{ pgsql_functions[] */ -static const zend_function_entry pgsql_functions[] = { - /* connection functions */ - PHP_FE(pg_connect, arginfo_pg_connect) - PHP_FE(pg_pconnect, arginfo_pg_pconnect) - PHP_FE(pg_connect_poll, arginfo_pg_connect_poll) - PHP_FE(pg_close, arginfo_pg_close) - PHP_FE(pg_connection_status, arginfo_pg_connection_status) - PHP_FE(pg_connection_busy, arginfo_pg_connection_busy) - PHP_FE(pg_connection_reset, arginfo_pg_connection_reset) - PHP_FE(pg_host, arginfo_pg_host) - PHP_FE(pg_dbname, arginfo_pg_dbname) - PHP_FE(pg_port, arginfo_pg_port) - PHP_FE(pg_tty, arginfo_pg_tty) - PHP_FE(pg_options, arginfo_pg_options) - PHP_FE(pg_version, arginfo_pg_version) - PHP_FE(pg_ping, arginfo_pg_ping) - PHP_FE(pg_parameter_status, arginfo_pg_parameter_status) - PHP_FE(pg_transaction_status, arginfo_pg_transaction_status) - /* query functions */ - PHP_FE(pg_query, arginfo_pg_query) - PHP_FE(pg_query_params, arginfo_pg_query_params) - PHP_FE(pg_prepare, arginfo_pg_prepare) - PHP_FE(pg_execute, arginfo_pg_execute) - PHP_FE(pg_send_query, arginfo_pg_send_query) - PHP_FE(pg_send_query_params, arginfo_pg_send_query_params) - PHP_FE(pg_send_prepare, arginfo_pg_send_prepare) - PHP_FE(pg_send_execute, arginfo_pg_send_execute) - PHP_FE(pg_cancel_query, arginfo_pg_cancel_query) - /* result functions */ - PHP_FE(pg_fetch_result, arginfo_pg_fetch_result) - PHP_FE(pg_fetch_row, arginfo_pg_fetch_row) - PHP_FE(pg_fetch_assoc, arginfo_pg_fetch_assoc) - PHP_FE(pg_fetch_array, arginfo_pg_fetch_array) - PHP_FE(pg_fetch_object, arginfo_pg_fetch_object) - PHP_FE(pg_fetch_all, arginfo_pg_fetch_all) - PHP_FE(pg_fetch_all_columns, arginfo_pg_fetch_all_columns) - PHP_FE(pg_affected_rows,arginfo_pg_affected_rows) - PHP_FE(pg_get_result, arginfo_pg_get_result) - PHP_FE(pg_result_seek, arginfo_pg_result_seek) - PHP_FE(pg_result_status,arginfo_pg_result_status) - PHP_FE(pg_free_result, arginfo_pg_free_result) - PHP_FE(pg_last_oid, arginfo_pg_last_oid) - PHP_FE(pg_num_rows, arginfo_pg_num_rows) - PHP_FE(pg_num_fields, arginfo_pg_num_fields) - PHP_FE(pg_field_name, arginfo_pg_field_name) - PHP_FE(pg_field_num, arginfo_pg_field_num) - PHP_FE(pg_field_size, arginfo_pg_field_size) - PHP_FE(pg_field_type, arginfo_pg_field_type) - PHP_FE(pg_field_type_oid, arginfo_pg_field_type_oid) - PHP_FE(pg_field_prtlen, arginfo_pg_field_prtlen) - PHP_FE(pg_field_is_null,arginfo_pg_field_is_null) - PHP_FE(pg_field_table, arginfo_pg_field_table) - /* async message function */ - PHP_FE(pg_get_notify, arginfo_pg_get_notify) - PHP_FE(pg_socket, arginfo_pg_socket) - PHP_FE(pg_consume_input,arginfo_pg_consume_input) - PHP_FE(pg_flush, arginfo_pg_flush) - PHP_FE(pg_get_pid, arginfo_pg_get_pid) - /* error message functions */ - PHP_FE(pg_result_error, arginfo_pg_result_error) - PHP_FE(pg_result_error_field, arginfo_pg_result_error_field) - PHP_FE(pg_last_error, arginfo_pg_last_error) - PHP_FE(pg_last_notice, arginfo_pg_last_notice) - /* copy functions */ - PHP_FE(pg_put_line, arginfo_pg_put_line) - PHP_FE(pg_end_copy, arginfo_pg_end_copy) - PHP_FE(pg_copy_to, arginfo_pg_copy_to) - PHP_FE(pg_copy_from, arginfo_pg_copy_from) - /* debug functions */ - PHP_FE(pg_trace, arginfo_pg_trace) - PHP_FE(pg_untrace, arginfo_pg_untrace) - /* large object functions */ - PHP_FE(pg_lo_create, arginfo_pg_lo_create) - PHP_FE(pg_lo_unlink, arginfo_pg_lo_unlink) - PHP_FE(pg_lo_open, arginfo_pg_lo_open) - PHP_FE(pg_lo_close, arginfo_pg_lo_close) - PHP_FE(pg_lo_read, arginfo_pg_lo_read) - PHP_FE(pg_lo_write, arginfo_pg_lo_write) - PHP_FE(pg_lo_read_all, arginfo_pg_lo_read_all) - PHP_FE(pg_lo_import, arginfo_pg_lo_import) - PHP_FE(pg_lo_export, arginfo_pg_lo_export) - PHP_FE(pg_lo_seek, arginfo_pg_lo_seek) - PHP_FE(pg_lo_tell, arginfo_pg_lo_tell) - PHP_FE(pg_lo_truncate, arginfo_pg_lo_truncate) - /* utility functions */ - PHP_FE(pg_escape_string, arginfo_pg_escape_string) - PHP_FE(pg_escape_bytea, arginfo_pg_escape_bytea) - PHP_FE(pg_unescape_bytea, arginfo_pg_unescape_bytea) - PHP_FE(pg_escape_literal, arginfo_pg_escape_literal) - PHP_FE(pg_escape_identifier, arginfo_pg_escape_identifier) - PHP_FE(pg_set_error_verbosity, arginfo_pg_set_error_verbosity) - PHP_FE(pg_client_encoding, arginfo_pg_client_encoding) - PHP_FE(pg_set_client_encoding, arginfo_pg_set_client_encoding) - /* misc function */ - PHP_FE(pg_meta_data, arginfo_pg_meta_data) - PHP_FE(pg_convert, arginfo_pg_convert) - PHP_FE(pg_insert, arginfo_pg_insert) - PHP_FE(pg_update, arginfo_pg_update) - PHP_FE(pg_delete, arginfo_pg_delete) - PHP_FE(pg_select, arginfo_pg_select) - /* aliases for downwards compatibility */ - PHP_FALIAS(pg_exec, pg_query, arginfo_pg_query) - PHP_FALIAS(pg_getlastoid, pg_last_oid, arginfo_pg_last_oid) - PHP_FALIAS(pg_cmdtuples, pg_affected_rows, arginfo_pg_affected_rows) - PHP_FALIAS(pg_errormessage, pg_last_error, arginfo_pg_last_error) - PHP_FALIAS(pg_numrows, pg_num_rows, arginfo_pg_num_rows) - PHP_FALIAS(pg_numfields, pg_num_fields, arginfo_pg_num_fields) - PHP_FALIAS(pg_fieldname, pg_field_name, arginfo_pg_field_name) - PHP_FALIAS(pg_fieldsize, pg_field_size, arginfo_pg_field_size) - PHP_FALIAS(pg_fieldtype, pg_field_type, arginfo_pg_field_type) - PHP_FALIAS(pg_fieldnum, pg_field_num, arginfo_pg_field_num) - 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_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) - PHP_FALIAS(pg_loopen, pg_lo_open, arginfo_pg_lo_open) - PHP_FALIAS(pg_loclose, pg_lo_close, arginfo_pg_lo_close) - PHP_FALIAS(pg_loread, pg_lo_read, arginfo_pg_lo_read) - PHP_FALIAS(pg_lowrite, pg_lo_write, arginfo_pg_lo_write) - PHP_FALIAS(pg_loimport, pg_lo_import, arginfo_pg_lo_import) - PHP_FALIAS(pg_loexport, pg_lo_export, arginfo_pg_lo_export) - PHP_FALIAS(pg_clientencoding, pg_client_encoding, arginfo_pg_client_encoding) - PHP_FALIAS(pg_setclientencoding, pg_set_client_encoding, arginfo_pg_set_client_encoding) - PHP_FE_END -}; -/* }}} */ - /* {{{ pgsql_module_entry */ zend_module_entry pgsql_module_entry = { STANDARD_MODULE_HEADER, "pgsql", - pgsql_functions, + ext_functions, PHP_MINIT(pgsql), PHP_MSHUTDOWN(pgsql), PHP_RINIT(pgsql), @@ -1428,8 +837,7 @@ static void php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type PHP_PQ_COPY_PARAM("application_name"); } return; - default: - RETURN_FALSE; + EMPTY_SWITCH_DEFAULT_CASE() } if (result) { RETURN_STRING(result); @@ -1498,12 +906,12 @@ PHP_FUNCTION(pg_parameter_status) size_t len; if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "rs", &pgsql_link, ¶m, &len) == FAILURE) { - if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", ¶m, &len) == SUCCESS) { - link = FETCH_DEFAULT_LINK(); - CHECK_DEFAULT_LINK(link); - } else { - RETURN_FALSE; + if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", ¶m, &len) == FAILURE) { + RETURN_THROWS(); } + + link = FETCH_DEFAULT_LINK(); + CHECK_DEFAULT_LINK(link); } else { link = Z_RES_P(pgsql_link); } @@ -1994,8 +1402,7 @@ static void php_pgsql_get_result_info(INTERNAL_FUNCTION_PARAMETERS, int entry_ty case PHP_PG_CMD_TUPLES: RETVAL_LONG(atoi(PQcmdTuples(pgsql_result))); break; - default: - RETURN_FALSE; + EMPTY_SWITCH_DEFAULT_CASE() } } /* }}} */ @@ -2280,8 +1687,7 @@ static void php_pgsql_get_field_info(INTERNAL_FUNCTION_PARAMETERS, int entry_typ RETURN_LONG((zend_long)oid); } break; - default: - RETURN_FALSE; + EMPTY_SWITCH_DEFAULT_CASE() } } /* }}} */ @@ -2753,6 +2159,7 @@ static void php_pgsql_data_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type) case PHP_PG_DATA_ISNULL: RETVAL_LONG(PQgetisnull(pgsql_result, pgsql_row, field_offset)); break; + EMPTY_SWITCH_DEFAULT_CASE() } } /* }}} */ @@ -4226,9 +3633,7 @@ static void php_pgsql_do_async(INTERNAL_FUNCTION_PARAMETERS, int entry_type) PQclear(pgsql_result); } break; - default: - php_error_docref(NULL, E_ERROR, "PostgreSQL module error, please report this error"); - break; + EMPTY_SWITCH_DEFAULT_CASE() } if (PQsetnonblocking(pgsql, 0)) { php_error_docref(NULL, E_NOTICE, "Cannot set connection to blocking mode"); @@ -6492,6 +5897,7 @@ PHP_FUNCTION(pg_select) zend_string *sql = NULL; int argc = ZEND_NUM_ARGS(); + // TODO: result_type is unused by zpp! if (zend_parse_parameters(argc, "rsa|l", &pgsql_link, &table, &table_len, &ids, &option, &result_type) == FAILURE) { RETURN_THROWS(); diff --git a/ext/pgsql/pgsql.stub.php b/ext/pgsql/pgsql.stub.php new file mode 100644 index 0000000000..624587d8da --- /dev/null +++ b/ext/pgsql/pgsql.stub.php @@ -0,0 +1,504 @@ +