bug 642319
This commit is contained in:
@@ -7,6 +7,8 @@ $Source$
|
|||||||
|
|
||||||
2002-11-22 Marc Delisle <lem9@users.sourceforge.net>
|
2002-11-22 Marc Delisle <lem9@users.sourceforge.net>
|
||||||
* libraries/display_tbl.lib.php3: numeric foreign keys used as alias
|
* libraries/display_tbl.lib.php3: numeric foreign keys used as alias
|
||||||
|
* sql.php3, libraries/sqlparser.lib.php3: bug 642319, navigation
|
||||||
|
and GROUP BY
|
||||||
|
|
||||||
2002-11-22 Alexander M. Turek <rabus@users.sourceforge.net>
|
2002-11-22 Alexander M. Turek <rabus@users.sourceforge.net>
|
||||||
* scripts/create-release.sh: The script should now work at the SF shell
|
* scripts/create-release.sh: The script should now work at the SF shell
|
||||||
|
@@ -166,6 +166,7 @@ if (!defined('PMA_DISPLAY_TBL_LIB_INCLUDED')) {
|
|||||||
// displayed but there is only one row, change these settings to
|
// displayed but there is only one row, change these settings to
|
||||||
// false
|
// false
|
||||||
if ($do_display['nav_bar'] == '1' || $do_display['sort_lnk'] == '1') {
|
if ($do_display['nav_bar'] == '1' || $do_display['sort_lnk'] == '1') {
|
||||||
|
|
||||||
if (isset($unlim_num_rows) && $unlim_num_rows < 2) {
|
if (isset($unlim_num_rows) && $unlim_num_rows < 2) {
|
||||||
$do_display['nav_bar'] = (string) '0';
|
$do_display['nav_bar'] = (string) '0';
|
||||||
$do_display['sort_lnk'] = (string) '0';
|
$do_display['sort_lnk'] = (string) '0';
|
||||||
|
@@ -2,7 +2,6 @@
|
|||||||
/* $Id$ */
|
/* $Id$ */
|
||||||
// vim: expandtab sw=4 ts=4 sts=4:
|
// vim: expandtab sw=4 ts=4 sts=4:
|
||||||
|
|
||||||
error_reporting(E_ALL);
|
|
||||||
/** SQL Parser Functions for phpMyAdmin
|
/** SQL Parser Functions for phpMyAdmin
|
||||||
*
|
*
|
||||||
* Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
|
* Copyright 2002 Robin Johnson <robbat2@users.sourceforge.net>
|
||||||
@@ -1186,12 +1185,13 @@ if (!defined('PMA_SQP_LIB_INCLUDED')) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'alpha_reservedWord':
|
case 'alpha_reservedWord':
|
||||||
$upper = $arr[$i]['data'];
|
//$upper = $arr[$i]['data'];
|
||||||
|
$arr[$i]['data'] = strtoupper($arr[$i]['data']);
|
||||||
if ((($typearr[1] != 'alpha_reservedWord')
|
if ((($typearr[1] != 'alpha_reservedWord')
|
||||||
|| (($typearr[1] == 'alpha_reservedWord')
|
|| (($typearr[1] == 'alpha_reservedWord')
|
||||||
&& PMA_STR_binarySearchInArr(strtoupper($arr[$i - 1]['data']), $keywords_no_newline, $keywords_no_newline_cnt)))
|
&& PMA_STR_binarySearchInArr(strtoupper($arr[$i - 1]['data']), $keywords_no_newline, $keywords_no_newline_cnt)))
|
||||||
&& ($typearr[1] != 'punct_level_plus')
|
&& ($typearr[1] != 'punct_level_plus')
|
||||||
&& (!PMA_STR_binarySearchInArr($upper, $keywords_no_newline, $keywords_no_newline_cnt))) {
|
&& (!PMA_STR_binarySearchInArr($arr[$i]['data'], $keywords_no_newline, $keywords_no_newline_cnt))) {
|
||||||
// do not put a space before the first token, because
|
// do not put a space before the first token, because
|
||||||
// we use a lot of eregi() checking for the first
|
// we use a lot of eregi() checking for the first
|
||||||
// reserved word at beginning of query
|
// reserved word at beginning of query
|
||||||
@@ -1202,7 +1202,7 @@ if (!defined('PMA_SQP_LIB_INCLUDED')) {
|
|||||||
$before .= ' ';
|
$before .= ' ';
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($upper) {
|
switch ($arr[$i]['data']) {
|
||||||
case 'CREATE':
|
case 'CREATE':
|
||||||
$space_punct_listsep = $html_line_break;
|
$space_punct_listsep = $html_line_break;
|
||||||
$space_alpha_reserved_word = ' ';
|
$space_alpha_reserved_word = ' ';
|
||||||
@@ -1236,7 +1236,7 @@ if (!defined('PMA_SQP_LIB_INCLUDED')) {
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
} // end switch ($upper)
|
} // end switch ($arr[$i]['data'])
|
||||||
|
|
||||||
$after .= ' ';
|
$after .= ' ';
|
||||||
break;
|
break;
|
||||||
|
7
sql.php3
7
sql.php3
@@ -82,10 +82,12 @@ if (isset($btnDrop) || isset($navig)) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
$parsed_sql = PMA_SQP_parse((get_magic_quotes_gpc() ? stripslashes($sql_query) : $sql_query));
|
$parsed_sql = PMA_SQP_parse((get_magic_quotes_gpc() ? stripslashes($sql_query) : $sql_query));
|
||||||
$is_select = eregi('^SELECT[[:space:]]+', $sql_query);
|
|
||||||
$analyzed_sql = PMA_SQP_analyze($parsed_sql);
|
$analyzed_sql = PMA_SQP_analyze($parsed_sql);
|
||||||
$sql_query = PMA_SQP_formatHtml($parsed_sql, 'query_only');
|
$sql_query = PMA_SQP_formatHtml($parsed_sql, 'query_only');
|
||||||
|
|
||||||
|
// here we are sure that SELECT is uppercase
|
||||||
|
$is_select = eregi('^SELECT[[:space:]]+', $sql_query);
|
||||||
|
|
||||||
// If the query is a Select, extract the db and table names and modify
|
// If the query is a Select, extract the db and table names and modify
|
||||||
// $db and $table, to have correct page headers, links and left frame.
|
// $db and $table, to have correct page headers, links and left frame.
|
||||||
// db and table name may be enclosed with backquotes, db is optionnal,
|
// db and table name may be enclosed with backquotes, db is optionnal,
|
||||||
@@ -232,7 +234,8 @@ else {
|
|||||||
// "SELECT COUNT(...) FROM ... GROUP BY ..."
|
// "SELECT COUNT(...) FROM ... GROUP BY ..."
|
||||||
$is_explain = $is_count = $is_export = $is_delete = $is_insert = $is_affected = $is_show = $is_maint = $is_analyse = $is_group = $is_func = FALSE;
|
$is_explain = $is_count = $is_export = $is_delete = $is_insert = $is_affected = $is_show = $is_maint = $is_analyse = $is_group = $is_func = FALSE;
|
||||||
if ($is_select) { // see line 141
|
if ($is_select) { // see line 141
|
||||||
$is_group = eregi('[[:space:]]+(GROUP BY|HAVING|SELECT[[:space:]]+DISTINCT)[[:space:]]+', $sql_query);
|
$is_group = eregi('[[:space:]]+(GROUP[[:space:]]+BY|HAVING|SELECT[[:space:]]+DISTINCT)[[:space:]]+', $sql_query);
|
||||||
|
|
||||||
$is_func = !$is_group && (eregi('[[:space:]]+(SUM|AVG|STD|STDDEV|MIN|MAX|BIT_OR|BIT_AND)\s*\(', $sql_query));
|
$is_func = !$is_group && (eregi('[[:space:]]+(SUM|AVG|STD|STDDEV|MIN|MAX|BIT_OR|BIT_AND)\s*\(', $sql_query));
|
||||||
$is_count = !$is_group && (eregi('^SELECT[[:space:]]+COUNT\((.*\.+)?.*\)', $sql_query));
|
$is_count = !$is_group && (eregi('^SELECT[[:space:]]+COUNT\((.*\.+)?.*\)', $sql_query));
|
||||||
$is_export = (eregi('[[:space:]]+INTO[[:space:]]+OUTFILE[[:space:]]+', $sql_query));
|
$is_export = (eregi('[[:space:]]+INTO[[:space:]]+OUTFILE[[:space:]]+', $sql_query));
|
||||||
|
Reference in New Issue
Block a user