]> git.joonet.de Git - adminer.git/commitdiff
Support triggers on views
authorJakub Vrana <jakub@vrana.cz>
Sat, 21 Dec 2013 00:30:22 +0000 (16:30 -0800)
committerJakub Vrana <jakub@vrana.cz>
Sat, 21 Dec 2013 00:30:22 +0000 (16:30 -0800)
adminer/drivers/mssql.inc.php
adminer/drivers/mysql.inc.php
adminer/drivers/oracle.inc.php
adminer/drivers/sqlite.inc.php
adminer/table.inc.php
changes.txt

index ef03c854ed6e48e1e0afcf9baee80ee2271e3847..c5be50896230ace0511f9e5684ef069b2ef77695 100644 (file)
@@ -607,7 +607,7 @@ WHERE sys1.xtype = 'TR' AND sys2.name = " . q($table)
        }
 
        function support($feature) {
-               return preg_match('~^(database|table|columns|sql|indexes|scheme|trigger|view|drop_col)$~', $feature); //! routine|
+               return preg_match('~^(columns|database|drop_col|indexes|scheme|sql|table|trigger|view|view_trigger)$~', $feature); //! routine|
        }
 
        $jush = "mssql";
index 6a124d482a598e15485e22bd82006bbdf525d8f1..9206293894853f05672457ad95d802d40d190e76 100644 (file)
@@ -992,12 +992,12 @@ if (!defined("DRIVER")) {
        }
 
        /** Check whether a feature is supported
-       * @param string "comment", "copy", "database", "drop_col", "dump", "event", "kill", "partitioning", "privileges", "procedure", "processlist", "routine", "scheme", "sequence", "status", "table", "trigger", "type", "variables", "view"
+       * @param string "comment", "copy", "database", "drop_col", "dump", "event", "kill", "partitioning", "privileges", "procedure", "processlist", "routine", "scheme", "sequence", "status", "table", "trigger", "type", "variables", "view", "view_trigger"
        * @return bool
        */
        function support($feature) {
                global $connection;
-               return !preg_match("~scheme|sequence|type" . ($connection->server_info < 5.1 ? "|event|partitioning" . ($connection->server_info < 5 ? "|view|routine|trigger" : "") : "") . "~", $feature);
+               return !preg_match("~scheme|sequence|type|view_trigger" . ($connection->server_info < 5.1 ? "|event|partitioning" . ($connection->server_info < 5 ? "|routine|trigger|view" : "") : "") . "~", $feature);
        }
 
        $jush = "sql"; ///< @var string JUSH identifier
index 76c5c449f8aadfad831780e577f56ffe22699e86..5af007dd24497ac913fd86d64346817a7824bacd 100644 (file)
@@ -376,7 +376,7 @@ ORDER BY PROCESS
        }
 
        function support($feature) {
-               return preg_match('~^(database|table|columns|sql|indexes|view|scheme|processlist|drop_col|variables|status)$~', $feature); //!
+               return preg_match('~^(columns|database|drop_col|indexes|processlist|scheme|sql|status|table|variables|view|view_trigger)$~', $feature); //!
        }
 
        $jush = "oracle";
index 8cdf39dc9759b083f7e0947fb3e342ccc85e1730..11639787655d116173dd234c183d223230c4fdba 100644 (file)
@@ -746,7 +746,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
        }
 
        function support($feature) {
-               return preg_match('~^(database|table|columns|sql|indexes|view|trigger|variables|status|dump|move_col|drop_col)$~', $feature);
+               return preg_match('~^(columns|database|drop_col|dump|indexes|move_col|sql|status|table|trigger|variables|view|view_trigger)$~', $feature);
        }
 
        $jush = "sqlite";
index a84a371879e7f66e62a2999659c95b7cd0d5c48c..a8bab598a42537706e220c1b980eff27d90be410 100644 (file)
@@ -71,18 +71,18 @@ if ($fields) {
                        echo '<p class="links"><a href="' . h(ME) . 'foreign=' . urlencode($TABLE) . '">' . lang('Add foreign key') . "</a>\n";
                }
                
-               if (support("trigger")) {
-                       echo "<h3 id='triggers'>" . lang('Triggers') . "</h3>\n";
-                       $triggers = triggers($TABLE);
-                       if ($triggers) {
-                               echo "<table cellspacing='0'>\n";
-                               foreach ($triggers as $key => $val) {
-                                       echo "<tr valign='top'><td>$val[0]<td>$val[1]<th>" . h($key) . "<td><a href='" . h(ME . 'trigger=' . urlencode($TABLE) . '&name=' . urlencode($key)) . "'>" . lang('Alter') . "</a>\n";
-                               }
-                               echo "</table>\n";
+       }
+       
+       if (support(is_view($table_status) ? "view_trigger" : "trigger")) {
+               echo "<h3 id='triggers'>" . lang('Triggers') . "</h3>\n";
+               $triggers = triggers($TABLE);
+               if ($triggers) {
+                       echo "<table cellspacing='0'>\n";
+                       foreach ($triggers as $key => $val) {
+                               echo "<tr valign='top'><td>$val[0]<td>$val[1]<th>" . h($key) . "<td><a href='" . h(ME . 'trigger=' . urlencode($TABLE) . '&name=' . urlencode($key)) . "'>" . lang('Alter') . "</a>\n";
                        }
-                       echo '<p class="links"><a href="' . h(ME) . 'trigger=' . urlencode($TABLE) . '">' . lang('Add trigger') . "</a>\n";
+                       echo "</table>\n";
                }
-               
+               echo '<p class="links"><a href="' . h(ME) . 'trigger=' . urlencode($TABLE) . '">' . lang('Add trigger') . "</a>\n";
        }
 }
index 686b4c6301bd7a831f1cf2203fec3cbc30acf74b..0a11cf431486d39b85ef4c35cdf4bd700d50879b 100644 (file)
@@ -19,6 +19,7 @@ Use MD5 for editing long keys only in supported drivers, bug since Adminer 3.6.4
 Don't execute external JavaScript when verifying version
 Include JUSH in the compiled version
 Protect CSRF token against BREACH
+Non-MySQL: View triggers
 SQLite: Allow editing primary key
 SQLite: Allow editing foreign keys
 PostgreSQL: Fix handling of nextval() default values