summaryrefslogtreecommitdiff
path: root/ext/pgsql/tests/pg_delete_001.phpt
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2008-10-16 00:39:31 +0000
committerFelipe Pena <felipe@php.net>2008-10-16 00:39:31 +0000
commit8563497a94d6961ceec44305cbb4f6750cf0cc49 (patch)
tree015aba253dad3d6820616e7e980bf3663b3c6d6c /ext/pgsql/tests/pg_delete_001.phpt
parent5a28412ad210149cd819bd20a13487f0dd850085 (diff)
downloadphp-git-8563497a94d6961ceec44305cbb4f6750cf0cc49.tar.gz
MFH:
- Fixed: . Memory leak in pg_delete() when using PGSQL_DML_STRING. . Bug #24679 (pg_insert problem!) . Bug #35996 (pg_meta_data should take the schema into account) . Bug #40808 (pg_insert problem) . Bug #42078 (pg_meta_data mix tables metadata from different schemas) - Improved: . Error messages - Added: . Tests
Diffstat (limited to 'ext/pgsql/tests/pg_delete_001.phpt')
-rw-r--r--ext/pgsql/tests/pg_delete_001.phpt86
1 files changed, 86 insertions, 0 deletions
diff --git a/ext/pgsql/tests/pg_delete_001.phpt b/ext/pgsql/tests/pg_delete_001.phpt
new file mode 100644
index 0000000000..abb65be142
--- /dev/null
+++ b/ext/pgsql/tests/pg_delete_001.phpt
@@ -0,0 +1,86 @@
+--TEST--
+PostgreSQL pg_delete() - basic test using schema
+--SKIPIF--
+<?php include("skipif.inc"); ?>
+--FILE--
+<?php
+
+include('config.inc');
+
+$conn = pg_connect($conn_str);
+
+pg_query('CREATE SCHEMA phptests');
+
+pg_query('CREATE TABLE foo (id INT, id2 INT)');
+pg_query('CREATE TABLE phptests.foo (id INT, id2 INT)');
+
+pg_insert($conn, 'foo', array('id' => 1, 'id2' => 1));
+pg_insert($conn, 'foo', array('id' => 1, 'id2' => 2));
+pg_insert($conn, 'foo', array('id' => 1, 'id2' => 2));
+pg_insert($conn, 'foo', array('id' => 3, 'id2' => 3));
+
+pg_insert($conn, 'phptests.foo', array('id' => 1, 'id2' => 1));
+pg_insert($conn, 'phptests.foo', array('id' => 1, 'id2' => 2));
+pg_insert($conn, 'phptests.foo', array('id' => 2, 'id2' => 3));
+pg_insert($conn, 'phptests.foo', array('id' => 2, 'id2' => 3));
+
+pg_delete($conn, 'foo', array('id' => 1, 'id2' => 0));
+pg_delete($conn, 'foo', array('id' => 1, 'id2' => 2));
+var_dump(pg_delete($conn, 'foo', array('id' => 1, 'id2' => 2), PGSQL_DML_STRING));
+
+pg_delete($conn, 'phptests.foo', array('id' => 2, 'id2' => 1));
+pg_delete($conn, 'phptests.foo', array('id' => 2, 'id2' => 3));
+var_dump(pg_delete($conn, 'phptests.foo', array('id' => 2, 'id2' => 3), PGSQL_DML_STRING));
+
+var_dump(pg_fetch_all(pg_query('SELECT * FROM foo')));
+var_dump(pg_fetch_all(pg_query('SELECT * FROM phptests.foo')));
+
+/* Inexistent */
+pg_delete($conn, 'bar', array('id' => 1, 'id2' => 2));
+var_dump(pg_delete($conn, 'bar', array('id' => 1, 'id2' => 2), PGSQL_DML_STRING));
+
+pg_query('DROP TABLE foo');
+pg_query('DROP TABLE phptests.foo');
+pg_query('DROP SCHEMA phptests');
+
+?>
+--EXPECTF--
+string(37) "DELETE FROM foo WHERE id=1 AND id2=2;"
+string(46) "DELETE FROM phptests.foo WHERE id=2 AND id2=3;"
+array(2) {
+ [0]=>
+ array(2) {
+ ["id"]=>
+ string(1) "1"
+ ["id2"]=>
+ string(1) "1"
+ }
+ [1]=>
+ array(2) {
+ ["id"]=>
+ string(1) "3"
+ ["id2"]=>
+ string(1) "3"
+ }
+}
+array(2) {
+ [0]=>
+ array(2) {
+ ["id"]=>
+ string(1) "1"
+ ["id2"]=>
+ string(1) "1"
+ }
+ [1]=>
+ array(2) {
+ ["id"]=>
+ string(1) "1"
+ ["id2"]=>
+ string(1) "2"
+ }
+}
+
+Warning: pg_delete(): Table 'bar' doesn't exists in %s on line %d
+
+Warning: pg_delete(): Table 'bar' doesn't exists in %s on line %d
+bool(false)