bug47199.phpt 1.6 KB

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