1--TEST--
2PDO PgSQL PGSQL_ATTR_DISABLE_PREPARES
3--SKIPIF--
4<?php
5if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded');
6require __DIR__ . '/config.inc';
7require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc';
8PDOTest::skip();
9?>
10--FILE--
11<?php
12require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc';
13$db = PDOTest::test_factory(__DIR__ . '/common.phpt');
14$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
15$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_COLUMN);
16
17$stmt = $db->prepare("SELECT statement FROM pg_prepared_statements", array(
18    PDO::ATTR_EMULATE_PREPARES => true));
19
20$stmt2 = $db->prepare("SELECT (?)::int2");
21$stmt2->execute(array(1));
22var_dump($stmt2->fetch());
23$stmt2->execute(array(2));
24var_dump($stmt2->fetch());
25
26$stmt->execute();
27$first = $stmt->fetchAll();
28
29$stmt3 = $db->prepare("SELECT (?)::int4", array(
30    PDO::PGSQL_ATTR_DISABLE_PREPARES => true));
31$stmt3->execute(array(3));
32var_dump($stmt3->fetch());
33$stmt3->execute(array(4));
34var_dump($stmt3->fetch());
35
36$stmt->execute();
37$second = $stmt->fetchAll();
38
39var_dump($first, $second);
40
41?>
42--EXPECT--
43string(1) "1"
44string(1) "2"
45string(1) "3"
46string(1) "4"
47array(1) {
48  [0]=>
49  string(17) "SELECT ($1)::int2"
50}
51array(1) {
52  [0]=>
53  string(17) "SELECT ($1)::int2"
54}
55