Skip to content

FETCH_LAZY not properly supported for "long" columns #9828

Open
@cmb69

Description

@cmb69

Description

The following code:

<?php
const SIZE = 300;
$pdo = new PDO(DSN, USER, PASS);
$pdo->exec("CREATE TABLE gh9498 (name VARCHAR(" . SIZE . "))");
$pdo->exec("INSERT INTO gh9498 VALUES ('" . str_repeat("a", SIZE) . "')");
$statement = $pdo->prepare("SELECT * FROM gh9498");
$statement->execute();
$row = $statement->fetch(PDO::FETCH_LAZY);
var_dump($row);
var_dump($row);

Resulted in this output:

object(PDORow)#3 (2) {
  ["queryString"]=>
  string(20) "SELECT * FROM gh9498"
  ["name"]=>
  string(300) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
object(PDORow)#3 (2) {
  ["queryString"]=>
  string(20) "SELECT * FROM gh9498"
  ["name"]=>
  NULL
}

But I expected this output instead:

object(PDORow)#3 (2) {
  ["queryString"]=>
  string(20) "SELECT * FROM gh9498"
  ["name"]=>
  string(300) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
object(PDORow)#3 (2) {
  ["queryString"]=>
  string(20) "SELECT * FROM gh9498"
  ["name"]=>
  string(300) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}

Obviously, accessing the row for the first time works as expected, but accessing it another time, does not. If SIZE < 256, accessing the row multiple times is properly supported.

PHP Version

PHP-8.0

Operating System

any

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions