MXS-1340 Report true table and not alias name
With this change, for a statement like SELECT t2.a FROM t1 t2; the affected field is reported as t1.a and not as t2.a, as it was before. For a statement like SELECT t.f FROM d.t; qc_mysqlembedded will now return "d.t.f" as the affected field, while qc_sqlite will still return "t.f" as both implementations did before. In qc_mysqlembedded's case that is a side-effect of the alias handling. To get qc_sqlite to return the same (which would be good), the table names would have to be collected in a smarter way than they are now.
This commit is contained in:
@ -57,3 +57,10 @@ SELECT LENGTH(_utf8 0xC39F), LENGTH(CHAR(14844588 USING utf8));
|
||||
# warning: [qc_sqlite] Statement was classified only based on keywords
|
||||
# (Sqlite3 error: SQL logic error or missing database, near "0xC39F": syntax error):
|
||||
# "SELECT LENGTH(_utf8 0xC39F), LENGTH(CHAR(14844588 USING utf8));"
|
||||
|
||||
SELECT t.f FROM d.t;
|
||||
# qc_get_field_info : ERR: d.t.f(QC_USED_IN_SELECT) != t.f(QC_USED_IN_SELECT)
|
||||
# Table names need to be collected in a more intelligent fashion to be able
|
||||
# to do that.
|
||||
select t.c,t1.b from t,mysqltest.t1 where t.c=t1.a;
|
||||
with t as (select c from mysqltest.t2 where c < 2) select t.c,t1.b from t,mysqltest.t1 where t.c=t1.a;
|
||||
|
Reference in New Issue
Block a user