]> git.joonet.de Git - adminer.git/commitdiff
Parse PostgreSQL multiline strings
authorJakub Vrana <jakub@vrana.cz>
Sat, 23 Oct 2010 22:24:32 +0000 (00:24 +0200)
committerJakub Vrana <jakub@vrana.cz>
Sat, 23 Oct 2010 22:24:32 +0000 (00:24 +0200)
adminer/sql.inc.php

index 5dbb44f4dacdd65bf67a5382fa8847e2c92672a8..b194b3f32e2787f3e2a5e91f3c10800a40b1b18c 100644 (file)
@@ -46,7 +46,7 @@ if (!$error && $_POST) {
                                $delimiter = $match[1];
                                $query = substr($query, strlen($match[0]));
                        } else {
-                               preg_match('(' . preg_quote($delimiter) . '|[\'`"]|/\\*|-- |#|$)', $query, $match, PREG_OFFSET_CAPTURE, $offset); // should always match
+                               preg_match('(' . preg_quote($delimiter) . '|[\'`"]' . ($jush == "pgsql" ? '|\\$.*\\$' : '') . '|/\\*|-- |#|$)', $query, $match, PREG_OFFSET_CAPTURE, $offset); // should always match
                                $found = $match[0][0];
                                $offset = $match[0][1] + strlen($found);
                                if (!$found && $fp && !feof($fp)) {
@@ -56,7 +56,7 @@ if (!$error && $_POST) {
                                                break;
                                        }
                                        if ($found && $found != $delimiter) { // find matching quote or comment end
-                                               while (preg_match('~' . ($found == '/*' ? '\\*/' : (ereg('-- |#', $found) ? "\n" : "$found|\\\\.")) . '|$~s', $query, $match, PREG_OFFSET_CAPTURE, $offset)) { //! respect sql_mode NO_BACKSLASH_ESCAPES
+                                               while (preg_match('(' . ($found == '/*' ? '\\*/' : (ereg('-- |#', $found) ? "\n" : preg_quote($found) . "|\\\\.")) . '|$)s', $query, $match, PREG_OFFSET_CAPTURE, $offset)) { //! respect sql_mode NO_BACKSLASH_ESCAPES
                                                        $s = $match[0][0];
                                                        $offset = $match[0][1] + strlen($s);
                                                        if (!$s && $fp && !feof($fp)) {