From: ioguix Date: Wed, 19 Sep 2007 14:42:12 +0000 (+0000) Subject: add a column on the triggers' properties page with the called proc. Each proc name... X-Git-Tag: REL_4-2-BETA-1~66 X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=6f02e8f4b268c965bf1651281deadbaa826b51db;p=phppgadmin.git add a column on the triggers' properties page with the called proc. Each proc name has a link its own properties page. --- diff --git a/HISTORY b/HISTORY index 062422c4..69f2e0f1 100644 --- a/HISTORY +++ b/HISTORY @@ -16,6 +16,8 @@ Features * Add column about fields constraints type + links in table properties page (ioguix) * Support for built-in Full Text Search (Ivan Zolotukhin) * Add alter name, owner & comment on views (ioguix) +* Add column about called procedure + links to their definition in the triggers + properties page (ioguix) Bugs * Fix inability to assign a field type/domain of a different schema diff --git a/classes/database/Postgres73.php b/classes/database/Postgres73.php index 7b990322..e9cdbb65 100644 --- a/classes/database/Postgres73.php +++ b/classes/database/Postgres73.php @@ -4,7 +4,7 @@ * A class that implements the DB interface for Postgres * Note: This class uses ADODB and returns RecordSets. * - * $Id: Postgres73.php,v 1.166 2007/08/31 18:30:11 ioguix Exp $ + * $Id: Postgres73.php,v 1.167 2007/09/19 14:42:12 ioguix Exp $ */ // @@@ THOUGHT: What about inherits? ie. use of ONLY??? @@ -800,16 +800,20 @@ class Postgres73 extends Postgres72 { $sql = "SELECT t.tgname, t.tgisconstraint, t.tgdeferrable, t.tginitdeferred, t.tgtype, t.tgargs, t.tgnargs, t.tgconstrrelid, (SELECT relname FROM pg_catalog.pg_class c2 WHERE c2.oid=t.tgconstrrelid) AS tgconstrrelname, - p.proname AS tgfname, c.relname, NULL AS tgdef - FROM pg_catalog.pg_trigger t LEFT JOIN pg_catalog.pg_proc p - ON t.tgfoid=p.oid, pg_catalog.pg_class c + p.proname AS tgfname, c.relname, NULL AS tgdef, + p.proname || ' (' || pg_catalog.oidvectortypes(p.proargtypes) || ')' AS proproto, + ns.nspname AS pronamespace + FROM pg_catalog.pg_namespace ns, + pg_catalog.pg_trigger t LEFT JOIN pg_catalog.pg_proc p + ON t.tgfoid=p.oid, pg_catalog.pg_class c WHERE t.tgrelid=c.oid - AND c.relname='{$table}' - AND c.relnamespace=(SELECT oid FROM pg_catalog.pg_namespace WHERE nspname='{$this->_schema}') - AND (NOT tgisconstraint OR NOT EXISTS - (SELECT 1 FROM pg_catalog.pg_depend d JOIN pg_catalog.pg_constraint c - ON (d.refclassid = c.tableoid AND d.refobjid = c.oid) - WHERE d.classid = t.tableoid AND d.objid = t.oid AND d.deptype = 'i' AND c.contype = 'f'))"; + AND c.relname='{$table}' + AND c.relnamespace=(SELECT oid FROM pg_catalog.pg_namespace WHERE nspname='{$this->_schema}') + AND (NOT tgisconstraint OR NOT EXISTS + (SELECT 1 FROM pg_catalog.pg_depend d JOIN pg_catalog.pg_constraint c + ON (d.refclassid = c.tableoid AND d.refobjid = c.oid) + WHERE d.classid = t.tableoid AND d.objid = t.oid AND d.deptype = 'i' AND c.contype = 'f')) + AND p.pronamespace = ns.oid"; return $this->selectSet($sql); } diff --git a/classes/database/Postgres74.php b/classes/database/Postgres74.php index c338063d..7c8718e6 100644 --- a/classes/database/Postgres74.php +++ b/classes/database/Postgres74.php @@ -4,7 +4,7 @@ * A class that implements the DB interface for Postgres * Note: This class uses ADODB and returns RecordSets. * - * $Id: Postgres74.php,v 1.60 2007/09/09 20:20:31 ioguix Exp $ + * $Id: Postgres74.php,v 1.61 2007/09/19 14:42:12 ioguix Exp $ */ include_once('./classes/database/Postgres73.php'); @@ -280,14 +280,19 @@ class Postgres74 extends Postgres73 { function getTriggers($table = '') { $this->clean($table); - $sql = "SELECT t.tgname, pg_catalog.pg_get_triggerdef(t.oid) AS tgdef, t.tgenabled - FROM pg_catalog.pg_trigger t + $sql = "SELECT + t.tgname, pg_catalog.pg_get_triggerdef(t.oid) AS tgdef, t.tgenabled, p.oid AS prooid, + p.proname || ' (' || pg_catalog.oidvectortypes(p.proargtypes) || ')' AS proproto, + ns.nspname AS pronamespace + FROM pg_catalog.pg_trigger t, pg_catalog.pg_proc p, pg_catalog.pg_namespace ns WHERE t.tgrelid = (SELECT oid FROM pg_catalog.pg_class WHERE relname='{$table}' - AND relnamespace=(SELECT oid FROM pg_catalog.pg_namespace WHERE nspname='{$this->_schema}')) - AND (NOT tgisconstraint OR NOT EXISTS - (SELECT 1 FROM pg_catalog.pg_depend d JOIN pg_catalog.pg_constraint c - ON (d.refclassid = c.tableoid AND d.refobjid = c.oid) - WHERE d.classid = t.tableoid AND d.objid = t.oid AND d.deptype = 'i' AND c.contype = 'f'))"; + AND relnamespace=(SELECT oid FROM pg_catalog.pg_namespace WHERE nspname='{$this->_schema}')) + AND (NOT tgisconstraint OR NOT EXISTS + (SELECT 1 FROM pg_catalog.pg_depend d JOIN pg_catalog.pg_constraint c + ON (d.refclassid = c.tableoid AND d.refobjid = c.oid) + WHERE d.classid = t.tableoid AND d.objid = t.oid AND d.deptype = 'i' AND c.contype = 'f')) + AND p.oid=t.tgfoid + AND p.pronamespace = ns.oid"; return $this->selectSet($sql); } diff --git a/triggers.php b/triggers.php index 5c0ddd96..7556a0bb 100644 --- a/triggers.php +++ b/triggers.php @@ -3,7 +3,7 @@ /** * List triggers on a table * - * $Id: triggers.php,v 1.36 2007/08/31 18:30:11 ioguix Exp $ + * $Id: triggers.php,v 1.37 2007/09/19 14:42:12 ioguix Exp $ */ // Include application functions @@ -287,6 +287,16 @@ 'title' => $lang['strdefinition'], 'field' => field('+tgdef'), ), + 'function' => array( + 'title' => $lang['strfunction'], + 'field' => field('proproto'), + 'url' => "functions.php?action=properties&server={$_REQUEST['server']}&database={$_REQUEST['database']}&", + 'vars' => array( + 'schema' => 'pronamespace', + 'function' => 'proproto', + 'function_oid' => 'prooid', + ), + ), 'actions' => array( 'title' => $lang['stractions'], ), @@ -304,6 +314,7 @@ 'vars' => array('trigger' => 'tgname'), ), ); + if(!$data->hasSchemas()) unset($columns['function']['vars']['schema']); if($data->hasDisableTriggers()) { if(!$data->phpBool($triggers->fields["tgenabled"])) { $actions['enable'] = array( @@ -321,7 +332,7 @@ } if (!$data->hasAlterTrigger()) unset($actions['alter']); - + $misc->printTable($triggers, $columns, $actions, $lang['strnotriggers'], 'tgPre'); echo "

href}&table=", urlencode($_REQUEST['table']), "\">{$lang['strcreatetrigger']}

\n";