From 5e0722a9db267728dd43dea63b07bd875346dc5f Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Fri, 11 Aug 2006 12:36:12 +0000 Subject: [PATCH] bug #1533945, wrong table name in header (SELECT from query window) --- ChangeLog | 4 +++ import.php | 4 +++ libraries/parse_analyze.lib.php | 49 ++++++++++++++++++++++++++++ sql.php | 57 ++------------------------------- 4 files changed, 59 insertions(+), 55 deletions(-) create mode 100644 libraries/parse_analyze.lib.php diff --git a/ChangeLog b/ChangeLog index 3ed080205..79d60f040 100755 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,10 @@ phpMyAdmin - ChangeLog $Id$ $Source$ +2006-08-11 Marc Delisle + * sql.php, import.php, libraries/parse_analyze.lib.php: + bug #1533945, wrong table name in header (SELECT from query window) + 2006-08-11 Sebastian Mendel * css\phpmyadmin.css.php, themes\*: updated themes to 2.9 and some minor fixes diff --git a/import.php b/import.php index fc0eb4ee8..bfab899c5 100644 --- a/import.php +++ b/import.php @@ -387,6 +387,10 @@ if ($timeout_passed) { } } +// Parse and analyze the query, for correct db and table name +// in case of a query typed in the query window +require_once('./libraries/parse_analyze.lib.php'); + // Display back import page require_once('./libraries/header.inc.php'); diff --git a/libraries/parse_analyze.lib.php b/libraries/parse_analyze.lib.php new file mode 100644 index 000000000..5d680104b --- /dev/null +++ b/libraries/parse_analyze.lib.php @@ -0,0 +1,49 @@ + diff --git a/sql.php b/sql.php index 0de583e50..18410c311 100644 --- a/sql.php +++ b/sql.php @@ -131,62 +131,9 @@ if (isset($btnDrop) || isset($navig)) { } /** - * Reformat the query + * Parse and analyze the query */ - -$GLOBALS['unparsed_sql'] = $sql_query; -$parsed_sql = PMA_SQP_parse($sql_query); -$analyzed_sql = PMA_SQP_analyze($parsed_sql); - -// Bug #641765 - Robbat2 - 12 January 2003, 10:49PM -// Reverted - Robbat2 - 13 January 2003, 2:40PM - -// lem9: for bug 780516: now that we use case insensitive preg_match -// or flags from the analyser, do not put back the reformatted query -// into $sql_query, to make this kind of query work without -// capitalizing keywords: -// -// CREATE TABLE SG_Persons ( -// id int(10) unsigned NOT NULL auto_increment, -// first varchar(64) NOT NULL default '', -// PRIMARY KEY (`id`) -// ) -// -// Note: now we probably do not need to fill and use $GLOBALS['unparsed_sql'] -// but I let this intact for now. -// -//$sql_query = PMA_SQP_formatHtml($parsed_sql, 'query_only'); - - -// check for a real SELECT ... FROM -$is_select = isset($analyzed_sql[0]['queryflags']['select_from']); - -// 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 name may be enclosed with backquotes, db is optionnal, -// query may contain aliases. - -// (TODO: if there are more than one table name in the Select: -// - do not extract the first table name -// - do not show a table name in the page header -// - do not display the sub-pages links) - -if ($is_select) { - $prev_db = $db; - if (isset($analyzed_sql[0]['table_ref'][0]['table_true_name'])) { - $table = $analyzed_sql[0]['table_ref'][0]['table_true_name']; - } - if (isset($analyzed_sql[0]['table_ref'][0]['db']) - && strlen($analyzed_sql[0]['table_ref'][0]['db'])) { - $db = $analyzed_sql[0]['table_ref'][0]['db']; - } else { - $db = $prev_db; - } - // Nijel: don't change reload, if we already decided to reload in import - if (empty($reload)) { - $reload = ($db == $prev_db) ? 0 : 1; - } -} +require_once('./libraries/parse_analyze.lib.php'); /** * Sets or modifies the $goto variable if required