1
0
mirror of https://github.com/dg/dibi.git synced 2025-08-03 20:57:36 +02:00

DibiResult destructor moved to individual IDibiResultDriver drivers

This commit is contained in:
David Grudl
2010-08-27 01:24:02 +02:00
parent 087734fb23
commit ec82eda864
12 changed files with 99 additions and 36 deletions

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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