mirror of
https://github.com/php/php-src.git
synced 2026-03-31 12:42:29 +02:00
This patch adds missing newlines, trims multiple redundant final newlines into a single one, and trims redundant leading newlines in all *.phpt sections. According to POSIX, a line is a sequence of zero or more non-' <newline>' characters plus a terminating '<newline>' character. [1] Files should normally have at least one final newline character. C89 [2] and later standards [3] mention a final newline: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character." Although it is not mandatory for all files to have a final newline fixed, a more consistent and homogeneous approach brings less of commit differences issues and a better development experience in certain text editors and IDEs. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206 [2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2 [3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
113 lines
3.6 KiB
PHP
113 lines
3.6 KiB
PHP
--TEST--
|
|
PDO PgSQL Bug #75402 Possible Memory Leak using PDO::CURSOR_SCROLL option
|
|
--SKIPIF--
|
|
<?php
|
|
if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded');
|
|
require dirname(__FILE__) . '/config.inc';
|
|
require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
|
|
PDOTest::skip();
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
|
|
$db = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
|
|
|
|
$resp = new \stdClass();
|
|
$resp->entries = [];
|
|
|
|
$db->query('DROP TABLE IF EXISTS bug75402 CASCADE');
|
|
$db->query('CREATE TABLE bug75402 (
|
|
"id" character varying(64) NOT NULL,
|
|
"group_id" character varying(64) NOT NULL,
|
|
"submitter" character varying(320) NOT NULL,
|
|
"operation" character varying(32) NOT NULL,
|
|
"description" character varying(320) NOT NULL,
|
|
"stage" character varying(16) NOT NULL,
|
|
"status" character varying(64) NOT NULL,
|
|
"progress" integer NOT NULL,
|
|
"insert_datetime" timestamp(3) NOT NULL,
|
|
"begin_datetime" timestamp(3),
|
|
"end_datetime" timestamp(3),
|
|
"life_hours" integer NOT NULL,
|
|
"family" character varying(32) NOT NULL,
|
|
"parallelism_group" character varying(32) NOT NULL,
|
|
"max_parallelism" integer NOT NULL,
|
|
"hidden" boolean NOT NULL,
|
|
"abort" boolean NOT NULL,
|
|
"order_folder_pathname" character varying(320),
|
|
"worker" character varying(32) NOT NULL,
|
|
CONSTRAINT "pk_bug75402" PRIMARY KEY ("id")
|
|
) WITH (oids = false);');
|
|
|
|
|
|
|
|
$db->query("INSERT INTO bug75402 (\"id\", \"group_id\", \"submitter\", \"operation\", \"description\", \"stage\", \"status\", \"progress\", \"insert_datetime\", \"begin_datetime\", \"end_datetime\", \"life_hours\", \"family\", \"parallelism_group\", \"max_parallelism\", \"hidden\", \"abort\", \"order_folder_pathname\", \"worker\") VALUES
|
|
('20171016083645_5337', 'G_20171016083645_5337', 'TESTPetunia', 'IMPORT', '', 'DON', 'Completed', 100, '2017-10-16 08:36:45', '2017-10-16 08:36:46', '2017-10-16 08:36:46', 96, 'IMPORT', '', -1, 'f', 'f', 'C:\ProgramData\TestPath\TestApp\Jobs\Jobs\\20171016083645_5337', 'MainService')");
|
|
|
|
|
|
|
|
$sql = "SELECT
|
|
ID as \"sID\",
|
|
GROUP_ID as \"sGroupID\",
|
|
SUBMITTER as \"sOwner\",
|
|
OPERATION as \"sOperation\",
|
|
DESCRIPTION as \"sInfo\",
|
|
STAGE as \"sShortStatus\",
|
|
STATUS as \"sStatus\",
|
|
PROGRESS as \"sProgress\",
|
|
HIDDEN as \"bHidden\",
|
|
to_char(INSERT_DATETIME, 'IYYY.MM.DD HH24:MI:SS') as \"sDatetime\"
|
|
FROM bug75402
|
|
ORDER BY INSERT_DATETIME DESC";
|
|
|
|
if ($db) {
|
|
$stmt = $db->prepare($sql,
|
|
array(
|
|
// With the following options memory is not being
|
|
// deallocated
|
|
\PDO::ATTR_CURSOR => \PDO::CURSOR_SCROLL
|
|
// With the following option memory is de-allocated
|
|
// \PDO::ATTR_CURSOR => \PDO::CURSOR_FWDONLY
|
|
)
|
|
);
|
|
$stmt->execute();
|
|
|
|
while ($entry = $stmt->fetchObject()) {
|
|
$resp->entries [] = $entry;
|
|
}
|
|
$stmt->closeCursor();
|
|
$stmt = null;
|
|
$db = null;
|
|
}
|
|
|
|
var_dump($resp);
|
|
--EXPECT--
|
|
object(stdClass)#2 (1) {
|
|
["entries"]=>
|
|
array(1) {
|
|
[0]=>
|
|
object(stdClass)#4 (10) {
|
|
["sid"]=>
|
|
string(19) "20171016083645_5337"
|
|
["sgroupid"]=>
|
|
string(21) "G_20171016083645_5337"
|
|
["sowner"]=>
|
|
string(11) "TESTPetunia"
|
|
["soperation"]=>
|
|
string(6) "IMPORT"
|
|
["sinfo"]=>
|
|
string(0) ""
|
|
["sshortstatus"]=>
|
|
string(3) "DON"
|
|
["sstatus"]=>
|
|
string(9) "Completed"
|
|
["sprogress"]=>
|
|
string(3) "100"
|
|
["bhidden"]=>
|
|
bool(false)
|
|
["sdatetime"]=>
|
|
string(19) "2017.10.16 08:36:45"
|
|
}
|
|
}
|
|
}
|