/** * This should not exhaust memory */ public function testLargeTableIterate() { $generateRowsCount = 1000000; $this->connection->query(sprintf("\n CREATE TABLE \"bigData\" AS\n SELECT \n uniform(1, 10, random()) as \"col1\",\n uniform(1, 10, random()) as \"col2\",\n uniform(1, 10, random()) as \"col3\"\n FROM TABLE(GENERATOR(rowCount => {$generateRowsCount})) v ORDER BY 1;\n ", $this->destSchemaName)); $results = ['count' => 0]; $callback = function ($row) use(&$results) { $results['count'] = $results['count'] + 1; }; $this->connection->fetch(sprintf("SELECT * FROM %s.%s", $this->connection->quoteIdentifier($this->destSchemaName), $this->connection->quoteIdentifier("bigData")), [], $callback); $this->assertEquals($generateRowsCount, $results['count']); }
protected function quoteIdentifier($value) { return $this->connection->quoteIdentifier($value); }