diff --git a/dibi/drivers/firebird.php b/dibi/drivers/firebird.php index 312eb96d..afbb1233 100644 --- a/dibi/drivers/firebird.php +++ b/dibi/drivers/firebird.php @@ -354,6 +354,17 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD + /** + * Automatically frees the resources allocated for this result set. + * @return void + */ + public function __destruct() + { + $this->resultSet && @$this->free(); + } + + + /** * Returns the number of rows in a result set. * @return int @@ -460,7 +471,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD 'view' => $row[1] === 'TRUE', ); } - $res->free(); return $tables; } @@ -517,7 +527,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD 'autoincrement' => FALSE, ); } - $res->free(); return $columns; } @@ -553,7 +562,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD $indexes[$key]['table'] = $table; $indexes[$key]['columns'][$row['FIELD_POSITION']] = $row['FIELD_NAME']; } - $res->free(); return $indexes; } @@ -585,7 +593,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD 'table' => $table, ); } - $res->free(); return $keys; } @@ -609,7 +616,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD while ($row = $res->fetch(FALSE)) { $indices[] = $row[0]; } - $res->free(); return $indices; } @@ -635,7 +641,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD while ($row = $res->fetch(FALSE)) { $constraints[] = $row[0]; } - $res->free(); return $constraints; } @@ -686,7 +691,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD 'enabled' => trim($row['TRIGGER_ENABLED']) === 'TRUE', ); } - $res->free(); return $triggers; } @@ -710,7 +714,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD while ($row = $res->fetch(FALSE)) { $triggers[] = $row[0]; } - $res->free(); return $triggers; } @@ -765,7 +768,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD $procedures[$key]['params'][$io][$num]['type'] = trim($row['FIELD_TYPE']); $procedures[$key]['params'][$io][$num]['size'] = $row['FIELD_LENGTH']; } - $res->free(); return $procedures; } @@ -785,7 +787,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD while ($row = $res->fetch(FALSE)) { $procedures[] = $row[0]; } - $res->free(); return $procedures; } @@ -806,7 +807,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD while ($row = $res->fetch(FALSE)) { $generators[] = $row[0]; } - $res->free(); return $generators; } @@ -827,7 +827,6 @@ class DibiFirebirdDriver extends DibiObject implements IDibiDriver, IDibiResultD while ($row = $res->fetch(FALSE)) { $functions[] = $row[0]; } - $res->free(); return $functions; } diff --git a/dibi/drivers/mssql.php b/dibi/drivers/mssql.php index 999ef71f..070d40ba 100644 --- a/dibi/drivers/mssql.php +++ b/dibi/drivers/mssql.php @@ -301,6 +301,17 @@ class DibiMsSqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv + /** + * Automatically frees the resources allocated for this result set. + * @return void + */ + public function __destruct() + { + $this->resultSet && @$this->free(); + } + + + /** * Returns the number of rows in a result set. * @return int diff --git a/dibi/drivers/mssql2005.php b/dibi/drivers/mssql2005.php index d00dd41a..2312bbe5 100644 --- a/dibi/drivers/mssql2005.php +++ b/dibi/drivers/mssql2005.php @@ -308,6 +308,17 @@ class DibiMsSql2005Driver extends DibiObject implements IDibiDriver, IDibiResult + /** + * Automatically frees the resources allocated for this result set. + * @return void + */ + public function __destruct() + { + $this->resultSet && @$this->free(); + } + + + /** * Returns the number of rows in a result set. * @return int diff --git a/dibi/drivers/mysql.php b/dibi/drivers/mysql.php index d0c5e3d5..a00094f6 100644 --- a/dibi/drivers/mysql.php +++ b/dibi/drivers/mysql.php @@ -379,6 +379,17 @@ class DibiMySqlDriver extends DibiObject implements IDibiDriver, IDibiResultDriv + /** + * Automatically frees the resources allocated for this result set. + * @return void + */ + public function __destruct() + { + $this->resultSet && @$this->free(); + } + + + /** * Returns the number of rows in a result set. * @return int diff --git a/dibi/drivers/mysql.reflector.php b/dibi/drivers/mysql.reflector.php index d38f1c27..e0d7e11f 100644 --- a/dibi/drivers/mysql.reflector.php +++ b/dibi/drivers/mysql.reflector.php @@ -51,7 +51,6 @@ class DibiMySqlReflector extends DibiObject implements IDibiReflector 'view' => isset($row[1]) && $row[1] === 'VIEW', ); } - $res->free(); return $tables; } @@ -86,7 +85,6 @@ class DibiMySqlReflector extends DibiObject implements IDibiReflector 'vendor' => $row, ); } - $res->free(); return $columns; } @@ -114,7 +112,6 @@ class DibiMySqlReflector extends DibiObject implements IDibiReflector $indexes[$row['Key_name']]['primary'] = $row['Key_name'] === 'PRIMARY'; $indexes[$row['Key_name']]['columns'][$row['Seq_in_index'] - 1] = $row['Column_name']; } - $res->free(); return array_values($indexes); } diff --git a/dibi/drivers/mysqli.php b/dibi/drivers/mysqli.php index c9dcca9f..e745e566 100644 --- a/dibi/drivers/mysqli.php +++ b/dibi/drivers/mysqli.php @@ -375,6 +375,17 @@ class DibiMySqliDriver extends DibiObject implements IDibiDriver, IDibiResultDri + /** + * Automatically frees the resources allocated for this result set. + * @return void + */ + public function __destruct() + { + $this->resultSet && @$this->free(); + } + + + /** * Returns the number of rows in a result set. * @return int diff --git a/dibi/drivers/odbc.php b/dibi/drivers/odbc.php index 5ff4de51..0ce4f828 100644 --- a/dibi/drivers/odbc.php +++ b/dibi/drivers/odbc.php @@ -322,6 +322,17 @@ class DibiOdbcDriver extends DibiObject implements IDibiDriver, IDibiResultDrive + /** + * Automatically frees the resources allocated for this result set. + * @return void + */ + public function __destruct() + { + $this->resultSet && @$this->free(); + } + + + /** * Returns the number of rows in a result set. * @return int diff --git a/dibi/drivers/oracle.php b/dibi/drivers/oracle.php index 25b4ff75..00457761 100644 --- a/dibi/drivers/oracle.php +++ b/dibi/drivers/oracle.php @@ -314,6 +314,17 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri + /** + * Automatically frees the resources allocated for this result set. + * @return void + */ + public function __destruct() + { + $this->resultSet && @$this->free(); + } + + + /** * Returns the number of rows in a result set. * @return int @@ -413,7 +424,6 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri ); } } - $res->free(); return $tables; } diff --git a/dibi/drivers/postgre.php b/dibi/drivers/postgre.php index dcba0c28..24eb38f2 100644 --- a/dibi/drivers/postgre.php +++ b/dibi/drivers/postgre.php @@ -171,7 +171,6 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDr if (!$res) return FALSE; $row = $res->fetch(FALSE); - $res->free(); return is_array($row) ? $row[0] : FALSE; } @@ -363,6 +362,17 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDr + /** + * Automatically frees the resources allocated for this result set. + * @return void + */ + public function __destruct() + { + $this->resultSet && @$this->free(); + } + + + /** * Returns the number of rows in a result set. * @return int @@ -465,7 +475,6 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDr WHERE table_schema = current_schema() "); $tables = pg_fetch_all($res->resultSet); - $res->free(); return $tables ? $tables : array(); } @@ -507,7 +516,6 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDr 'vendor' => $row, ); } - $res->free(); return $columns; } @@ -550,7 +558,6 @@ class DibiPostgreDriver extends DibiObject implements IDibiDriver, IDibiResultDr $indexes[$row['relname']]['columns'][] = $columns[$index]; } } - $res->free(); return array_values($indexes); } diff --git a/dibi/drivers/sqlite.reflector.php b/dibi/drivers/sqlite.reflector.php index 27b61574..c7e58305 100644 --- a/dibi/drivers/sqlite.reflector.php +++ b/dibi/drivers/sqlite.reflector.php @@ -48,7 +48,6 @@ class DibiSqliteReflector extends DibiObject implements IDibiReflector while ($row = $res->fetch(TRUE)) { $tables[] = $row; } - $res->free(); return $tables; } @@ -85,7 +84,6 @@ class DibiSqliteReflector extends DibiObject implements IDibiReflector 'vendor' => $row, ); } - $res->free(); return $columns; } @@ -104,14 +102,12 @@ class DibiSqliteReflector extends DibiObject implements IDibiReflector $indexes[$row['name']]['name'] = $row['name']; $indexes[$row['name']]['unique'] = (bool) $row['unique']; } - $res->free(); foreach ($indexes as $index => $values) { $res = $this->driver->query("PRAGMA index_info([$index])"); while ($row = $res->fetch(TRUE)) { $indexes[$index]['columns'][$row['seqno']] = $row['name']; } - $res->free(); } $columns = $this->getColumns($table); @@ -169,7 +165,6 @@ class DibiSqliteReflector extends DibiObject implements IDibiReflector $keys[$row['id']]['foreign'] = NULL; } } - $res->free(); return array_values($keys); } diff --git a/dibi/drivers/sqlite3.php b/dibi/drivers/sqlite3.php index cd3867a7..799d1568 100644 --- a/dibi/drivers/sqlite3.php +++ b/dibi/drivers/sqlite3.php @@ -312,6 +312,17 @@ class DibiSqlite3Driver extends DibiObject implements IDibiDriver, IDibiResultDr + /** + * Automatically frees the resources allocated for this result set. + * @return void + */ + public function __destruct() + { + $this->resultSet && @$this->free(); + } + + + /** * Returns the number of rows in a result set. * @return int diff --git a/dibi/libs/DibiResult.php b/dibi/libs/DibiResult.php index 25df535f..447ed583 100644 --- a/dibi/libs/DibiResult.php +++ b/dibi/libs/DibiResult.php @@ -78,17 +78,6 @@ class DibiResult extends DibiObject implements IDataSource - /** - * Automatically frees the resources allocated for this result set. - * @return void - */ - public function __destruct() - { - @$this->free(); // intentionally @ - } - - - /** * Returns the result set resource. * @return mixed