diff --git a/ext/pgsql/README b/ext/pgsql/README index 2a1b0f42125..2b4c412338d 100644 --- a/ext/pgsql/README +++ b/ext/pgsql/README @@ -43,14 +43,13 @@ module with specific version. You need to install PostgreSQL somewhere in your system to build PHP with PostgreSQL support. ==== Note For PostgreSQL 7.2 ==== -I've tested upto 7.2.1. +I've tested upto 7.2.2. ==== TODO List === Make pg_convert() smater. - Better regex - User defiend type support Support async connection. -Support async notification. ==== Experimental Functions ===== @@ -217,6 +216,19 @@ array pg_select(resource db, string table, array ids[, bool convert]) Select records that has ids (id=>value) -------------------------------------------------------------------- +array pg_get_notify([resource db[, notify]]) + Get notify message on the connection + +-------------------------------------------------------------------- +string pg_unescape_bytea(string bytea_data) + Unescape bytea field data + +-------------------------------------------------------------------- +bool pg_ping(resource db) + ping database connection and try to reset connection if it's + broken + +------------------------------------------------------------------- Again, experimental functions are subject to be changed without notice. diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index e0bd78ae5f1..43fab8557af 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -116,6 +116,7 @@ function_entry pgsql_functions[] = { PHP_FE(pg_field_is_null,NULL) /* async message function */ PHP_FE(pg_get_notify, NULL) + PHP_FE(pg_get_pid, NULL) /* error message functions */ PHP_FE(pg_result_error, NULL) PHP_FE(pg_last_error, NULL) @@ -3015,9 +3016,7 @@ PHP_FUNCTION(pg_get_notify) zval *pgsql_link; int id = -1, result_type = PGSQL_ASSOC; PGconn *pgsql; - PGresult *pgsql_result; PGnotify *pgsql_notify; - pgsql_result_handle *pg_result; if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "r|l", &pgsql_link) == FAILURE) { @@ -3044,6 +3043,24 @@ PHP_FUNCTION(pg_get_notify) } /* }}} */ +/* {{{ proto resource pg_get_pid([resource connection) + Get backend(server) pid */ +PHP_FUNCTION(pg_get_pid) +{ + zval *pgsql_link; + int id = -1, pid; + PGconn *pgsql; + + if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "r", + &pgsql_link) == FAILURE) { + RETURN_FALSE; + } + + ZEND_FETCH_RESOURCE2(pgsql, PGconn *, &pgsql_link, id, "PostgreSQL link", le_link, le_plink); + + RETURN_LONG(PQbackendPID(pgsql)); +} +/* }}} */ /* {{{ php_pgsql_meta_data * TODO: Add meta_data cache for better performance diff --git a/ext/pgsql/php_pgsql.h b/ext/pgsql/php_pgsql.h index 5fef4ef7815..3773904dfd5 100644 --- a/ext/pgsql/php_pgsql.h +++ b/ext/pgsql/php_pgsql.h @@ -99,6 +99,7 @@ PHP_FUNCTION(pg_field_prtlen); PHP_FUNCTION(pg_field_is_null); /* async message functions */ PHP_FUNCTION(pg_get_notify); +PHP_FUNCTION(pg_get_pid); /* error message functions */ PHP_FUNCTION(pg_result_error); PHP_FUNCTION(pg_last_error);