diff options
Diffstat (limited to 'ext/pgsql/tests')
| -rwxr-xr-x | ext/pgsql/tests/80_bug32223b.phpt | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/ext/pgsql/tests/80_bug32223b.phpt b/ext/pgsql/tests/80_bug32223b.phpt new file mode 100755 index 0000000000..010915e82c --- /dev/null +++ b/ext/pgsql/tests/80_bug32223b.phpt @@ -0,0 +1,57 @@ +--TEST-- +Bug #32223 (weird behaviour of pg_last_notice using 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 + +require('config.inc'); + +define ('dbh', pg_connect($conn_str)); +//$dbh = @pg_connect($conn_str); +if (!dbh) { + die ("Could not connect to the server"); +} + +//@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;"); + +function tester() { + $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(pg_last_notice(dbh)); + } +} +tester(); + +pg_close(dbh); + +?> +===DONE=== +--EXPECTF-- +array(1) { + [0]=> + string(1) "f" +} +string(14) "NOTICE: 11111" +===DONE=== |
