and SELECT results.
* Add support for PostgreSQL 8.1devel
* primary key and unique key at table creation (Andreas Huber)
+* Add row|statement level options to create trigger for >= 7.4 (Robert Treat)
Bugs
* Tree Icons are displayed middle instead of top
* A class that implements the DB interface for Postgres
* Note: This class uses ADODB and returns RecordSets.
*
- * $Id: Postgres.php,v 1.258 2005/03/26 10:47:03 chriskl Exp $
+ * $Id: Postgres.php,v 1.259 2005/04/14 18:20:12 xzilla Exp $
*/
// @@@ THOUGHT: What about inherits? ie. use of ONLY???
'DELETE OR UPDATE', 'INSERT OR DELETE OR UPDATE');
// When to execute the trigger
var $triggerExecTimes = array('BEFORE', 'AFTER');
+ // How often to execute the trigger
+ var $triggerFrequency = array('ROW');
// Foreign key stuff. First element MUST be the default.
var $fkactions = array('NO ACTION', 'RESTRICT', 'CASCADE', 'SET NULL', 'SET DEFAULT');
var $fkmatches = array('MATCH SIMPLE', 'MATCH FULL');
* @param $tgargs The function arguments
* @return 0 success
*/
- function createTrigger($tgname, $table, $tgproc, $tgtime, $tgevent, $tgargs) {
+ function createTrigger($tgname, $table, $tgproc, $tgtime, $tgevent, $tgfrequency, $tgargs) {
$this->fieldClean($tgname);
$this->fieldClean($table);
$this->fieldClean($tgproc);
/* No Statement Level Triggers in PostgreSQL (by now) */
$sql = "CREATE TRIGGER \"{$tgname}\" {$tgtime}
{$tgevent} ON \"{$table}\"
- FOR EACH ROW EXECUTE PROCEDURE \"{$tgproc}\"({$tgargs})";
+ FOR EACH {$tgfrequency} EXECUTE PROCEDURE \"{$tgproc}\"({$tgargs})";
return $this->execute($sql);
}
* A class that implements the DB interface for Postgres
* Note: This class uses ADODB and returns RecordSets.
*
- * $Id: Postgres74.php,v 1.41 2004/10/06 08:43:33 jollytoad Exp $
+ * $Id: Postgres74.php,v 1.42 2005/04/14 18:20:14 xzilla Exp $
*/
include_once('./classes/database/Postgres73.php');
// Max object name length
var $_maxNameLen = 63;
+ // How often to execute the trigger
+ var $triggerFrequency = array('STATEMENT','ROW');
+
/**
* Constructor
* @param $conn The database connection
* English language file for phpPgAdmin. Use this as a basis
* for new translations.
*
- * $Id: english.php,v 1.172 2005/04/12 01:52:17 chriskl Exp $
+ * $Id: english.php,v 1.173 2005/04/14 18:20:15 xzilla Exp $
*/
// Language and character set
$lang['strtriggerdroppedbad'] = 'Trigger drop failed.';
$lang['strtriggeraltered'] = 'Trigger altered.';
$lang['strtriggeralteredbad'] = 'Trigger alteration failed.';
+ $lang['strfrequency'] = 'Frequency';
// Types
$lang['strtype'] = 'Type';
* English language file for phpPgAdmin. Use this as a basis
* for new translations.
*
- * $Id: english.php,v 1.124 2005/04/12 01:52:17 chriskl Exp $
+ * $Id: english.php,v 1.125 2005/04/14 18:20:15 xzilla Exp $
*/
// Language and character set
$lang['strtriggerdroppedbad'] = 'Trigger drop failed.';
$lang['strtriggeraltered'] = 'Trigger altered.';
$lang['strtriggeralteredbad'] = 'Trigger alteration failed.';
+ $lang['strfrequency'] = 'Frequency';
// Types
$lang['strtype'] = 'Type';
/**
* List triggers on a table
*
- * $Id: triggers.php,v 1.24 2004/09/28 13:09:31 jollytoad Exp $
+ * $Id: triggers.php,v 1.25 2005/04/14 18:20:10 xzilla Exp $
*/
// Include application functions
$sel2 = new XHTML_Select('formEvent');
$sel2->set_data($data->triggerEvents);
+ /* Populate occurences */
+ $sel3 = new XHTML_Select('formFrequency');
+ $sel3->set_data($data->triggerFrequency);
+
echo "<form action=\"$PHP_SELF\" method=\"POST\">\n";
echo "<table>\n";
- echo "<tr><th colspan=\"2\" class=\"data\">{$lang['strname']}</th></tr>\n";
- echo "<tr><td colspan=\"2\" class=\"data1\"><input type=\"text\" name=\"formTriggerName\" size=\"32\" /></td></tr>\n";
echo "<tr>\n";
- echo " <th class=\"data\">{$lang['strwhen']}</th>\n";
+ echo " <th class=\"data\">{$lang['strname']}</th>\n";
+ echo " <th class=\"data\">{$lang['strwhen']}</th>\n";
+ echo "</tr>\n";
+ echo "<tr>\n";
+ echo " <td class=\"data1\"> <input type=\"text\" name=\"formTriggerName\" size=\"32\" /></td>\n";
+ echo " <td class=\"data1\"> ", $sel1->fetch(), "</td>\n";
+ echo "</tr>\n";
+ echo "<tr>\n";
echo " <th class=\"data\">{$lang['strevent']}</th>\n";
+ echo " <th class=\"data\">{$lang['strfrequency']}</th>\n";
echo "</tr>\n";
echo "<tr>\n";
- echo " <td class=\"data1\">", $sel1->fetch(), "</td>\n";
- echo " <td class=\"data1\">", $sel2->fetch(), "</td>\n";
+ echo " <td class=\"data1\"> ", $sel2->fetch(), "</td>\n";
+ echo " <td class=\"data1\"> ", $sel3->fetch(), "</td>\n";
echo "</tr>\n";
- echo "<tr><th class=\"data\">{$lang['strfunction']}</th>\n";
- echo "<th class=\"data\">{$lang['strarguments']}</th></tr>\n";
+ echo "<tr><th class=\"data\"> {$lang['strfunction']}</th>\n";
+ echo "<th class=\"data\"> {$lang['strarguments']}</th></tr>\n";
echo "<tr><td class=\"data1\">", $sel0->fetch(), "</td>\n";
echo "<td class=\"data1\">(<input type=\"text\" name=\"formTriggerArgs\" size=\"32\" />)</td>\n";
echo "</tr></table>\n";
else {
$status = &$data->createTrigger($_POST['formTriggerName'], $_POST['table'],
$_POST['formFunction'], $_POST['formExecTime'], $_POST['formEvent'],
- $_POST['formTriggerArgs']);
+ $_POST['formFrequency'], $_POST['formTriggerArgs']);
if ($status == 0)
doDefault($lang['strtriggercreated']);
else