Bug #49716 QUAN will not display query if prefix with db_name and table begins with digit
Submitted: 15 Dec 2009 16:08 Modified: 5 Nov 2016 10:16
Reporter: Chris Calender Email Updates:
Status: Won't fix Impact on me:
None 
Category:MySQL Enterprise Monitor: Agent Severity:S3 (Non-critical)
Version:2.1.0.1096 OS:Any
Assigned to: Jan Kneschke CPU Architecture:Any
Tags: database name prefix, table beginning with digit numeral

[15 Dec 2009 16:08] Chris Calender
Description:
Query Analyzer will not display the full query if you prefix the table name with the database name (i.e., db_name.table_name) and if the table name begins with a digit (numeral).

For example, the following query:

SELECT * FROM d.1t

Will display as this in Query Analyzer:

SELECT * FROM `d` ? `t`

How to repeat:
Connect to the proxy and issue the following commands:

create table 1t (id int);
insert into 1t values (1);
select * from d.1t;

Now, look for that query in the Query Analyzer:

SELECT * FROM `d` ? `t`

And if you click on the query, in the "Canonical Query" tab, you will only see this:

SELECT
*

Suggested fix:
N/A
[12 Jan 2010 16:05] Enterprise Tools JIRA Robot
Kay Roepke writes: 
tricky fix, unfortunately.

the '.1' gets interpreted as a float.
really, the entire d.1t should be tokenized as a 'object name' or 'table name' or something like that.
this is likely to cause flex grief, though.
test case added, but no fix yet.
[12 Jan 2010 16:08] Enterprise Tools JIRA Robot
Kay Roepke writes: 
classdump:mysql-proxy kroepke$ bzr ci -m "Bug#49716/EM-3868: add test case, currently failing, thus commented out. cannot skip individual tests with test cases"
Committing to: /Volumes/Storage/Projects/merlin/merlin-trunk/mysql-proxy/                                                                                                                                                        
modified tests/unit/check_sql_tokenizer.c
Committed revision 950.
classdump:mysql-proxy kroepke$ bzr push
Using saved push location: bzr+ssh://bazaar.launchpad.net/~mysql-proxy-developers/mysql-proxy/trunk/
Pushed up to revision 950.
[27 May 2010 16:00] Enterprise Tools JIRA Robot
Jan Kneschke writes: 
Just to enhance the test and clarifying how a literal is constructed:

{noformat}
  > select 1 + 1;
  +-------+
  | 1 + 1 |
  +-------+
  |     2 |
  +-------+
  1 row in set (0.02 sec)

  > select 1+1;
  +-----+
  | 1+1 |
  +-----+
  |   2 |
  +-----+
  1 row in set (0.00 sec)

  > select 1e+1;
  +------+
  | 1e+1 |
  +------+
  |   10 |
  +------+
  1 row in set (0.00 sec)

  > SELECT 1e + 1;
  ERROR 1054 (42S22): Unknown column '1e' in 'field list'
  > SELECT 1e+a;
  ERROR 1054 (42S22): Unknown column '1e' in 'field list'
{noformat}
[27 May 2010 16:00] Enterprise Tools JIRA Robot
Jan Kneschke writes: 
Pushed to proxy's trunk:

revno: 1099
committer: jan@mysql.com
branch nick: trunk
timestamp: Thu 2010-05-27 16:19:43 +0200
message:
  added entry about #49716 - literals starting with digits
modified:
  NEWS
------------------------------------------------------------
revno: 1098
committer: jan@mysql.com
branch nick: trunk
timestamp: Thu 2010-05-27 16:17:23 +0200
message:
  don't capture the opening parantheses to make sure we count them properly
  
    * regression added in last changeset
modified:
  lib/sql-tokenizer.l
------------------------------------------------------------
revno: 1097
committer: jan@mysql.com
branch nick: trunk
timestamp: Thu 2010-05-27 15:58:55 +0200
message:
  parse specifiers made up of unquoted_lit.unquoted_lit.unquoted_lit correctly
modified:
  lib/sql-tokenizer.l
  tests/unit/check_sql_tokenizer.c
------------------------------------------------------------
revno: 1096
committer: jan@mysql.com
branch nick: trunk
timestamp: Thu 2010-05-27 14:54:22 +0200
message:
  allow scientific floats to have a [[:digit:]]. part
modified:
  lib/sql-tokenizer.l
  tests/unit/check_sql_tokenizer.c
------------------------------------------------------------
revno: 1095
committer: jan@mysql.com
branch nick: trunk
timestamp: Thu 2010-05-27 14:49:46 +0200
message:
  added support for floats in scientific notation
modified:
  lib/sql-tokenizer.l
  tests/unit/check_sql_tokenizer.c
------------------------------------------------------------
revno: 1094
fixes bug(s): http://bugs.mysql.com/49716
committer: jan@mysql.com
branch nick: trunk
timestamp: Thu 2010-05-27 14:21:36 +0200
message:
  allow literals to start with digits (fixes 49716)
  
    * this is a first round fix, we have sort out how floats in scientific notation
      get handled correctly
modified:
  lib/sql-tokenizer.l
  tests/unit/check_sql_tokenizer.c
[7 Jun 2010 23:43] Enterprise Tools JIRA Robot
Andy Bang writes: 
In build 2.2.2.1722.
[8 Jun 2010 19:00] Enterprise Tools JIRA Robot
Diego Medina writes: 
I still see
SELECT * FROM `d` ? `t`
[5 Nov 2016 10:16] Mark Leith
This is all now done via the aggregator, not proxy/agent directly, closing this bug.