polardb / polardbx-sql

PolarDB-X is a cloud native distributed SQL Database designed for high concurrency, massive storage, complex querying scenarios.
Apache License 2.0
1.54k stars 325 forks source link

mysql /*!50001 CREATE ALGORITHM=UNDEFINED */ #75

Open liuxiansong-ones opened 2 years ago

liuxiansong-ones commented 2 years ago

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通常更有效,而且如果使用了临时表,视图是不可更新的。

hustfxj commented 2 years ago

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