Example #1
0
 /**
  * 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']);
 }