1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-24343 Spider Left join failed Unknown column 't0.ID' in 'on clause'

The Spider mixes the comma join with other join types, and thus
ERROR 1054 occurs. This is well-known issue caused by the higher
precedence of JOIN over the comma (,).

We can fix the problem simply by using JOINs instead of commas.
This commit is contained in:
Nayuta Yanagisawa
2021-10-11 14:21:10 +09:00
parent b922ae5fc9
commit dbd562787a
6 changed files with 168 additions and 18 deletions

View File

@@ -7045,25 +7045,13 @@ int spider_db_mbase_util::append_table(
} else if (*current_pos > 0 && !first)
{
DBUG_PRINT("info",("spider no condition"));
if (top_down)
if (str)
{
if (str)
if (str->reserve(SPIDER_SQL_JOIN_LEN))
{
if (str->reserve(SPIDER_SQL_JOIN_LEN))
{
DBUG_RETURN(HA_ERR_OUT_OF_MEM);
}
str->q_append(SPIDER_SQL_JOIN_STR, SPIDER_SQL_JOIN_LEN);
}
} else {
if (str)
{
if (str->reserve(SPIDER_SQL_COMMA_LEN))
{
DBUG_RETURN(HA_ERR_OUT_OF_MEM);
}
str->q_append(SPIDER_SQL_COMMA_STR, SPIDER_SQL_COMMA_LEN);
DBUG_RETURN(HA_ERR_OUT_OF_MEM);
}
str->q_append(SPIDER_SQL_JOIN_STR, SPIDER_SQL_JOIN_LEN);
}
}