bug47199.phpt 1.5 KB

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