Declare ext/pgsql constants in stubs (#9092)

This commit is contained in:
Máté Kocsis 2022-07-27 07:32:40 +02:00 committed by GitHub
parent 1362fefc85
commit eae893bd3e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 512 additions and 112 deletions

View file

@ -39,7 +39,6 @@
#include "php_pgsql.h" #include "php_pgsql.h"
#include "php_globals.h" #include "php_globals.h"
#include "zend_exceptions.h" #include "zend_exceptions.h"
#include "pgsql_arginfo.h"
#ifdef HAVE_PGSQL #ifdef HAVE_PGSQL
@ -61,6 +60,10 @@
#define PGSQL_MAX_LENGTH_OF_LONG 30 #define PGSQL_MAX_LENGTH_OF_LONG 30
#define PGSQL_MAX_LENGTH_OF_DOUBLE 60 #define PGSQL_MAX_LENGTH_OF_DOUBLE 60
char pgsql_libpq_version[16];
#include "pgsql_arginfo.h"
#if ZEND_LONG_MAX < UINT_MAX #if ZEND_LONG_MAX < UINT_MAX
#define PGSQL_RETURN_OID(oid) do { \ #define PGSQL_RETURN_OID(oid) do { \
if (oid > ZEND_LONG_MAX) { \ if (oid > ZEND_LONG_MAX) { \
@ -431,8 +434,6 @@ static void php_libpq_version(char *buf, size_t len)
PHP_MINIT_FUNCTION(pgsql) PHP_MINIT_FUNCTION(pgsql)
{ {
char buf[16];
REGISTER_INI_ENTRIES(); REGISTER_INI_ENTRIES();
le_plink = zend_register_list_destructors_ex(NULL, _close_pgsql_plink, "pgsql link persistent", module_number); le_plink = zend_register_list_destructors_ex(NULL, _close_pgsql_plink, "pgsql link persistent", module_number);
@ -468,108 +469,10 @@ PHP_MINIT_FUNCTION(pgsql)
pgsql_lob_object_handlers.compare = zend_objects_not_comparable; pgsql_lob_object_handlers.compare = zend_objects_not_comparable;
/* libpq version */ /* libpq version */
php_libpq_version(buf, sizeof(buf)); php_libpq_version(pgsql_libpq_version, sizeof(pgsql_libpq_version));
REGISTER_STRING_CONSTANT("PGSQL_LIBPQ_VERSION", buf, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("PGSQL_LIBPQ_VERSION_STR", buf, CONST_CS | CONST_PERSISTENT | CONST_DEPRECATED); register_pgsql_symbols(module_number);
/* For connection option */
REGISTER_LONG_CONSTANT("PGSQL_CONNECT_FORCE_NEW", PGSQL_CONNECT_FORCE_NEW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECT_ASYNC", PGSQL_CONNECT_ASYNC, CONST_CS | CONST_PERSISTENT);
/* For pg_fetch_array() */
REGISTER_LONG_CONSTANT("PGSQL_ASSOC", PGSQL_ASSOC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_NUM", PGSQL_NUM, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_BOTH", PGSQL_BOTH, CONST_CS | CONST_PERSISTENT);
/* For pg_last_notice() */
REGISTER_LONG_CONSTANT("PGSQL_NOTICE_LAST", PGSQL_NOTICE_LAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_NOTICE_ALL", PGSQL_NOTICE_ALL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_NOTICE_CLEAR", PGSQL_NOTICE_CLEAR, CONST_CS | CONST_PERSISTENT);
/* For pg_connection_status() */
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_BAD", CONNECTION_BAD, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_OK", CONNECTION_OK, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_STARTED", CONNECTION_STARTED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_MADE", CONNECTION_MADE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_AWAITING_RESPONSE", CONNECTION_AWAITING_RESPONSE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_AUTH_OK", CONNECTION_AUTH_OK, CONST_CS | CONST_PERSISTENT);
#ifdef CONNECTION_SSL_STARTUP
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_SSL_STARTUP", CONNECTION_SSL_STARTUP, CONST_CS | CONST_PERSISTENT);
#endif
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_SETENV", CONNECTION_SETENV, CONST_CS | CONST_PERSISTENT);
/* For pg_connect_poll() */
REGISTER_LONG_CONSTANT("PGSQL_POLLING_FAILED", PGRES_POLLING_FAILED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_POLLING_READING", PGRES_POLLING_READING, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_POLLING_WRITING", PGRES_POLLING_WRITING, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_POLLING_OK", PGRES_POLLING_OK, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_POLLING_ACTIVE", PGRES_POLLING_ACTIVE, CONST_CS | CONST_PERSISTENT);
/* For pg_transaction_status() */
REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_IDLE", PQTRANS_IDLE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_ACTIVE", PQTRANS_ACTIVE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_INTRANS", PQTRANS_INTRANS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_INERROR", PQTRANS_INERROR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_UNKNOWN", PQTRANS_UNKNOWN, CONST_CS | CONST_PERSISTENT);
/* For pg_set_error_verbosity() */
REGISTER_LONG_CONSTANT("PGSQL_ERRORS_TERSE", PQERRORS_TERSE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_ERRORS_DEFAULT", PQERRORS_DEFAULT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_ERRORS_VERBOSE", PQERRORS_VERBOSE, CONST_CS | CONST_PERSISTENT);
/* For lo_seek() */
REGISTER_LONG_CONSTANT("PGSQL_SEEK_SET", SEEK_SET, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_SEEK_CUR", SEEK_CUR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_SEEK_END", SEEK_END, CONST_CS | CONST_PERSISTENT);
/* For pg_result_status() return value type */
REGISTER_LONG_CONSTANT("PGSQL_STATUS_LONG", PGSQL_STATUS_LONG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_STATUS_STRING", PGSQL_STATUS_STRING, CONST_CS | CONST_PERSISTENT);
/* For pg_result_status() return value */
REGISTER_LONG_CONSTANT("PGSQL_EMPTY_QUERY", PGRES_EMPTY_QUERY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_COMMAND_OK", PGRES_COMMAND_OK, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_TUPLES_OK", PGRES_TUPLES_OK, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_COPY_OUT", PGRES_COPY_OUT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_COPY_IN", PGRES_COPY_IN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_BAD_RESPONSE", PGRES_BAD_RESPONSE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_NONFATAL_ERROR", PGRES_NONFATAL_ERROR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_FATAL_ERROR", PGRES_FATAL_ERROR, CONST_CS | CONST_PERSISTENT);
/* For pg_result_error_field() field codes */
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SEVERITY", PG_DIAG_SEVERITY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SQLSTATE", PG_DIAG_SQLSTATE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_MESSAGE_PRIMARY", PG_DIAG_MESSAGE_PRIMARY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_MESSAGE_DETAIL", PG_DIAG_MESSAGE_DETAIL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_MESSAGE_HINT", PG_DIAG_MESSAGE_HINT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_STATEMENT_POSITION", PG_DIAG_STATEMENT_POSITION, CONST_CS | CONST_PERSISTENT);
#ifdef PG_DIAG_INTERNAL_POSITION
REGISTER_LONG_CONSTANT("PGSQL_DIAG_INTERNAL_POSITION", PG_DIAG_INTERNAL_POSITION, CONST_CS | CONST_PERSISTENT);
#endif
#ifdef PG_DIAG_INTERNAL_QUERY
REGISTER_LONG_CONSTANT("PGSQL_DIAG_INTERNAL_QUERY", PG_DIAG_INTERNAL_QUERY, CONST_CS | CONST_PERSISTENT);
#endif
REGISTER_LONG_CONSTANT("PGSQL_DIAG_CONTEXT", PG_DIAG_CONTEXT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_FILE", PG_DIAG_SOURCE_FILE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_LINE", PG_DIAG_SOURCE_LINE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_FUNCTION", PG_DIAG_SOURCE_FUNCTION, CONST_CS | CONST_PERSISTENT);
#ifdef PG_DIAG_SCHEMA_NAME
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SCHEMA_NAME", PG_DIAG_SCHEMA_NAME, CONST_CS | CONST_PERSISTENT);
#endif
#ifdef PG_DIAG_TABLE_NAME
REGISTER_LONG_CONSTANT("PGSQL_DIAG_TABLE_NAME", PG_DIAG_TABLE_NAME, CONST_CS | CONST_PERSISTENT);
#endif
#ifdef PG_DIAG_COLUMN_NAME
REGISTER_LONG_CONSTANT("PGSQL_DIAG_COLUMN_NAME", PG_DIAG_COLUMN_NAME, CONST_CS | CONST_PERSISTENT);
#endif
#ifdef PG_DIAG_DATATYPE_NAME
REGISTER_LONG_CONSTANT("PGSQL_DIAG_DATATYPE_NAME", PG_DIAG_DATATYPE_NAME, CONST_CS | CONST_PERSISTENT);
#endif
#ifdef PG_DIAG_CONSTRAINT_NAME
REGISTER_LONG_CONSTANT("PGSQL_DIAG_CONSTRAINT_NAME", PG_DIAG_CONSTRAINT_NAME, CONST_CS | CONST_PERSISTENT);
#endif
#ifdef PG_DIAG_SEVERITY_NONLOCALIZED
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SEVERITY_NONLOCALIZED", PG_DIAG_SEVERITY_NONLOCALIZED, CONST_CS | CONST_PERSISTENT);
#endif
/* pg_convert options */
REGISTER_LONG_CONSTANT("PGSQL_CONV_IGNORE_DEFAULT", PGSQL_CONV_IGNORE_DEFAULT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONV_FORCE_NULL", PGSQL_CONV_FORCE_NULL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONV_IGNORE_NOT_NULL", PGSQL_CONV_IGNORE_NOT_NULL, CONST_CS | CONST_PERSISTENT);
/* pg_insert/update/delete/select options */
REGISTER_LONG_CONSTANT("PGSQL_DML_ESCAPE", PGSQL_DML_ESCAPE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DML_NO_CONV", PGSQL_DML_NO_CONV, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DML_EXEC", PGSQL_DML_EXEC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DML_ASYNC", PGSQL_DML_ASYNC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DML_STRING", PGSQL_DML_STRING, CONST_CS | CONST_PERSISTENT);
return SUCCESS; return SUCCESS;
} }
@ -610,8 +513,7 @@ PHP_MINFO_FUNCTION(pgsql)
php_info_print_table_start(); php_info_print_table_start();
php_info_print_table_header(2, "PostgreSQL Support", "enabled"); php_info_print_table_header(2, "PostgreSQL Support", "enabled");
php_libpq_version(buf, sizeof(buf)); php_info_print_table_row(2, "PostgreSQL (libpq) Version", pgsql_libpq_version);
php_info_print_table_row(2, "PostgreSQL (libpq) Version", buf);
#ifdef HAVE_PGSQL_WITH_MULTIBYTE_SUPPORT #ifdef HAVE_PGSQL_WITH_MULTIBYTE_SUPPORT
php_info_print_table_row(2, "Multibyte character support", "enabled"); php_info_print_table_row(2, "Multibyte character support", "enabled");
#else #else
@ -910,9 +812,7 @@ static void php_pgsql_get_link_info(INTERNAL_FUNCTION_PARAMETERS, int entry_type
break; break;
case PHP_PG_VERSION: case PHP_PG_VERSION:
array_init(return_value); array_init(return_value);
char buf[16]; add_assoc_string(return_value, "client", pgsql_libpq_version);
php_libpq_version(buf, sizeof(buf));
add_assoc_string(return_value, "client", buf);
add_assoc_long(return_value, "protocol", PQprotocolVersion(pgsql)); add_assoc_long(return_value, "protocol", PQprotocolVersion(pgsql));
if (PQprotocolVersion(pgsql) >= 3) { if (PQprotocolVersion(pgsql) >= 3) {
/* 8.0 or grater supports protorol version 3 */ /* 8.0 or grater supports protorol version 3 */

View file

@ -3,6 +3,415 @@
/** @generate-class-entries */ /** @generate-class-entries */
namespace PgSql { namespace PgSql {
/* libpq version */
/**
* @var string
* @cvalue pgsql_libpq_version
*/
const PGSQL_LIBPQ_VERSION = UNKNOWN;
/**
* @var string
* @cvalue pgsql_libpq_version
* @deprecated
*/
const PGSQL_LIBPQ_VERSION_STR = UNKNOWN;
/* For connection option */
/**
* @var int
* @cvalue PGSQL_CONNECT_FORCE_NEW
*/
const PGSQL_CONNECT_FORCE_NEW = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_CONNECT_ASYNC
*/
const PGSQL_CONNECT_ASYNC = UNKNOWN;
/* For pg_fetch_array() */
/**
* @var int
* @cvalue PGSQL_ASSOC
*/
const PGSQL_ASSOC = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_NUM
*/
const PGSQL_NUM = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_BOTH
*/
const PGSQL_BOTH = UNKNOWN;
/* For pg_last_notice() */
/**
* @var int
* @cvalue PGSQL_NOTICE_LAST
*/
const PGSQL_NOTICE_LAST = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_NOTICE_ALL
*/
const PGSQL_NOTICE_ALL = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_NOTICE_CLEAR
*/
const PGSQL_NOTICE_CLEAR = UNKNOWN;
/* For pg_connection_status() */
/**
* @var int
* @cvalue CONNECTION_BAD
*/
const PGSQL_CONNECTION_BAD = UNKNOWN;
/**
* @var int
* @cvalue CONNECTION_OK
*/
const PGSQL_CONNECTION_OK = UNKNOWN;
/**
* @var int
* @cvalue CONNECTION_STARTED
*/
const PGSQL_CONNECTION_STARTED = UNKNOWN;
/**
* @var int
* @cvalue CONNECTION_MADE
*/
const PGSQL_CONNECTION_MADE = UNKNOWN;
/**
* @var int
* @cvalue CONNECTION_AWAITING_RESPONSE
*/
const PGSQL_CONNECTION_AWAITING_RESPONSE = UNKNOWN;
/**
* @var int
* @cvalue CONNECTION_AUTH_OK
*/
const PGSQL_CONNECTION_AUTH_OK = UNKNOWN;
#ifdef CONNECTION_SSL_STARTUP
/**
* @var int
* @cvalue CONNECTION_SSL_STARTUP
*/
const PGSQL_CONNECTION_SSL_STARTUP = UNKNOWN;
#endif
/**
* @var int
* @cvalue CONNECTION_SETENV
*/
const PGSQL_CONNECTION_SETENV = UNKNOWN;
/* For pg_connect_poll() */
/**
* @var int
* @cvalue PGRES_POLLING_FAILED
*/
const PGSQL_POLLING_FAILED = UNKNOWN;
/**
* @var int
* @cvalue PGRES_POLLING_READING
*/
const PGSQL_POLLING_READING = UNKNOWN;
/**
* @var int
* @cvalue PGRES_POLLING_WRITING
*/
const PGSQL_POLLING_WRITING = UNKNOWN;
/**
* @var int
* @cvalue PGRES_POLLING_OK
*/
const PGSQL_POLLING_OK = UNKNOWN;
/**
* @var int
* @cvalue PGRES_POLLING_ACTIVE
*/
const PGSQL_POLLING_ACTIVE = UNKNOWN;
/* For pg_transaction_status() */
/**
* @var int
* @cvalue PQTRANS_IDLE
*/
const PGSQL_TRANSACTION_IDLE = UNKNOWN;
/**
* @var int
* @cvalue PQTRANS_ACTIVE
*/
const PGSQL_TRANSACTION_ACTIVE = UNKNOWN;
/**
* @var int
* @cvalue PQTRANS_INTRANS
*/
const PGSQL_TRANSACTION_INTRANS = UNKNOWN;
/**
* @var int
* @cvalue PQTRANS_INERROR
*/
const PGSQL_TRANSACTION_INERROR = UNKNOWN;
/**
* @var int
* @cvalue PQTRANS_UNKNOWN
*/
const PGSQL_TRANSACTION_UNKNOWN = UNKNOWN;
/* For pg_set_error_verbosity() */
/**
* @var int
* @cvalue PQERRORS_TERSE
*/
const PGSQL_ERRORS_TERSE = UNKNOWN;
/**
* @var int
* @cvalue PQERRORS_DEFAULT
*/
const PGSQL_ERRORS_DEFAULT = UNKNOWN;
/**
* @var int
* @cvalue PQERRORS_VERBOSE
*/
const PGSQL_ERRORS_VERBOSE = UNKNOWN;
/* For lo_seek() */
/**
* @var int
* @cvalue SEEK_SET
*/
const PGSQL_SEEK_SET = UNKNOWN;
/**
* @var int
* @cvalue SEEK_CUR
*/
const PGSQL_SEEK_CUR = UNKNOWN;
/**
* @var int
* @cvalue SEEK_END
*/
const PGSQL_SEEK_END = UNKNOWN;
/* For pg_result_status() return value type */
/**
* @var int
* @cvalue PGSQL_STATUS_LONG
*/
const PGSQL_STATUS_LONG = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_STATUS_STRING
*/
const PGSQL_STATUS_STRING = UNKNOWN;
/* For pg_result_status() return value */
/**
* @var int
* @cvalue PGRES_EMPTY_QUERY
*/
const PGSQL_EMPTY_QUERY = UNKNOWN;
/**
* @var int
* @cvalue PGRES_COMMAND_OK
*/
const PGSQL_COMMAND_OK = UNKNOWN;
/**
* @var int
* @cvalue PGRES_TUPLES_OK
*/
const PGSQL_TUPLES_OK = UNKNOWN;
/**
* @var int
* @cvalue PGRES_COPY_OUT
*/
const PGSQL_COPY_OUT = UNKNOWN;
/**
* @var int
* @cvalue PGRES_COPY_IN
*/
const PGSQL_COPY_IN = UNKNOWN;
/**
* @var int
* @cvalue PGRES_BAD_RESPONSE
*/
const PGSQL_BAD_RESPONSE = UNKNOWN;
/**
* @var int
* @cvalue PGRES_NONFATAL_ERROR
*/
const PGSQL_NONFATAL_ERROR = UNKNOWN;
/**
* @var int
* @cvalue PGRES_FATAL_ERROR
*/
const PGSQL_FATAL_ERROR = UNKNOWN;
/* For pg_result_error_field() field codes */
/**
* @var int
* @cvalue PG_DIAG_SEVERITY
*/
const PGSQL_DIAG_SEVERITY = UNKNOWN;
/**
* @var int
* @cvalue PG_DIAG_SQLSTATE
*/
const PGSQL_DIAG_SQLSTATE = UNKNOWN;
/**
* @var int
* @cvalue PG_DIAG_MESSAGE_PRIMARY
*/
const PGSQL_DIAG_MESSAGE_PRIMARY = UNKNOWN;
/**
* @var int
* @cvalue PG_DIAG_MESSAGE_DETAIL
*/
const PGSQL_DIAG_MESSAGE_DETAIL = UNKNOWN;
/**
* @var int
* @cvalue PG_DIAG_MESSAGE_HINT
*/
const PGSQL_DIAG_MESSAGE_HINT = UNKNOWN;
/**
* @var int
* @cvalue PG_DIAG_STATEMENT_POSITION
*/
const PGSQL_DIAG_STATEMENT_POSITION = UNKNOWN;
#ifdef PG_DIAG_INTERNAL_POSITION
/**
* @var int
* @cvalue PG_DIAG_INTERNAL_POSITION
*/
const PGSQL_DIAG_INTERNAL_POSITION = UNKNOWN;
#endif
#ifdef PG_DIAG_INTERNAL_QUERY
/**
* @var int
* @cvalue PG_DIAG_INTERNAL_QUERY
*/
const PGSQL_DIAG_INTERNAL_QUERY = UNKNOWN;
#endif
/**
* @var int
* @cvalue PG_DIAG_CONTEXT
*/
const PGSQL_DIAG_CONTEXT = UNKNOWN;
/**
* @var int
* @cvalue PG_DIAG_SOURCE_FILE
*/
const PGSQL_DIAG_SOURCE_FILE = UNKNOWN;
/**
* @var int
* @cvalue PG_DIAG_SOURCE_LINE
*/
const PGSQL_DIAG_SOURCE_LINE = UNKNOWN;
/**
* @var int
* @cvalue PG_DIAG_SOURCE_FUNCTION
*/
const PGSQL_DIAG_SOURCE_FUNCTION = UNKNOWN;
#ifdef PG_DIAG_SCHEMA_NAME
/**
* @var int
* @cvalue PG_DIAG_SCHEMA_NAME
*/
const PGSQL_DIAG_SCHEMA_NAME = UNKNOWN;
#endif
#ifdef PG_DIAG_TABLE_NAME
/**
* @var int
* @cvalue PG_DIAG_TABLE_NAME
*/
const PGSQL_DIAG_TABLE_NAME = UNKNOWN;
#endif
#ifdef PG_DIAG_COLUMN_NAME
/**
* @var int
* @cvalue PG_DIAG_COLUMN_NAME
*/
const PGSQL_DIAG_COLUMN_NAME = UNKNOWN;
#endif
#ifdef PG_DIAG_DATATYPE_NAME
/**
* @var int
* @cvalue PG_DIAG_DATATYPE_NAME
*/
const PGSQL_DIAG_DATATYPE_NAME = UNKNOWN;
#endif
#ifdef PG_DIAG_CONSTRAINT_NAME
/**
* @var int
* @cvalue PG_DIAG_CONSTRAINT_NAME
*/
const PGSQL_DIAG_CONSTRAINT_NAME = UNKNOWN;
#endif
#ifdef PG_DIAG_SEVERITY_NONLOCALIZED
/**
* @var int
* @cvalue PG_DIAG_SEVERITY_NONLOCALIZED
*/
const PGSQL_DIAG_SEVERITY_NONLOCALIZED = UNKNOWN;
#endif
/* pg_convert options */
/**
* @var int
* @cvalue PGSQL_CONV_IGNORE_DEFAULT
*/
const PGSQL_CONV_IGNORE_DEFAULT = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_CONV_FORCE_NULL
*/
const PGSQL_CONV_FORCE_NULL = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_CONV_IGNORE_NOT_NULL
*/
const PGSQL_CONV_IGNORE_NOT_NULL = UNKNOWN;
/* pg_insert/update/delete/select options */
/**
* @var int
* @cvalue PGSQL_DML_ESCAPE
*/
const PGSQL_DML_ESCAPE = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_DML_NO_CONV
*/
const PGSQL_DML_NO_CONV = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_DML_EXEC
*/
const PGSQL_DML_EXEC = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_DML_ASYNC
*/
const PGSQL_DML_ASYNC = UNKNOWN;
/**
* @var int
* @cvalue PGSQL_DML_STRING
*/
const PGSQL_DML_STRING = UNKNOWN;
/** /**
* @strict-properties * @strict-properties
@ -513,5 +922,4 @@ namespace {
* @refcount 1 * @refcount 1
*/ */
function pg_select(PgSql\Connection $connection, string $table_name, array $conditions, int $flags = PGSQL_DML_EXEC, int $mode = PGSQL_ASSOC): array|string|false {} function pg_select(PgSql\Connection $connection, string $table_name, array $conditions, int $flags = PGSQL_DML_EXEC, int $mode = PGSQL_ASSOC): array|string|false {}
} }

View file

@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead. /* This is a generated file, edit the .stub.php file instead.
* Stub hash: 35f41dd74485f921feddc223085dea520f8d816e */ * Stub hash: 16b910c38da087e1b4b55e38031b593334c698ec */
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_pg_connect, 0, 1, PgSql\\Connection, MAY_BE_FALSE) ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_pg_connect, 0, 1, PgSql\\Connection, MAY_BE_FALSE)
ZEND_ARG_TYPE_INFO(0, connection_string, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, connection_string, IS_STRING, 0)
@ -674,6 +674,98 @@ static const zend_function_entry class_PgSql_Lob_methods[] = {
ZEND_FE_END ZEND_FE_END
}; };
static void register_pgsql_symbols(int module_number)
{
REGISTER_STRING_CONSTANT("PGSQL_LIBPQ_VERSION", pgsql_libpq_version, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("PGSQL_LIBPQ_VERSION_STR", pgsql_libpq_version, CONST_CS | CONST_PERSISTENT | CONST_DEPRECATED);
REGISTER_LONG_CONSTANT("PGSQL_CONNECT_FORCE_NEW", PGSQL_CONNECT_FORCE_NEW, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECT_ASYNC", PGSQL_CONNECT_ASYNC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_ASSOC", PGSQL_ASSOC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_NUM", PGSQL_NUM, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_BOTH", PGSQL_BOTH, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_NOTICE_LAST", PGSQL_NOTICE_LAST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_NOTICE_ALL", PGSQL_NOTICE_ALL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_NOTICE_CLEAR", PGSQL_NOTICE_CLEAR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_BAD", CONNECTION_BAD, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_OK", CONNECTION_OK, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_STARTED", CONNECTION_STARTED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_MADE", CONNECTION_MADE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_AWAITING_RESPONSE", CONNECTION_AWAITING_RESPONSE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_AUTH_OK", CONNECTION_AUTH_OK, CONST_CS | CONST_PERSISTENT);
#if defined(CONNECTION_SSL_STARTUP)
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_SSL_STARTUP", CONNECTION_SSL_STARTUP, CONST_CS | CONST_PERSISTENT);
#endif
REGISTER_LONG_CONSTANT("PGSQL_CONNECTION_SETENV", CONNECTION_SETENV, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_POLLING_FAILED", PGRES_POLLING_FAILED, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_POLLING_READING", PGRES_POLLING_READING, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_POLLING_WRITING", PGRES_POLLING_WRITING, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_POLLING_OK", PGRES_POLLING_OK, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_POLLING_ACTIVE", PGRES_POLLING_ACTIVE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_IDLE", PQTRANS_IDLE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_ACTIVE", PQTRANS_ACTIVE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_INTRANS", PQTRANS_INTRANS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_INERROR", PQTRANS_INERROR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_TRANSACTION_UNKNOWN", PQTRANS_UNKNOWN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_ERRORS_TERSE", PQERRORS_TERSE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_ERRORS_DEFAULT", PQERRORS_DEFAULT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_ERRORS_VERBOSE", PQERRORS_VERBOSE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_SEEK_SET", SEEK_SET, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_SEEK_CUR", SEEK_CUR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_SEEK_END", SEEK_END, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_STATUS_LONG", PGSQL_STATUS_LONG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_STATUS_STRING", PGSQL_STATUS_STRING, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_EMPTY_QUERY", PGRES_EMPTY_QUERY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_COMMAND_OK", PGRES_COMMAND_OK, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_TUPLES_OK", PGRES_TUPLES_OK, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_COPY_OUT", PGRES_COPY_OUT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_COPY_IN", PGRES_COPY_IN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_BAD_RESPONSE", PGRES_BAD_RESPONSE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_NONFATAL_ERROR", PGRES_NONFATAL_ERROR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_FATAL_ERROR", PGRES_FATAL_ERROR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SEVERITY", PG_DIAG_SEVERITY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SQLSTATE", PG_DIAG_SQLSTATE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_MESSAGE_PRIMARY", PG_DIAG_MESSAGE_PRIMARY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_MESSAGE_DETAIL", PG_DIAG_MESSAGE_DETAIL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_MESSAGE_HINT", PG_DIAG_MESSAGE_HINT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_STATEMENT_POSITION", PG_DIAG_STATEMENT_POSITION, CONST_CS | CONST_PERSISTENT);
#if defined(PG_DIAG_INTERNAL_POSITION)
REGISTER_LONG_CONSTANT("PGSQL_DIAG_INTERNAL_POSITION", PG_DIAG_INTERNAL_POSITION, CONST_CS | CONST_PERSISTENT);
#endif
#if defined(PG_DIAG_INTERNAL_QUERY)
REGISTER_LONG_CONSTANT("PGSQL_DIAG_INTERNAL_QUERY", PG_DIAG_INTERNAL_QUERY, CONST_CS | CONST_PERSISTENT);
#endif
REGISTER_LONG_CONSTANT("PGSQL_DIAG_CONTEXT", PG_DIAG_CONTEXT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_FILE", PG_DIAG_SOURCE_FILE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_LINE", PG_DIAG_SOURCE_LINE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SOURCE_FUNCTION", PG_DIAG_SOURCE_FUNCTION, CONST_CS | CONST_PERSISTENT);
#if defined(PG_DIAG_SCHEMA_NAME)
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SCHEMA_NAME", PG_DIAG_SCHEMA_NAME, CONST_CS | CONST_PERSISTENT);
#endif
#if defined(PG_DIAG_TABLE_NAME)
REGISTER_LONG_CONSTANT("PGSQL_DIAG_TABLE_NAME", PG_DIAG_TABLE_NAME, CONST_CS | CONST_PERSISTENT);
#endif
#if defined(PG_DIAG_COLUMN_NAME)
REGISTER_LONG_CONSTANT("PGSQL_DIAG_COLUMN_NAME", PG_DIAG_COLUMN_NAME, CONST_CS | CONST_PERSISTENT);
#endif
#if defined(PG_DIAG_DATATYPE_NAME)
REGISTER_LONG_CONSTANT("PGSQL_DIAG_DATATYPE_NAME", PG_DIAG_DATATYPE_NAME, CONST_CS | CONST_PERSISTENT);
#endif
#if defined(PG_DIAG_CONSTRAINT_NAME)
REGISTER_LONG_CONSTANT("PGSQL_DIAG_CONSTRAINT_NAME", PG_DIAG_CONSTRAINT_NAME, CONST_CS | CONST_PERSISTENT);
#endif
#if defined(PG_DIAG_SEVERITY_NONLOCALIZED)
REGISTER_LONG_CONSTANT("PGSQL_DIAG_SEVERITY_NONLOCALIZED", PG_DIAG_SEVERITY_NONLOCALIZED, CONST_CS | CONST_PERSISTENT);
#endif
REGISTER_LONG_CONSTANT("PGSQL_CONV_IGNORE_DEFAULT", PGSQL_CONV_IGNORE_DEFAULT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONV_FORCE_NULL", PGSQL_CONV_FORCE_NULL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_CONV_IGNORE_NOT_NULL", PGSQL_CONV_IGNORE_NOT_NULL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DML_ESCAPE", PGSQL_DML_ESCAPE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DML_NO_CONV", PGSQL_DML_NO_CONV, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DML_EXEC", PGSQL_DML_EXEC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DML_ASYNC", PGSQL_DML_ASYNC, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("PGSQL_DML_STRING", PGSQL_DML_STRING, CONST_CS | CONST_PERSISTENT);
}
static zend_class_entry *register_class_PgSql_Connection(void) static zend_class_entry *register_class_PgSql_Connection(void)
{ {
zend_class_entry ce, *class_entry; zend_class_entry ce, *class_entry;