SQL功能对比
因为Ignite 3 使用了Calcite SQL引擎,所以很多功能发生了变化,大多数功能无需执行其他改动即可迁移,但是某些功能还是需要一些改动才能运行。
1.更改的函数
Ignite 3 中更改了以下功能,它们通过细微的更改就可以继续使用。
| Ignite 2 | Ignite 3 | 备注 |
|---|---|---|
DAY_OF_MONTH | DAYOFMONTH | 该函数被重命名。 |
DAY_OF_WEEK | DAYOFWEEK | 该函数被重命名。 |
DAY_OF_YEAR | DAYOFYEAR | 该函数被重命名。 |
IS_JSON value | IS JSON [VALUE] | 函数语法发生了变化,功能没变。 |
ISNULL | NVL | 该函数被重命名。 |
INSTR(a, b) | POSITION (b IN a) | 函数名和语法发生了变化,功能没变。 |
RANDOM_UUID | RAND_UUID | 该函数被重命名。 |
2.更改的数据类型
Ignite 3 中更改了以下数据类型,它们通过细微的更改就可以继续使用。
| Ignite 2 | Ignite 3 | 备注 |
|---|---|---|
BOOLEAN | BOOLEAN | 仅支持true和false值。 |
3.删除的函数
Ignite 3 中删除了以下函数,请按照以下建议调整代码。
| Ignite 2 | 备注 |
|---|---|
BITAND | 目前没有等效的。 |
BITGET | 目前没有等效的。 |
BITOR | 目前没有等效的。 |
BITXOR | 目前没有等效的。 |
BIT_AND | 目前没有等效的。 |
BIT_OR | 目前没有等效的。 |
COMPRESS | 目前没有等效的。 |
CONVERT | 目前没有等效的。 |
CURRENT_TIME | 目前没有等效的。 |
DECRYPT | 目前没有等效的。 |
ENCRYPT | 目前没有等效的。 |
EXPAND | 目前没有等效的。 |
FIRSTVALUE | 目前没有等效的。 |
FORMATDATETIME | 用CAST (datetimeval AS VARCHAR FORMAT 'format-string')替代。 |
GROUP_CONCAT | 目前没有等效的。 |
JSON_MODIFY | 目前没有等效的。 |
LASTVALUE | 目前没有等效的。 |
LOG | 目前没有等效的。 |
PARSEDATETIME | 用CAST (string AS datetime-type FORMAT 'format-string')替代。 |
ROUNDMAGIC | 目前没有等效的。 |
SECURE_RAND | 目前没有等效的。 |
STDDEV_POP | 目前没有等效的。 |
STDDEV_SAMP | 目前没有等效的。 |
VAR_POP | 目前没有等效的。 |
VAR_SAMP | 目前没有等效的。 |
ZERO | 目前没有等效的。 |
4.直接等效的函数
以下函数在 Ignite 3 中直接等效,无需任何修改即可正常运行:
ABSACOSASCIIASINATANATAN2AVGCASTCBRTCEILCEILINGCHAR_LENGTHCHRCOALESCECONCATCOSCOSHCOTCOUNTCURRENT_DATEDATEDIFFDAYNAMEDECODEDEGREESDIFFERENCEEXPEXTRACTFLOORFROM_BASE64GREATESTHOURINITCAPJSON_ARRAYJSON_OBJECTJSON_QUERYJSON_VALUELEFTLENGTHLNLOG10LOWERLTRIMMAXMD5MINMINUTEMODMONTHMONTHNAMENVLOCTET_LENGTHPIPOSITIONPOWERQUARTERRADIANSRANDREPEATREPLACEREVERSERIGHTROUNDRTRIMSECONDSHA1SIGNSINSINHSOUNDEXSPACESQRTSUBSTRSUBSTRINGSUMTANTANHTIMESTAMPADDTIMESTAMPDIFFTO_BASE64TRANSLATETRIMTRUNCATEUPPERWEEKYEAR
18624049226
