* Davi Arnaut <davi@stripped> [07/12/19 22:47]:
> ChangeSet@stripped, 2007-12-19 17:30:30-02:00, davi@stripped +11 -0
> Bug#27525 table not found when using multi-table-deletes with aliases over several
> databas
> Bug#30234 Unexpected behavior using DELETE with AS and USING
Could you please change the algorithm of name resolution to:
TABLE_LIST *match= NULL;
foreach (element in the right list)
{
int cmp;
if (left.name is fqtn and right.alias_set)
continue; /* no match */
if (left.name is fqtn and right.name is fqtn)
cmp= strcmp(left.name, right.name);
else if (left.name is not fqtn and right.alias_set)
cmp= strcmp(left.name, right.alias)
else
cmp= strcmp(left.name, right.<table_name>);
if (cmp == 0)
{
if (match)
my_error(ER_NONUNIQ...);
match= right;
}
}
I don't have other comments on this patch, but would like to take
a look at the final version before you push (I just want to see if
nonuniq_match function stays or leaves, I'd expect it to not be
needed any more).
Thanks again for trying to address this limitation!
--
-- Konstantin Osipov Software Developer, Moscow, Russia
-- MySQL AB, www.mysql.com The best DATABASE COMPANY in the GALAXY