Logo
SQL 兼容性

SQL 兼容性 #

SQL 是使用者与数据库交流的标准语言。SQL 解析引擎负责将 SQL 字符串解析为抽象语法树,供 SphereEx-DBPlusEngine 理解并实现其增量功能。SphereEx-DBPlusEngine 目前支持 MySQL、PostgreSQL、SQLServer、Oracle、openGauss、Presto 以及符合 SQL92 规范的 SQL 方言。由于 SQL 语法的复杂性,目前仍然存在少量不支持的 SQL。此外,SphereEx-DBPlusEngine 为数据库提供了分布式协作的能力,同时将一部分数据库特性抽象到了上层,进行统一管理,以降低用户的使用难度。因此,对于统一提供的特性,原生的 SQL 将不再下发到数据库,并提示该操作不被支持,用户可使用 SphereEx-DBPlusEngine 提供的的方式进行代替。

不兼容情况 #

MySQL #

PostgreSQL #

SQL
CREATE TABLE agg_data_2k AS SELECT g FROM generate_series(0,1999) g
CREATE SERVER alt_ferv1 FOREIGN DATA WRAPPER alt_fdw1
CREATE STATISTICS alt_stat1 ON a,b FROM alt_regress_1
ALTER TABLE alterlock SET(toast.autovacuum_enabled=off)
CREATE PUBLICATION pub1 FOR TABLE alter1.t1,ALL TABLES IN SCHEMA alter2

openGauss #

SQL
CREATE TABLE agg_data_2k AS SELECT g FROM generate_series(0,1999) g
CREATE FOREIGN DATA WRAPPER alt_fdw1
CREATE SERVER alt_ferv1 FOREIGN DATA WRAPPER alt_fdw1
CREATE STATISTICS alt_stat1 ON a,b FROM alt_regress_1
ALTER TABLE alterlock SET(toast.autovacuum_enabled=off)
CREATE PUBLICATION pub1 FOR TABLE alter1.t1,ALL TABLES IN SCHEMA alter2

Presto #

SQL
CREATE TABLE orders_by_date COMMENT ‘Summary of orders by date’ WITH (format = ‘ORC’) AS SELECT orderdate, sum(totalprice) AS price FROM orders GROUP BY orderdate
CALL test(name => ‘apple’, id => 123)
ALTER TABLE IF EXISTS users RENAME column IF EXISTS id to user_id
DEALLOCATE PREPARE my_query
DESCRIBE table_name
REVOKE GRANT OPTION FOR SELECT ON nation FROM ROLE PUBLIC