--TEST--
-Bug #27597 pg_fetch_array not returning false
+Bug #32223 (weird behaviour of pg_last_notice)
--SKIPIF--
<?php
require_once('skipif.inc');
+
+@pg_query($conn, "CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler LANCOMPILER 'PL/pgSQL'");
+$res = @pg_query($conn, "CREATE OR REPLACE FUNCTION test_notice() RETURNS boolean AS '
+begin
+ RAISE NOTICE ''11111'';
+ return ''f'';
+end;
+' LANGUAGE plpgsql;");
+if (!$res) die('skip PLPGSQL not available');
?>
--FILE--
<?php
die ("Could not connect to the server");
}
-pg_query($dbh, "CREATE OR REPLACE FUNCTION test_notice() RETURNS boolean AS '
+//@pg_query($dbh, "CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler LANCOMPILER 'PL/pgSQL'");
+$res = pg_query($dbh, "CREATE OR REPLACE FUNCTION test_notice() RETURNS boolean AS '
begin
RAISE NOTICE ''11111'';
return ''f'';
end;
' LANGUAGE plpgsql;");
-try
-{
- $res = pg_query($dbh, 'SELECT test_notice()');
- $row = pg_fetch_row($res, 0);
- var_dump($row);
- pg_free_result($res);
- if ($row[0] == 'f')
- {
- throw new Exception(pg_last_notice($dbh));
- }
- echo 2;
-}
-catch (Exception $e)
+
+$res = pg_query($dbh, 'SELECT test_notice()');
+$row = pg_fetch_row($res, 0);
+var_dump($row);
+pg_free_result($res);
+if ($row[0] == 'f')
{
- var_dump($e->getMessage());
+ var_dump(pg_last_notice($dbh));
}
pg_close($dbh);