1--TEST-- 2Bug #47199 (pg_delete fails on NULL) 3--SKIPIF-- 4<?php 5require_once('skipif.inc'); 6?> 7--FILE-- 8<?php 9 10require_once('config.inc'); 11 12$dbh = pg_connect($conn_str); 13$tbl_name = 'test_47199'; 14@pg_query("DROP TABLE $tbl_name"); 15pg_query("CREATE TABLE $tbl_name (null_field INT, not_null_field INT NOT NULL)"); 16 17pg_insert($dbh, $tbl_name, array('null_field' => null, 'not_null_field' => 1)); 18pg_insert($dbh, $tbl_name, array('null_field' => null, 'not_null_field' => 2)); 19 20var_dump(pg_fetch_all(pg_query('SELECT * FROM '. $tbl_name))); 21 22$query = pg_delete($dbh, $tbl_name, array('null_field' => NULL,'not_null_field' => 2), PGSQL_DML_STRING|PGSQL_DML_EXEC); 23 24echo $query, "\n"; 25 26$query = pg_update($dbh, $tbl_name, array('null_field' => NULL, 'not_null_field' => 0), array('not_null_field' => 1, 'null_field' => ''), PGSQL_DML_STRING|PGSQL_DML_EXEC); 27 28echo $query, "\n"; 29 30var_dump(pg_fetch_all(pg_query('SELECT * FROM '. $tbl_name))); 31 32@pg_query("DROP TABLE $tbl_name"); 33pg_close($dbh); 34 35echo PHP_EOL."Done".PHP_EOL; 36 37?> 38--EXPECTF-- 39array(2) { 40 [0]=> 41 array(2) { 42 ["null_field"]=> 43 NULL 44 ["not_null_field"]=> 45 string(1) "1" 46 } 47 [1]=> 48 array(2) { 49 ["null_field"]=> 50 NULL 51 ["not_null_field"]=> 52 string(1) "2" 53 } 54} 55DELETE FROM "test_47199" WHERE "null_field" IS NULL AND "not_null_field"=2; 56UPDATE "test_47199" SET "null_field"=NULL,"not_null_field"=0 WHERE "not_null_field"=1 AND "null_field" IS NULL; 57array(1) { 58 [0]=> 59 array(2) { 60 ["null_field"]=> 61 NULL 62 ["not_null_field"]=> 63 string(1) "0" 64 } 65} 66 67Done