1--TEST--
2PDO_Firebird: support 1 sql dialect
3--EXTENSIONS--
4pdo_firebird
5--SKIPIF--
6<?php require('skipif.inc');
7if (strpos(getenv('PDO_FIREBIRD_TEST_DSN'), 'dialect=1')===false) {
8    die('skip: PDO_FIREBIRD_TEST_DSN must contain a string "dialect=1"');
9}
10?>
11--XLEAK--
12A bug in firebird causes a memory leak when calling `isc_attach_database()`.
13See https://github.com/FirebirdSQL/firebird/issues/7849
14--FILE--
15<?php
16require("testdb.inc");
17
18$dbh = getDbConnection();
19$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
20$dbh->setAttribute(PDO::FB_ATTR_TIMESTAMP_FORMAT, '%Y-%m-%d %H:%M:%S');
21
22$sql =
23'SELECT
24  1 as N,
25  2.0 as F,
26  cast(0.76 as numeric(15, 2)) as K,
27  cast(\'2019-06-12\' as date) as DT
28FROM RDB$DATABASE';
29$query = $dbh->prepare($sql);
30$query->execute();
31$row = $query->fetch(\PDO::FETCH_OBJ);
32var_dump($row->N);
33var_dump($row->F);
34var_dump($row->K);
35var_dump($row->DT);
36
37unset($query);
38
39$dbh->exec('RECREATE TABLE test_dialect_1(K numeric(15, 2), DT date)');
40$sql='INSERT INTO test_dialect_1(K, DT) values(?, ?)';
41$query = $dbh->prepare($sql);
42$query->execute([0.76, '2019-06-12']);
43unset($query);
44
45$sql='SELECT * FROM test_dialect_1';
46$query = $dbh->prepare($sql);
47$query->execute();
48$row = $query->fetch(\PDO::FETCH_OBJ);
49var_dump($row->K);
50var_dump($row->DT);
51
52unset($query);
53unset($dbh);
54echo "done\n";
55
56?>
57--CLEAN--
58<?php
59require 'testdb.inc';
60$dbh = getDbConnection();
61@$dbh->exec('DROP TABLE test_dialect_1');
62unset($dbh);
63--EXPECT--
64int(1)
65string(8) "2.000000"
66string(4) "0.76"
67string(19) "2019-06-12 00:00:00"
68string(4) "0.76"
69string(19) "2019-06-12 00:00:00"
70done
71