polardbx-sql icon indicating copy to clipboard operation
polardbx-sql copied to clipboard

mysql /*!50001 CREATE ALGORITHM=UNDEFINED */

Open liuxiansong-ones opened this issue 2 years ago • 1 comments

ERROR 3009 (HY000) at line [PXC-4500][ERR_PARSER] statement com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.MySqlHintStatement not supported

/*!50001 CREATE ALGORITHM=UNDEFINED */

mysql的视图有三种类型:MERGE、TEMPTABLE、UNDEFINED。如果没有ALGORITHM子句,默认算法是UNDEFINED(未定义的)。算法会影响MySQL处理视图的方式。

(1)MERGE,会将引用视图的语句的文本与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。 (2)TEMPTABLE,视图的结果将被置于临时表中,然后使用它执行语句。 (3)UNDEFINED,MySQL将选择所要使用的算法。如果可能,它倾向于MERGE而不是TEMPTABLE,这是因为MERGE通常更有效,而且如果使用了临时表,视图是不可更新的。

liuxiansong-ones avatar Aug 11 '22 09:08 liuxiansong-ones

polardb-x 支持的视图目前只有MERGE这种形式,暂时还不支持UNDEFINED和TEMPTABLE,也不支持你说的这个hint呢?后面我们正在规划TEMPTABLE

hustfxj avatar Aug 15 '22 06:08 hustfxj