Implement more meta-data methods
This commit is contained in:
parent
29e8562191
commit
f2bd843edd
@ -243,6 +243,13 @@ abstract class DB_PDO extends PDO {
|
|||||||
*/
|
*/
|
||||||
abstract public function get_functions();
|
abstract public function get_functions();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return list of stored procedures for the current database
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
abstract public function get_procedures();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return list of triggers for the current database
|
* Return list of triggers for the current database
|
||||||
*
|
*
|
||||||
|
@ -209,6 +209,22 @@ SQL;
|
|||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrun list of stored procedures for the current database
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function get_procedures()
|
||||||
|
{
|
||||||
|
$sql = 'SELECT * FROM "RDB$PROCEDURES"';
|
||||||
|
|
||||||
|
$res = $this->query($sql);
|
||||||
|
|
||||||
|
return $res->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return list of triggers for the current database
|
* Return list of triggers for the current database
|
||||||
*
|
*
|
||||||
|
@ -107,8 +107,21 @@ class MySQL extends DB_PDO {
|
|||||||
*/
|
*/
|
||||||
public function get_functions()
|
public function get_functions()
|
||||||
{
|
{
|
||||||
// @todo Implement
|
$res = $this->query('SHOW FUNCTION STATUS');
|
||||||
return FALSE;
|
return $res->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrun list of stored procedures for the current database
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function get_procedures()
|
||||||
|
{
|
||||||
|
$res = $this->query('SHOW PROCEDURE STATUS');
|
||||||
|
return $res->fetchAll(PDO::FETCH_ASSOC);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
@ -120,8 +133,8 @@ class MySQL extends DB_PDO {
|
|||||||
*/
|
*/
|
||||||
public function get_triggers()
|
public function get_triggers()
|
||||||
{
|
{
|
||||||
// @todo Implement
|
$res = $this->query('SHOW TRIGGERS');
|
||||||
return FALSE;
|
return $res->fetchAll(PDO::FETCH_ASSOC);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
@ -92,6 +92,18 @@ class ODBC extends DB_PDO {
|
|||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Not applicable to ODBC
|
||||||
|
*
|
||||||
|
* @return FALSE
|
||||||
|
*/
|
||||||
|
public function get_procedures()
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Not applicable to ODBC
|
* Not applicable to ODBC
|
||||||
*
|
*
|
||||||
|
@ -191,6 +191,26 @@ SQL;
|
|||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrun list of stored procedures for the current database
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function get_procedures()
|
||||||
|
{
|
||||||
|
$sql = <<<SQL
|
||||||
|
SELECT "routine_name"
|
||||||
|
FROM "information_schema"."routines"
|
||||||
|
WHERE "specific_schema" NOT IN
|
||||||
|
('pg_catalog', 'information_schema')
|
||||||
|
AND "type_udt_name" != 'trigger';
|
||||||
|
SQL;
|
||||||
|
$res = $this->query($sql);
|
||||||
|
return db_filter($res->fetchAll(PDO::FETCH_ASSOC), 'routine_name');
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return list of triggers for the current database
|
* Return list of triggers for the current database
|
||||||
*
|
*
|
||||||
@ -198,8 +218,14 @@ SQL;
|
|||||||
*/
|
*/
|
||||||
public function get_triggers()
|
public function get_triggers()
|
||||||
{
|
{
|
||||||
// @todo Implement
|
$sql = <<<SQL
|
||||||
return FALSE;
|
SELECT *
|
||||||
|
FROM "information_schema"."triggers"
|
||||||
|
WHERE "trigger_schema" NOT IN
|
||||||
|
('pg_catalog', 'information_schema')
|
||||||
|
SQL;
|
||||||
|
$res = $this->query($sql);
|
||||||
|
return $res->fetchAll(PDO::FETCH_ASSOC);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
@ -129,6 +129,19 @@ SQL;
|
|||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrun list of stored procedures for the current database
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function get_procedures()
|
||||||
|
{
|
||||||
|
// @todo Implement
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return list of triggers for the current database
|
* Return list of triggers for the current database
|
||||||
*
|
*
|
||||||
|
@ -108,6 +108,16 @@ class DB_tabs extends GTKNotebook {
|
|||||||
self::_add_tab($conn, 'Sequences', 'Sequence Name', 'get_sequences');
|
self::_add_tab($conn, 'Sequences', 'Sequence Name', 'get_sequences');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 'Triggers' Tab
|
||||||
|
{
|
||||||
|
//self::_add_tab($conn, 'Triggers', 'Trigger Name', 'get_triggers');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 'Procedures' Tab
|
||||||
|
{
|
||||||
|
//self::_add_tab($conn, 'Procedures', 'Procedure Name', 'get_procedures');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
self::$instance->show_all();
|
self::$instance->show_all();
|
||||||
|
|
||||||
@ -169,7 +179,7 @@ class DB_tabs extends GTKNotebook {
|
|||||||
|
|
||||||
$tab_data = call_user_func_array(array($conn, $method), $params);
|
$tab_data = call_user_func_array(array($conn, $method), $params);
|
||||||
|
|
||||||
if($tab_data !== FALSE)
|
if ($tab_data !== FALSE)
|
||||||
{
|
{
|
||||||
foreach($tab_data as $d)
|
foreach($tab_data as $d)
|
||||||
{
|
{
|
||||||
@ -183,5 +193,36 @@ class DB_tabs extends GTKNotebook {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simplify adding multi-level array to the Notebook object
|
||||||
|
*
|
||||||
|
* @param object $conn
|
||||||
|
* @param string $tab_name
|
||||||
|
* @param string $col_name
|
||||||
|
* @param string $method
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
/*private static function _add_multi_level_tab(&$conn, $tab_name, $col_name, $method, $params=array())
|
||||||
|
{
|
||||||
|
$tab = new Data_Grid();
|
||||||
|
$tab_model = $tab->get_model();
|
||||||
|
|
||||||
|
$tab_data = call_user_func_array(array($conn, $method), $params);
|
||||||
|
|
||||||
|
if ($tab_data !== FALSE)
|
||||||
|
{
|
||||||
|
for($i=0, $c=count($tab_data); $i < $c; $i++)
|
||||||
|
{
|
||||||
|
$j = 0;
|
||||||
|
foreach($tab_data[$i] as $key => $val)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
// End of db_tabs.php
|
// End of db_tabs.php
|
||||||
|
Reference in New Issue
Block a user