helly Sat May 31 08:59:20 2003 EDT Removed files: (Branch: PHP_4_3) /php4/ext/pgsql/tests async_query.inc connection.inc copy.inc createdb.inc dropdb.inc escape.inc informational.inc large_object.inc notice.inc old_api.inc optional.inc pg_convert.inc pg_delete.inc pg_escape_bytea.inc pg_get_notify.inc pg_get_pid.inc pg_insert.inc pg_meta_data.inc pg_ping.inc pg_result_status.inc pg_select.inc pg_update.inc result.inc sync_query.inc
Modified files: /php4/ext/pgsql pgsql.c php_pgsql.h /php4/ext/pgsql/tests 01createdb.phpt 02connection.phpt 03sync_query.phpt 04async_query.phpt 05large_object.phpt 06copy.phpt 07optional.phpt 08escape.phpt 09notice.phpt 10pg_convert.phpt 11pg_meta_data.phpt 12pg_insert.phpt 13pg_select.phpt 14pg_update.phpt 15pg_delete.phpt 16pg_result_status.phpt 17result.phpt 18pg_escape_bytea.phpt 19pg_ping.phpt 20pg_get_pid.phpt 21pg_get_notify.phpt 98old_api.phpt 9999dropdb.phpt README Log: MFH: Synch latest fixes
Index: php4/ext/pgsql/pgsql.c diff -u php4/ext/pgsql/pgsql.c:1.244.2.17 php4/ext/pgsql/pgsql.c:1.244.2.18 --- php4/ext/pgsql/pgsql.c:1.244.2.17 Fri Apr 25 18:00:17 2003 +++ php4/ext/pgsql/pgsql.c Sat May 31 08:59:19 2003 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pgsql.c,v 1.244.2.17 2003/04/25 22:00:17 iliaa Exp $ */ +/* $Id: pgsql.c,v 1.244.2.18 2003/05/31 12:59:19 helly Exp $ */ #include <stdlib.h> @@ -212,11 +212,7 @@ static int le_link, le_plink, le_result, le_lofp, le_string; -#ifdef ZTS -int pgsql_globals_id; -#else -php_pgsql_globals pgsql_globals; -#endif +ZEND_DECLARE_MODULE_GLOBALS(pgsql); /* {{{ php_pgsql_set_default_link */ @@ -268,15 +264,21 @@ static void _php_pgsql_notice_handler(void *resource_id, const char *message) { php_pgsql_notice *notice; + int i; TSRMLS_FETCH(); if (! PGG(ignore_notices)) { + notice = (php_pgsql_notice *)emalloc(sizeof(php_pgsql_notice)); + i = strlen(message)-1; + while (i && (message[i] == '\r' || message[i] == '\n')) { + i--; + } + i++; + notice->message = estrndup(message, i); + notice->len = i; if (PGG(log_notices)) { - php_log_err((char *) message TSRMLS_CC); + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "%s", notice->message); } - notice = (php_pgsql_notice *)emalloc(sizeof(php_pgsql_notice)); - notice->len = strlen(message); - notice->message = estrndup(message, notice->len); zend_hash_index_update(&PGG(notices), *(int *)resource_id, (void **)¬ice, sizeof(php_pgsql_notice *), NULL); } } @@ -348,22 +350,22 @@ /* {{{ PHP_INI */ PHP_INI_BEGIN() -STD_PHP_INI_BOOLEAN("pgsql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateBool, allow_persistent, php_pgsql_globals, pgsql_globals) -STD_PHP_INI_ENTRY_EX("pgsql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_persistent, php_pgsql_globals, pgsql_globals, display_link_numbers) -STD_PHP_INI_ENTRY_EX("pgsql.max_links", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_links, php_pgsql_globals, pgsql_globals, display_link_numbers) -STD_PHP_INI_BOOLEAN("pgsql.auto_reset_persistent", "0", PHP_INI_SYSTEM, OnUpdateBool, auto_reset_persistent, php_pgsql_globals, pgsql_globals) -STD_PHP_INI_BOOLEAN("pgsql.ignore_notice", "0", PHP_INI_ALL, OnUpdateBool, ignore_notices, php_pgsql_globals, pgsql_globals) -STD_PHP_INI_BOOLEAN("pgsql.log_notice", "0", PHP_INI_ALL, OnUpdateBool, log_notices, php_pgsql_globals, pgsql_globals) +STD_PHP_INI_BOOLEAN( "pgsql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateBool, allow_persistent, zend_pgsql_globals, pgsql_globals) +STD_PHP_INI_ENTRY_EX("pgsql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_persistent, zend_pgsql_globals, pgsql_globals, display_link_numbers) +STD_PHP_INI_ENTRY_EX("pgsql.max_links", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_links, zend_pgsql_globals, pgsql_globals, display_link_numbers) +STD_PHP_INI_BOOLEAN( "pgsql.auto_reset_persistent", "0", PHP_INI_SYSTEM, OnUpdateBool, auto_reset_persistent, zend_pgsql_globals, pgsql_globals) +STD_PHP_INI_BOOLEAN( "pgsql.ignore_notice", "0", PHP_INI_ALL, OnUpdateBool, ignore_notices, zend_pgsql_globals, pgsql_globals) +STD_PHP_INI_BOOLEAN( "pgsql.log_notice", "0", PHP_INI_ALL, OnUpdateBool, log_notices, zend_pgsql_globals, pgsql_globals) PHP_INI_END() /* }}} */ /* {{{ php_pgsql_init_globals */ -static void php_pgsql_init_globals(php_pgsql_globals *pgsql_globals_p TSRMLS_DC) +static void php_pgsql_init_globals(zend_pgsql_globals *pgsql_globals) { - PGG(num_persistent) = 0; + memset(pgsql_globals, 0, sizeof(zend_pgsql_globals)); /* Initilize notice message hash at MINIT only */ - zend_hash_init_ex(&PGG(notices), 0, NULL, PHP_PGSQL_NOTICE_PTR_DTOR, 1, 0); + zend_hash_init_ex(&pgsql_globals->notices, 0, NULL, PHP_PGSQL_NOTICE_PTR_DTOR, 1, 0); } /* }}} */ @@ -371,11 +373,7 @@ */ PHP_MINIT_FUNCTION(pgsql) { -#ifdef ZTS - ts_allocate_id(&pgsql_globals_id, sizeof(php_pgsql_globals), (ts_allocate_ctor) php_pgsql_init_globals, NULL); -#else - php_pgsql_init_globals(&pgsql_globals TSRMLS_CC); -#endif + ZEND_INIT_MODULE_GLOBALS(pgsql, php_pgsql_init_globals, NULL); REGISTER_INI_ENTRIES(); @@ -728,6 +726,9 @@ WRONG_PARAM_COUNT; break; } + if (pgsql_link == NULL && id == -1) { + RETURN_FALSE; + } ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); @@ -775,6 +776,9 @@ WRONG_PARAM_COUNT; break; } + if (pgsql_link == NULL && id == -1) { + RETURN_FALSE; + } ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); @@ -914,6 +918,9 @@ WRONG_PARAM_COUNT; break; } + if (pgsql_link == NULL && id == -1) { + RETURN_FALSE; + } ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); @@ -1595,7 +1602,7 @@ Enable tracing a PostgreSQL connection */ PHP_FUNCTION(pg_trace) { - zval **z_filename, **z_mode, **z_pgsql_link = NULL; + zval **z_filename, **z_mode, **pgsql_link = NULL; int id = -1; PGconn *pgsql; char *mode = "w"; @@ -1619,7 +1626,7 @@ mode = Z_STRVAL_PP(z_mode); break; case 3: - if (zend_get_parameters_ex(3, &z_filename, &z_mode, &z_pgsql_link)==FAILURE) { + if (zend_get_parameters_ex(3, &z_filename, &z_mode, &pgsql_link)==FAILURE) { RETURN_FALSE; } convert_to_string_ex(z_mode); @@ -1629,8 +1636,11 @@ ZEND_WRONG_PARAM_COUNT(); break; } + if (pgsql_link == NULL && id == -1) { + RETURN_FALSE; + } - ZEND_FETCH_RESOURCE2(pgsql, PGconn *, z_pgsql_link, id, "PostgreSQL link", le_link, le_plink); + ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); convert_to_string_ex(z_filename); stream = php_stream_open_wrapper(Z_STRVAL_PP(z_filename), mode, ENFORCE_SAFE_MODE|REPORT_ERRORS, NULL); @@ -1671,6 +1681,9 @@ ZEND_WRONG_PARAM_COUNT(); break; } + if (pgsql_link == NULL && id == -1) { + RETURN_FALSE; + } ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); PQuntrace(pgsql); @@ -1701,6 +1714,9 @@ WRONG_PARAM_COUNT; break; } + if (pgsql_link == NULL && id == -1) { + RETURN_FALSE; + } ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); @@ -1776,8 +1792,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Requires 1 or 2 arguments."); RETURN_FALSE; } - - if (pgsql_link == NULL) { + if (pgsql_link == NULL && id == -1) { RETURN_FALSE; } @@ -1849,8 +1864,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Requires 1 or 2 arguments."); RETURN_FALSE; } - - if (pgsql_link == NULL) { + if (pgsql_link == NULL && id == -1) { RETURN_FALSE; } @@ -2082,15 +2096,15 @@ WRONG_PARAM_COUNT; } - if (pgsql_link == NULL) { + if (PG(safe_mode) &&(!php_checkuid(file_in, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { RETURN_FALSE; } - if (PG(safe_mode) &&(!php_checkuid(file_in, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { + if (php_check_open_basedir(file_in TSRMLS_CC)) { RETURN_FALSE; } - if (php_check_open_basedir(file_in TSRMLS_CC)) { + if (pgsql_link == NULL && id == -1) { RETURN_FALSE; } @@ -2180,15 +2194,15 @@ RETURN_FALSE; } - if (pgsql_link == NULL) { + if (PG(safe_mode) &&(!php_checkuid(file_out, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { RETURN_FALSE; } - if (PG(safe_mode) &&(!php_checkuid(file_out, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { + if (php_check_open_basedir(file_out TSRMLS_CC)) { RETURN_FALSE; } - if (php_check_open_basedir(file_out TSRMLS_CC)) { + if (pgsql_link == NULL && id == -1) { RETURN_FALSE; } @@ -2274,6 +2288,9 @@ WRONG_PARAM_COUNT; break; } + if (pgsql_link == NULL && id == -1) { + RETURN_FALSE; + } ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); @@ -2306,6 +2323,9 @@ WRONG_PARAM_COUNT; break; } + if (pgsql_link == NULL && id == -1) { + RETURN_FALSE; + } ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); @@ -2350,6 +2370,9 @@ WRONG_PARAM_COUNT; break; } + if (pgsql_link == NULL && id == -1) { + RETURN_FALSE; + } ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); @@ -2390,6 +2413,9 @@ WRONG_PARAM_COUNT; break; } + if (pgsql_link == NULL && id == -1) { + RETURN_FALSE; + } ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink); Index: php4/ext/pgsql/php_pgsql.h diff -u php4/ext/pgsql/php_pgsql.h:1.56.2.2 php4/ext/pgsql/php_pgsql.h:1.56.2.3 --- php4/ext/pgsql/php_pgsql.h:1.56.2.2 Tue Apr 1 19:00:09 2003 +++ php4/ext/pgsql/php_pgsql.h Sat May 31 08:59:19 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_pgsql.h,v 1.56.2.2 2003/04/02 00:00:09 jay Exp $ */ +/* $Id: php_pgsql.h,v 1.56.2.3 2003/05/31 12:59:19 helly Exp $ */ #ifndef PHP_PGSQL_H #define PHP_PGSQL_H @@ -236,24 +236,23 @@ size_t len; } php_pgsql_notice; -typedef struct { +ZEND_BEGIN_MODULE_GLOBALS(pgsql) long default_link; /* default link when connection is omitted */ long num_links,num_persistent; long max_links,max_persistent; long allow_persistent; long auto_reset_persistent; int le_lofp,le_string; - int ignore_notices,log_notices; + long ignore_notices,log_notices; HashTable notices; /* notice message for each connection */ -} php_pgsql_globals; +ZEND_END_MODULE_GLOBALS(pgsql) +ZEND_EXTERN_MODULE_GLOBALS(pgsql) #ifdef ZTS -# define PGG(v) TSRMG(pgsql_globals_id, php_pgsql_globals *, v) -extern int pgsql_globals_id; +# define PGG(v) TSRMG(pgsql_globals_id, zend_pgsql_globals *, v) #else # define PGG(v) (pgsql_globals.v) -extern php_pgsql_globals pgsql_globals; #endif #endif Index: php4/ext/pgsql/tests/01createdb.phpt diff -u php4/ext/pgsql/tests/01createdb.phpt:1.1 php4/ext/pgsql/tests/01createdb.phpt:1.1.8.1 --- php4/ext/pgsql/tests/01createdb.phpt:1.1 Sun Dec 16 19:16:48 2001 +++ php4/ext/pgsql/tests/01createdb.phpt Sat May 31 08:59:19 2003 @@ -4,7 +4,25 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("createdb.inc"); +// create test table + +include('config.inc'); + +$db = pg_connect($conn_str); +if ([EMAIL PROTECTED](@pg_query($db, "SELECT * FROM ".$table_name))) +{ + @pg_query($db,$table_def); // Create table here + for ($i=0; $i < $num_test_record; $i++) { + pg_query($db,"INSERT INTO ".$table_name." VALUES ($i, 'ABC');"); + } +} +else { + echo pg_last_error()."\n"; +} + +pg_close($db); + +echo "OK"; ?> --EXPECT-- OK Index: php4/ext/pgsql/tests/02connection.phpt diff -u php4/ext/pgsql/tests/02connection.phpt:1.1 php4/ext/pgsql/tests/02connection.phpt:1.1.8.1 --- php4/ext/pgsql/tests/02connection.phpt:1.1 Sun Dec 16 19:16:48 2001 +++ php4/ext/pgsql/tests/02connection.phpt Sat May 31 08:59:19 2003 @@ -4,7 +4,47 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("connection.inc"); +// connection function tests + +include('config.inc'); + +$db = pg_pconnect($conn_str); +if (pg_connection_status($db) != PGSQL_CONNECTION_OK) +{ + echo "pg_connection_status() error\n"; +} +if (!pg_connection_reset($db)) +{ + echo "pg_connection_reset() error\n"; +} +if (pg_connection_busy($db)) +{ + echo "pg_connection_busy() error\n"; +} +if (!pg_host($db)) +{ + echo "pg_host() error\n"; +} +if (!pg_dbname($db)) +{ + echo "pg_dbname() error\n"; +} +if (!pg_port($db)) +{ + echo "pg_port() error\n"; +} +if (pg_tty($db)) +{ + echo "pg_tty() error\n"; +} +if (pg_options($db)) +{ + echo "pg_options() error\n"; +} + +pg_close($db); + +echo "OK"; ?> --EXPECT-- OK Index: php4/ext/pgsql/tests/03sync_query.phpt diff -u php4/ext/pgsql/tests/03sync_query.phpt:1.1 php4/ext/pgsql/tests/03sync_query.phpt:1.1.8.1 --- php4/ext/pgsql/tests/03sync_query.phpt:1.1 Sun Dec 16 19:16:48 2001 +++ php4/ext/pgsql/tests/03sync_query.phpt Sat May 31 08:59:19 2003 @@ -4,7 +4,50 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("sync_query.inc"); + +include('config.inc'); + +$db = pg_connect($conn_str); + +$result = pg_query($db, "SELECT * FROM ".$table_name.";"); +if (!($rows = pg_num_rows($result))) +{ + echo "pg_num_row() error\n"; +} +for ($i=0; $i < $rows; $i++) +{ + pg_fetch_array($result, $i, PGSQL_NUM); +} +for ($i=0; $i < $rows; $i++) +{ + pg_fetch_object($result, $i, PGSQL_ASSOC); +} +for ($i=0; $i < $rows; $i++) +{ + pg_fetch_row($result, $i); +} +for ($i=0; $i < $rows; $i++) +{ + pg_fetch_result($result, $i, 0); +} + +pg_result_error($result); +pg_num_rows(pg_query($db, "SELECT * FROM ".$table_name.";")); +pg_num_fields(pg_query($db, "SELECT * FROM ".$table_name.";")); +pg_field_name($result, 0); +pg_field_num($result, $field_name); +pg_field_size($result, 0); +pg_field_type($result, 0); +pg_field_prtlen($result, 0); +pg_field_is_null($result, 0); + +$result = pg_query($db, "INSERT INTO ".$table_name." VALUES (9999, 'ABC');"); +pg_last_oid($result); + +pg_free_result($result); +pg_close($db); + +echo "OK"; ?> --EXPECT-- OK Index: php4/ext/pgsql/tests/04async_query.phpt diff -u php4/ext/pgsql/tests/04async_query.phpt:1.1 php4/ext/pgsql/tests/04async_query.phpt:1.1.8.1 --- php4/ext/pgsql/tests/04async_query.phpt:1.1 Sun Dec 16 19:16:48 2001 +++ php4/ext/pgsql/tests/04async_query.phpt Sat May 31 08:59:19 2003 @@ -4,7 +4,62 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("async_query.inc"); + +include('config.inc'); + +$db = pg_connect($conn_str); + +if (!pg_send_query($db, "SELECT * FROM ".$table_name.";")) { + echo "pg_send_query() error\n"; +} +while(pg_connection_busy($db)); // busy wait: intended +if (pg_connection_status($db) === PGSQL_CONNECTION_BAD) { + echo "pg_connection_status() error\n"; +} +if (!($result = pg_get_result($db))) +{ + echo "pg_get_result() error\n"; +} + +if (!($rows = pg_num_rows($result))) { + echo "pg_num_rows() error\n"; +} +for ($i=0; $i < $rows; $i++) +{ + pg_fetch_array($result, $i, PGSQL_NUM); +} +for ($i=0; $i < $rows; $i++) +{ + pg_fetch_object($result, $i, PGSQL_ASSOC); +} +for ($i=0; $i < $rows; $i++) +{ + pg_fetch_row($result, $i); +} +for ($i=0; $i < $rows; $i++) +{ + pg_fetch_result($result, $i, 0); +} + +pg_num_rows(pg_query($db, "SELECT * FROM ".$table_name.";")); +pg_num_fields(pg_query($db, "SELECT * FROM ".$table_name.";")); +pg_field_name($result, 0); +pg_field_num($result, $field_name); +pg_field_size($result, 0); +pg_field_type($result, 0); +pg_field_prtlen($result, 0); +pg_field_is_null($result, 0); + +if (!pg_send_query($db, "INSERT INTO ".$table_name." VALUES (8888, 'GGG');")) +{ + echo "pg_send_query() error\n"; +} + +pg_last_oid($result); +pg_free_result($result); + + +echo "OK"; ?> --EXPECT-- OK Index: php4/ext/pgsql/tests/05large_object.phpt diff -u php4/ext/pgsql/tests/05large_object.phpt:1.1 php4/ext/pgsql/tests/05large_object.phpt:1.1.8.1 --- php4/ext/pgsql/tests/05large_object.phpt:1.1 Sun Dec 16 19:16:48 2001 +++ php4/ext/pgsql/tests/05large_object.phpt Sat May 31 08:59:19 2003 @@ -4,8 +4,78 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("large_object.inc"); + +include('config.inc'); + +$db = pg_connect($conn_str); + +echo "create/write/close LO\n"; +pg_exec ($db, "begin"); +$oid = pg_lo_create ($db); +if (!$oid) echo ("pg_lo_create() error\n"); +$handle = pg_lo_open ($db, $oid, "w"); +if (!$handle) echo ("pg_lo_open() error\n"); +pg_lo_write ($handle, "large object data\n"); +pg_lo_close ($handle); +pg_exec ($db, "commit"); + +echo "open/read/tell/seek/close LO\n"; +pg_exec ($db, "begin"); +$handle = pg_lo_open ($db, $oid, "w"); +pg_lo_read($handle, 100); +pg_lo_tell($handle); +pg_lo_seek($handle, 2); +pg_lo_close($handle); +pg_exec ($db, "commit"); + +echo "open/read_all/close LO\n"; +pg_exec ($db, "begin"); +$handle = pg_lo_open ($db, $oid, "w"); +pg_lo_read_all($handle); +if (pg_last_error()) echo "pg_lo_read_all() error\n".pg_last_error(); +pg_lo_close($handle); +pg_exec ($db, "commit"); + +echo "unlink LO\n"; +pg_exec ($db, "begin"); +pg_lo_unlink($db, $oid) or print("pg_lo_unlink() error 1\n"); +pg_exec ($db, "commit"); + +// more pg_lo_unlink() tests +echo "Test without connection\n"; +pg_exec ($db, "begin"); +$oid = pg_lo_create ($db) or print("pg_lo_create() error\n"); +pg_lo_unlink($oid) or print("pg_lo_unlink() error 2\n"); +pg_exec ($db, "commit"); + +echo "Test with string oid value\n"; +pg_exec ($db, "begin"); +$oid = pg_lo_create ($db) or print("pg_lo_create() error\n"); +pg_lo_unlink($db, (string)$oid) or print("pg_lo_unlink() error 3\n"); +pg_exec ($db, "commit"); + +echo "import/export LO\n"; +pg_query($db, 'begin'); +$oid = pg_lo_import($db, 'php.gif'); +pg_query($db, 'commit'); +pg_query($db, 'begin'); [EMAIL PROTECTED]('php.gif.exported'); +pg_lo_export($oid, 'php.gif.exported', $db); +if (!file_exists('php.gif.exported')) { + echo "Export failed\n"; +} [EMAIL PROTECTED]('php.gif.exported'); +pg_query($db, 'commit'); + +echo "OK"; ?> --EXPECT-- +create/write/close LO +open/read/tell/seek/close LO +open/read_all/close LO large object data +unlink LO +Test without connection +Test with string oid value +import/export LO OK Index: php4/ext/pgsql/tests/06copy.phpt diff -u php4/ext/pgsql/tests/06copy.phpt:1.1 php4/ext/pgsql/tests/06copy.phpt:1.1.8.1 --- php4/ext/pgsql/tests/06copy.phpt:1.1 Sun Dec 16 19:16:48 2001 +++ php4/ext/pgsql/tests/06copy.phpt Sat May 31 08:59:19 2003 @@ -4,7 +4,12 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("copy.inc"); + +include('config.inc'); + + +echo "OK"; + ?> --EXPECT-- OK Index: php4/ext/pgsql/tests/07optional.phpt diff -u php4/ext/pgsql/tests/07optional.phpt:1.1 php4/ext/pgsql/tests/07optional.phpt:1.1.8.1 --- php4/ext/pgsql/tests/07optional.phpt:1.1 Sun Dec 16 19:16:48 2001 +++ php4/ext/pgsql/tests/07optional.phpt Sat May 31 08:59:19 2003 @@ -4,7 +4,16 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("optional.inc"); +// optional functions + +include('config.inc'); + +$db = pg_connect($conn_str); +$enc = pg_client_encoding($db); + +pg_set_client_encoding($db, $enc); + +echo "OK"; ?> --EXPECT-- OK Index: php4/ext/pgsql/tests/08escape.phpt diff -u php4/ext/pgsql/tests/08escape.phpt:1.4 php4/ext/pgsql/tests/08escape.phpt:1.4.4.1 --- php4/ext/pgsql/tests/08escape.phpt:1.4 Fri Apr 19 08:24:58 2002 +++ php4/ext/pgsql/tests/08escape.phpt Sat May 31 08:59:19 2003 @@ -4,7 +4,63 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("escape.inc"); + +include 'config.inc'; +define('FILE_NAME', './php.gif'); + +// pg_escape_string() test +$before = "ABC\\ABC\'"; +$expect = "ABC\\\\ABC\\'"; +$after = pg_escape_string($before); +if ($expect === $after) { + echo "pg_escape_string() is Ok\n"; +} +else { + echo "pg_escape_string() is NOT Ok\n"; + var_dump($before); + var_dump($after); + var_dump($expect); +} + +// pg_escape_bytea() test +$before = "ABC\\ABC"; +$expect = "ABC\\\\\\\\ABC"; +$after = pg_escape_bytea($before); +if ($expect === $after) { + echo "pg_escape_bytea() is Ok\n"; +} +else { + echo "pg_escape_byte() is NOT Ok\n"; + var_dump($before); + var_dump($after); + var_dump($expect); +} + +// Test using database +$fp = fopen(FILE_NAME,'r'); +$data = fread($fp, filesize(FILE_NAME)); +$db = pg_connect($conn_str); + +// Insert binary to DB +$escaped_data = pg_escape_bytea($data); +pg_query("DELETE FROM ".$table_name." WHERE num = -9999;"); +$sql = "INSERT INTO ".$table_name." (num, bin) VALUES (-9999, CAST ('".$escaped_data."' AS BYTEA));"; +pg_query($db, $sql); + +// Retrieve binary from DB +$sql = "SELECT bin::bytea FROM ".$table_name." WHERE num = -9999"; +$result = pg_query($db, $sql); +$row = pg_fetch_array($result, 0, PGSQL_ASSOC); + +// Compare +// Need to wait PostgreSQL 7.3.x for PQunescapeBytea() +// if ($data === pg_unescape_bytea($row['bin'])) { +// echo "pg_escape_bytea() actually works with databse\n"; +// } +// else { +// echo "pg_escape_bytea() is broken\n"; +// } + ?> --EXPECT-- pg_escape_string() is NOT Ok Index: php4/ext/pgsql/tests/09notice.phpt diff -u php4/ext/pgsql/tests/09notice.phpt:1.2 php4/ext/pgsql/tests/09notice.phpt:1.2.4.1 --- php4/ext/pgsql/tests/09notice.phpt:1.2 Fri Apr 5 02:57:33 2002 +++ php4/ext/pgsql/tests/09notice.phpt Sat May 31 08:59:19 2003 @@ -2,12 +2,27 @@ PostgreSQL notice function --SKIPIF-- <?php include("skipif.inc"); ?> +--INI-- +pgsql.log_notice=1 +pgsql.ignore_notices=0 --FILE-- <?php -include("notice.inc"); -?> ---EXPECT-- -NOTICE: BEGIN: already a transaction in progress +include 'config.inc'; + +$db = pg_connect($conn_str); +pg_query($db, "BEGIN;"); +pg_query($db, "BEGIN;"); +$msg = pg_last_notice($db); +if ($msg === FALSE) { + echo "Cannot find notice message in hash\n"; + var_dump($msg); +} +echo $msg."\n"; +echo "pg_last_notice() is Ok\n"; + +?> +--EXPECTF-- +Notice: pg_query(): NOTICE: BEGIN: already a transaction in progress in %s on line %d NOTICE: BEGIN: already a transaction in progress pg_last_notice() is Ok Index: php4/ext/pgsql/tests/10pg_convert.phpt diff -u php4/ext/pgsql/tests/10pg_convert.phpt:1.2 php4/ext/pgsql/tests/10pg_convert.phpt:1.2.4.1 --- php4/ext/pgsql/tests/10pg_convert.phpt:1.2 Fri Apr 19 08:24:58 2002 +++ php4/ext/pgsql/tests/10pg_convert.phpt Sat May 31 08:59:19 2003 @@ -4,7 +4,16 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("pg_convert.inc"); +error_reporting(E_ALL); + +include 'config.inc'; + +$db = pg_connect($conn_str); + +$fields = array('num'=>'1234', 'str'=>'AAA', 'bin'=>'BBB'); +$converted = pg_convert($db, $table_name, $fields); + +var_dump($converted); ?> --EXPECT-- array(3) { Index: php4/ext/pgsql/tests/11pg_meta_data.phpt diff -u php4/ext/pgsql/tests/11pg_meta_data.phpt:1.1 php4/ext/pgsql/tests/11pg_meta_data.phpt:1.1.2.1 --- php4/ext/pgsql/tests/11pg_meta_data.phpt:1.1 Tue Oct 1 22:11:27 2002 +++ php4/ext/pgsql/tests/11pg_meta_data.phpt Sat May 31 08:59:19 2003 @@ -4,7 +4,15 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("pg_meta_data.inc"); +error_reporting(E_ALL); + +include 'config.inc'; + +$db = pg_connect($conn_str); + +$meta = pg_meta_data($db, $table_name); + +var_dump($meta); ?> --EXPECT-- array(3) { Index: php4/ext/pgsql/tests/12pg_insert.phpt diff -u php4/ext/pgsql/tests/12pg_insert.phpt:1.2 php4/ext/pgsql/tests/12pg_insert.phpt:1.2.4.1 --- php4/ext/pgsql/tests/12pg_insert.phpt:1.2 Mon Apr 22 23:42:26 2002 +++ php4/ext/pgsql/tests/12pg_insert.phpt Sat May 31 08:59:20 2003 @@ -4,7 +4,17 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("pg_insert.inc"); +error_reporting(E_ALL); + +include 'config.inc'; + +$db = pg_connect($conn_str); +$fields = array('num'=>'1234', 'str'=>'AAA', 'bin'=>'BBB'); + +pg_insert($db, $table_name, $fields) or print "Error in test 1\n"; +echo pg_insert($db, $table_name, $fields, PGSQL_DML_STRING)."\n"; + +echo "Ok\n"; ?> --EXPECT-- INSERT INTO php_pgsql_test (num,str,bin) VALUES (1234,'AAA','BBB'); Index: php4/ext/pgsql/tests/13pg_select.phpt diff -u php4/ext/pgsql/tests/13pg_select.phpt:1.2 php4/ext/pgsql/tests/13pg_select.phpt:1.2.4.1 --- php4/ext/pgsql/tests/13pg_select.phpt:1.2 Mon Apr 22 23:42:26 2002 +++ php4/ext/pgsql/tests/13pg_select.phpt Sat May 31 08:59:20 2003 @@ -4,7 +4,19 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("pg_select.inc"); +error_reporting(E_ALL); + +include 'config.inc'; + +$db = pg_connect($conn_str); +$fields = array('num'=>'1234', 'str'=>'ABC', 'bin'=>'XYZ'); +$ids = array('num'=>'1234'); + +$res = pg_select($db, $table_name, $ids) or print "Error\n"; +var_dump($res); +echo pg_select($db, $table_name, $ids, PGSQL_DML_STRING)."\n"; +echo "Ok\n"; + ?> --EXPECT-- array(1) { Index: php4/ext/pgsql/tests/14pg_update.phpt diff -u php4/ext/pgsql/tests/14pg_update.phpt:1.2 php4/ext/pgsql/tests/14pg_update.phpt:1.2.4.1 --- php4/ext/pgsql/tests/14pg_update.phpt:1.2 Mon Apr 22 23:42:26 2002 +++ php4/ext/pgsql/tests/14pg_update.phpt Sat May 31 08:59:20 2003 @@ -4,7 +4,18 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("pg_update.inc"); +error_reporting(E_ALL); + +include 'config.inc'; + +$db = pg_connect($conn_str); +$fields = array('num'=>'1234', 'str'=>'ABC', 'bin'=>'XYZ'); +$ids = array('num'=>'1234'); + +pg_update($db, $table_name, $fields, $ids) or print "Error in test 1\n"; +echo pg_update($db, $table_name, $fields, $ids, PGSQL_DML_STRING)."\n"; + +echo "Ok\n"; ?> --EXPECT-- UPDATE php_pgsql_test SET num=1234,str='ABC',bin='XYZ' WHERE num=1234; Index: php4/ext/pgsql/tests/15pg_delete.phpt diff -u php4/ext/pgsql/tests/15pg_delete.phpt:1.1 php4/ext/pgsql/tests/15pg_delete.phpt:1.1.4.1 --- php4/ext/pgsql/tests/15pg_delete.phpt:1.1 Sun Apr 7 21:37:38 2002 +++ php4/ext/pgsql/tests/15pg_delete.phpt Sat May 31 08:59:20 2003 @@ -4,7 +4,20 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("pg_delete.inc"); +error_reporting(E_ALL); + +include 'config.inc'; + +$db = pg_connect($conn_str); + +$fields = array('num'=>'1234', 'str'=>'XXX', 'bin'=>'YYY'); +$ids = array('num'=>'1234'); +if (!pg_delete($db, $table_name, $ids)) { + echo "Error\n"; +} +else { + echo "Ok\n"; +} ?> --EXPECT-- Ok Index: php4/ext/pgsql/tests/16pg_result_status.phpt diff -u php4/ext/pgsql/tests/16pg_result_status.phpt:1.1 php4/ext/pgsql/tests/16pg_result_status.phpt:1.1.4.1 --- php4/ext/pgsql/tests/16pg_result_status.phpt:1.1 Sun Apr 7 21:37:38 2002 +++ php4/ext/pgsql/tests/16pg_result_status.phpt Sat May 31 08:59:20 2003 @@ -4,7 +4,15 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("pg_result_status.inc"); +include 'config.inc'; + +$db = pg_connect($conn_str); + +$sql = "SELECT * FROM ".$table_name." WHERE num = -2"; +$result = pg_query($db, "BEGIN;END"); + +echo pg_result_status($result)."\n"; +echo pg_result_status($result, PGSQL_STATUS_STRING)."\n"; ?> --EXPECT-- 1 Index: php4/ext/pgsql/tests/17result.phpt diff -u php4/ext/pgsql/tests/17result.phpt:1.2 php4/ext/pgsql/tests/17result.phpt:1.2.2.1 --- php4/ext/pgsql/tests/17result.phpt:1.2 Fri Oct 18 03:52:09 2002 +++ php4/ext/pgsql/tests/17result.phpt Sat May 31 08:59:20 2003 @@ -4,10 +4,26 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("result.inc"); +error_reporting(E_ALL); + +include 'config.inc'; + +$db = pg_connect($conn_str); + +$sql = "SELECT * FROM $table_name"; +$result = pg_query($db, $sql) or die('Cannot qeury db'); +$rows = pg_num_rows($result); + +var_dump(pg_fetch_object($result, 1)); +var_dump(pg_fetch_array($result, 1)); +var_dump(pg_fetch_row($result, 1)); +var_dump(pg_fetch_assoc($result, 1)); +var_dump(pg_result_seek($result, 0)); + +echo "Ok\n"; ?> --EXPECT-- -object(stdClass)(3) { +object(stdClass)#1 (3) { ["num"]=> string(1) "1" ["str"]=> @@ -39,7 +55,7 @@ } array(3) { ["num"]=> - string(1) "2" + string(1) "1" ["str"]=> string(3) "ABC" ["bin"]=> Index: php4/ext/pgsql/tests/18pg_escape_bytea.phpt diff -u php4/ext/pgsql/tests/18pg_escape_bytea.phpt:1.1 php4/ext/pgsql/tests/18pg_escape_bytea.phpt:1.1.2.1 --- php4/ext/pgsql/tests/18pg_escape_bytea.phpt:1.1 Fri Oct 18 03:52:09 2002 +++ php4/ext/pgsql/tests/18pg_escape_bytea.phpt Sat May 31 08:59:20 2003 @@ -4,7 +4,26 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("pg_escape_bytea.inc"); +// optional functions + +include('config.inc'); + +$fp = fopen('php.gif', 'r'); +$image = fread($fp, filesize('php.gif')); +$esc_image = pg_escape_bytea($image); + +$db = pg_connect($conn_str); +pg_query($db, 'INSERT INTO '.$table_name.' (num, bin) VALUES (9876, \''.$esc_image.'\');'); +$result = pg_query($db, 'SELECT * FROM '.$table_name.' WHERE num = 9876'); +$rows = pg_fetch_all($result); +$unesc_image = pg_unescape_bytea($rows[0]['bin']); + +if ($unesc_image !== $image) { + echo "NG"; +} +else { + echo "OK"; +} ?> --EXPECT-- OK Index: php4/ext/pgsql/tests/19pg_ping.phpt diff -u php4/ext/pgsql/tests/19pg_ping.phpt:1.1 php4/ext/pgsql/tests/19pg_ping.phpt:1.1.2.1 --- php4/ext/pgsql/tests/19pg_ping.phpt:1.1 Fri Oct 18 03:52:09 2002 +++ php4/ext/pgsql/tests/19pg_ping.phpt Sat May 31 08:59:20 2003 @@ -4,7 +4,12 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("pg_ping.inc"); +// optional functions + +include('config.inc'); + +$db = pg_connect($conn_str); +var_dump(pg_ping($db)); ?> --EXPECT-- bool(true) Index: php4/ext/pgsql/tests/20pg_get_pid.phpt diff -u php4/ext/pgsql/tests/20pg_get_pid.phpt:1.1 php4/ext/pgsql/tests/20pg_get_pid.phpt:1.1.2.1 --- php4/ext/pgsql/tests/20pg_get_pid.phpt:1.1 Fri Oct 18 03:52:09 2002 +++ php4/ext/pgsql/tests/20pg_get_pid.phpt Sat May 31 08:59:20 2003 @@ -4,7 +4,14 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("pg_get_pid.inc"); +// optional functions + +include('config.inc'); + +$db = pg_connect($conn_str); +$pid = pg_get_pid($db); + +is_integer($pid) ? print 'OK' : print 'NG'; ?> --EXPECT-- OK Index: php4/ext/pgsql/tests/21pg_get_notify.phpt diff -u php4/ext/pgsql/tests/21pg_get_notify.phpt:1.1 php4/ext/pgsql/tests/21pg_get_notify.phpt:1.1.2.1 --- php4/ext/pgsql/tests/21pg_get_notify.phpt:1.1 Fri Oct 18 03:52:09 2002 +++ php4/ext/pgsql/tests/21pg_get_notify.phpt Sat May 31 08:59:20 2003 @@ -4,7 +4,17 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("pg_get_notify.inc"); +// optional functions + +include('config.inc'); + +$db = pg_connect($conn_str); +pg_query($db, 'LISTEN test_msg'); +pg_query($db, 'NOTIFY test_msg'); + +$msg = pg_get_notify($db); + +isset($msg['message'],$msg['pid']) ? print 'OK' : print 'NG'; ?> --EXPECT-- OK Index: php4/ext/pgsql/tests/98old_api.phpt diff -u php4/ext/pgsql/tests/98old_api.phpt:1.1 php4/ext/pgsql/tests/98old_api.phpt:1.1.8.1 --- php4/ext/pgsql/tests/98old_api.phpt:1.1 Sun Dec 16 19:16:48 2001 +++ php4/ext/pgsql/tests/98old_api.phpt Sat May 31 08:59:20 2003 @@ -4,7 +4,30 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("old_api.inc"); + +include('config.inc'); + +$db = pg_connect($conn_str); +$result = pg_exec("SELECT * FROM ".$table_name); +pg_numrows($result); +pg_numfields($result); +pg_fieldname($result, 0); +pg_fieldsize($result, $field_name); +pg_fieldtype($result, 0); +pg_fieldprtlen($result, 0); +pg_fieldisnull($result, 0); + +pg_result($result,0,0); +$result = pg_exec("INSERT INTO ".$table_name." VALUES (7777, 'KKK')"); +$oid = pg_getlastoid($result); +pg_freeresult($result); +pg_errormessage(); +$result = pg_exec("UPDATE ".$table_name." SET str = 'QQQ' WHERE str like 'RGD';"); +pg_cmdtuples($result); + + + +echo "OK"; ?> --EXPECT-- OK Index: php4/ext/pgsql/tests/9999dropdb.phpt diff -u php4/ext/pgsql/tests/9999dropdb.phpt:1.1 php4/ext/pgsql/tests/9999dropdb.phpt:1.1.8.1 --- php4/ext/pgsql/tests/9999dropdb.phpt:1.1 Sun Dec 16 19:16:48 2001 +++ php4/ext/pgsql/tests/9999dropdb.phpt Sat May 31 08:59:20 2003 @@ -4,7 +4,15 @@ <?php include("skipif.inc"); ?> --FILE-- <?php -include("dropdb.inc"); +// drop test table + +include('config.inc'); + +$db = pg_connect($conn_str); +pg_query($db, "DROP TABLE ".$table_name); + +echo "OK"; + ?> --EXPECT-- OK Index: php4/ext/pgsql/tests/README diff -u php4/ext/pgsql/tests/README:1.1 php4/ext/pgsql/tests/README:1.1.2.1 --- php4/ext/pgsql/tests/README:1.1 Fri Oct 18 03:52:09 2002 +++ php4/ext/pgsql/tests/README Sat May 31 08:59:20 2003 @@ -1,14 +1,16 @@ -Test scripts assume: +Test scripts assumes: - PostgreSQL server is installed locally - - there is a PostgreSQL account for the users running test script + - there is a PostgreSQL account for the users running the test scripts - there is database named "test" -For instance, if you login name is 'testuser', you should -have PostgreSQL user account named 'testuser' and have 'test' -database. +For instance, if your login name is 'testuser', you should have PostgreSQL +user account named 'testuser' and grant that user access to the database +'test'. -If you have account and database, type "createdb test" from -command prompt to create database to execute test scripts. +If you have account and database, type "createdb test" from command prompt +to create the database to execute the test scripts. By executing the above +command as the same user running the tests you ensure that the user is +granted access to the database. If you find problems in PostgreSQL module, please mail to [EMAIL PROTECTED] or [EMAIL PROTECTED] [EMAIL PROTECTED], [EMAIL PROTECTED] or [EMAIL PROTECTED]
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php