[adminer-svn] SF.net SVN: adminer:[1453] branches/sqlite
Database management in a single PHP file
Brought to you by:
jakubvrana
From: <jak...@us...> - 2010-04-16 15:10:34
|
Revision: 1453 http://adminer.svn.sourceforge.net/adminer/?rev=1453&view=rev Author: jakubvrana Date: 2010-04-16 15:10:28 +0000 (Fri, 16 Apr 2010) Log Message: ----------- Operator LIKE %% Modified Paths: -------------- branches/sqlite/adminer/db.inc.php branches/sqlite/adminer/drivers/mssql.inc.php branches/sqlite/adminer/drivers/mysql.inc.php branches/sqlite/adminer/drivers/pgsql.inc.php branches/sqlite/adminer/drivers/sqlite.inc.php branches/sqlite/adminer/include/adminer.inc.php branches/sqlite/adminer/select.inc.php branches/sqlite/changes.txt branches/sqlite/todo.txt Modified: branches/sqlite/adminer/db.inc.php =================================================================== --- branches/sqlite/adminer/db.inc.php 2010-04-16 14:42:09 UTC (rev 1452) +++ branches/sqlite/adminer/db.inc.php 2010-04-16 15:10:28 UTC (rev 1453) @@ -49,8 +49,8 @@ echo "<form action='' method='post'>\n"; echo "<p><input name='query' value='" . h($_POST["query"]) . "'> <input type='submit' name='search' value='" . lang('Search') . "'>\n"; if ($_POST["search"] && $_POST["query"] != "") { - $_GET["where"][0]["op"] = "LIKE"; - $_GET["where"][0]["val"] = "%$_POST[query]%"; + $_GET["where"][0]["op"] = "LIKE %%"; + $_GET["where"][0]["val"] = $_POST["query"]; search_tables(); } echo "<table cellspacing='0' class='nowrap' onclick='tableClick(event);'>\n"; Modified: branches/sqlite/adminer/drivers/mssql.inc.php =================================================================== --- branches/sqlite/adminer/drivers/mssql.inc.php 2010-04-16 14:42:09 UTC (rev 1452) +++ branches/sqlite/adminer/drivers/mssql.inc.php 2010-04-16 15:10:28 UTC (rev 1453) @@ -392,7 +392,7 @@ $structured_types[$key] = array_keys($val); } $unsigned = array(); - $operators = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL"); + $operators = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL"); $functions = array("len", "lower", "round", "upper"); $grouping = array("avg", "count", "count distinct", "max", "min", "sum"); $edit_functions = array( Modified: branches/sqlite/adminer/drivers/mysql.inc.php =================================================================== --- branches/sqlite/adminer/drivers/mysql.inc.php 2010-04-16 14:42:09 UTC (rev 1452) +++ branches/sqlite/adminer/drivers/mysql.inc.php 2010-04-16 15:10:28 UTC (rev 1453) @@ -696,7 +696,7 @@ $structured_types[$key] = array_keys($val); } $unsigned = array("unsigned", "zerofill", "unsigned zerofill"); ///< @var array number variants - $operators = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "REGEXP", "IN", "IS NULL", "NOT LIKE", "NOT REGEXP", "NOT IN", "IS NOT NULL"); ///< @var array operators used in select + $operators = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "REGEXP", "IN", "IS NULL", "NOT LIKE", "NOT REGEXP", "NOT IN", "IS NOT NULL"); ///< @var array operators used in select $functions = array("char_length", "from_unixtime", "hex", "lower", "round", "sec_to_time", "time_to_sec", "upper"); ///< @var array functions used in select $grouping = array("avg", "count", "count distinct", "group_concat", "max", "min", "sum"); ///< @var array grouping functions used in select $edit_functions = array( ///< @var array of array("$type|$type2" => "$function/$function2") functions used in editing, [0] - edit and insert, [1] - edit only Modified: branches/sqlite/adminer/drivers/pgsql.inc.php =================================================================== --- branches/sqlite/adminer/drivers/pgsql.inc.php 2010-04-16 14:42:09 UTC (rev 1452) +++ branches/sqlite/adminer/drivers/pgsql.inc.php 2010-04-16 15:10:28 UTC (rev 1453) @@ -425,7 +425,7 @@ $structured_types[$key] = array_keys($val); } $unsigned = array(); - $operators = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "~", "IN", "IS NULL", "NOT LIKE", "!~", "NOT IN", "IS NOT NULL"); + $operators = array("=", "<", ">", "<=", ">=", "!=", "~", "!~", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL"); $functions = array("char_length", "lower", "round", "to_hex", "to_timestamp", "upper"); $grouping = array("avg", "count", "count distinct", "max", "min", "sum"); $edit_functions = array( Modified: branches/sqlite/adminer/drivers/sqlite.inc.php =================================================================== --- branches/sqlite/adminer/drivers/sqlite.inc.php 2010-04-16 14:42:09 UTC (rev 1452) +++ branches/sqlite/adminer/drivers/sqlite.inc.php 2010-04-16 15:10:28 UTC (rev 1453) @@ -464,7 +464,7 @@ $types = array("integer" => 0, "real" => 0, "numeric" => 0, "text" => 0, "blob" => 0); $structured_types = array_keys($types); $unsigned = array(); - $operators = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL"); // REGEXP can be user defined function + $operators = array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL"); // REGEXP can be user defined function $functions = array("hex", "length", "lower", "round", "unixepoch", "upper"); $grouping = array("avg", "count", "count distinct", "group_concat", "max", "min", "sum"); $edit_functions = array( Modified: branches/sqlite/adminer/include/adminer.inc.php =================================================================== --- branches/sqlite/adminer/include/adminer.inc.php 2010-04-16 14:42:09 UTC (rev 1452) +++ branches/sqlite/adminer/include/adminer.inc.php 2010-04-16 15:10:28 UTC (rev 1453) @@ -312,8 +312,15 @@ } foreach ((array) $_GET["where"] as $val) { if ("$val[col]$val[val]" != "" && in_array($val["op"], $this->operators)) { - $in = process_length($val["val"]); - $cond = " $val[op]" . (ereg('NULL$', $val["op"]) ? "" : (ereg('IN$', $val["op"]) ? " (" . ($in != "" ? $in : "NULL") . ")" : " " . $this->processInput($fields[$val["col"]], $val["val"]))); + $cond = " $val[op]"; + if (ereg('IN$', $val["op"])) { + $in = process_length($val["val"]); + $cond .= " (" . ($in != "" ? $in : "NULL") . ")"; + } elseif ($val["op"] == "LIKE %%") { + $cond = " LIKE " . $this->processInput($fields[$val["col"]], "%$val[val]%"); + } elseif (!ereg('NULL$', $val["op"])) { + $cond .= " " . $this->processInput($fields[$val["col"]], $val["val"]); + } if ($val["col"] != "") { $return[] = idf_escape($val["col"]) . $cond; } else { @@ -528,3 +535,6 @@ } $adminer = (function_exists('adminer_object') ? adminer_object() : new Adminer); +if (!isset($adminer->operators)) { + $adminer->operators = $operators; +} Modified: branches/sqlite/adminer/select.inc.php =================================================================== --- branches/sqlite/adminer/select.inc.php 2010-04-16 14:42:09 UTC (rev 1452) +++ branches/sqlite/adminer/select.inc.php 2010-04-16 15:10:28 UTC (rev 1453) @@ -19,10 +19,6 @@ $rights += $field["privileges"]; } -if (!isset($adminer->operators)) { - $adminer->operators = $operators; -} - list($select, $group) = $adminer->selectColumnsProcess($columns, $indexes); $where = $adminer->selectSearchProcess($fields, $indexes); $order = $adminer->selectOrderProcess($fields, $indexes); Modified: branches/sqlite/changes.txt =================================================================== --- branches/sqlite/changes.txt 2010-04-16 14:42:09 UTC (rev 1452) +++ branches/sqlite/changes.txt 2010-04-16 15:10:28 UTC (rev 1453) @@ -2,7 +2,9 @@ Drivers for MS SQL, SQLite, PostgreSQL Show number of tables in server overview Allow concurrent logins on the same server +Operator LIKE %% Defer table information in database overview to JavaScript (performance) +Big tables optimizations (performance) Adminer 2.3.1 (released 2010-04-06): Add Drop button to Alter pages (regression from 2.0.0) Modified: branches/sqlite/todo.txt =================================================================== --- branches/sqlite/todo.txt 2010-04-16 14:42:09 UTC (rev 1452) +++ branches/sqlite/todo.txt 2010-04-16 15:10:28 UTC (rev 1453) @@ -12,7 +12,7 @@ Shift-click in checkboxes to select range Export by GET parameters Only first part of big BZ2 export is readable -? LIKE %% operator +Remember export parameters in cookie ? Column and table names auto-completition in SQL textarea ? Aliasing of built-in functions can save 7 KB, function minification can save 7 KB, substitution of repetitive $a["a"] can save 4 KB, substitution of $_GET and friends can save 2 KB, aliasing of $connection->query, $connection->result and $connection->quote can save ~ 3 KB, JS packer can save 1 KB, not enclosing HTML attribute values can save 1.2 KB, replacing \\n by \n can save .3 KB ? Branch binary_compile: LZW compression of translations can save 30 KB, LZW compression of all texts can save 11 KB, remove of base64_decode() + using chars 127-255 in minification can save 1 KB This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |