日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

4.3版本與6.0版本兼容性注意事項

本文介紹了云原生數據倉庫AnalyticDB PostgreSQL版 4.3版本與6.0版本在兼容性上的注意事項,如果您需要將實例從4.3版本升級到6.0版本,請根據實際情況對本文提及的部分進行相應的修改。

優化器

名稱

V4.3

V6.0

默認優化器

Legacy優化器

ORCA優化器

4.3版本與6.0版本都支持Legacy優化器和ORCA優化器,可根據需求選擇使用,有關優化器的選擇,請參見兩種優化器的選擇

轉義符

  • 在6.0版本中,字符串的轉義字符\ ,將作為字符串本身,不再表示轉義符。

  • 可執行以下語句保持和4.3版本語義一致,但不建議這樣操作。

    set standard_conforming_strings = off;
    說明

    上述語句僅對session級別生效。如果需要對集群生效,請提交工單,由云原生數據倉庫AnalyticDB PostgreSQL版后臺技術人員進行設置。

類型轉換

  • 6.0版本中不再支持YYYYMMDDHH24MISS格式的字符串自動強轉為時間戳類型。您可以通過系統內建函數to_timestamp/to_char,進行YYYYMMDDHH24MISS格式的字符串和時間戳之間的轉換。

  • 6.0版本不再支持數字類型隱式轉換成TEXT類型。如果4.3版本中有這類語句,升級到6.0版本后,您可以通過增加Function支持這類場景。比如:

    create or replace function substr(numeric, integer,integer)returns text as $$
    select substr($1::text,$2,$3);
    $$ language sql IMMUTABLE strict;
    create or replace function pg_catalog.btrim(str numeric) returns text as $$
    return $_[0];
    $$ language plperl IMMUTABLE strict;
    create or replace function to_date(timestamp, text) returns date as $$
    select to_date($1::text,$2);
    $$ language sql IMMUTABLE strict;
    create or replace function to_date(integer, text) returns date as $$
    select to_date($1::text,$2);
    $$ language sql IMMUTABLE strict;
  • 如果有SQL或Function需要隱式轉換成TEXT類型的場景,會受到影響,需要手工改寫。

外部表錯誤日志

6.0版本不支持在create external tablecopy語句時,使用into error_table子句。您可以使用系統函數代替into error_table子句的功能。

gp_read_error_log('$external_table')
gp_truncate_error_log('$external_table')

數據類型

  • NUMERIC類型的文件存儲格式變化,會影響到磁盤空間使用;

  • MONEY類型由32位改為64位,會影響磁盤空間使用;

  • 6.0版本不支持以下數據類型作為分布鍵:

    • abstime

    • reltime

    • tinterval

    • money

    • anyarray

關鍵字

6.0版本新增、修改、刪除了部分關鍵字。(數據庫對象的命名,不可以與關鍵字沖突)。

關鍵字不同的分類,含義不一樣。可以通過如下命令,查看所有關鍵字和具體分類。(4.3 和 6.0 版本均適用)。

select * from pg_get_keywords();
表 1. 關鍵字分類說明

catcode

catdesc

說明

U

unreserved

不保留,可以用于任何對象(視圖、表、函數、類型、索引、字段、類型等)。

C

unreserved (cannot be function or type name)

不保留,但是不可用于函數、類型名。

T

reserved (can be function or type name)

保留,但是可用于函數、類型名。

R

reserved

保留,不可用于任何對象名稱。

表 2. 4.3版和6.0版本分類不同的關鍵字列表如下:

關鍵字

v4.3

v6.0

between

reserved

unreserved (cannot be function or type name)

collation

reserved (can be function or type name)

concurrently

unreserved

reserved (can be function or type name)

convert

unreserved (cannot be function or type name)

filter

reserved

unreserved

lateral

-

reserved

new

reserved

off

reserved

unreserved

old

reserved

percentile_cont

unreserved (cannot be function or type name)

percentile_disc

unreserved (cannot be function or type name)

range

reserved

unreserved

reindex

unreserved

reserved

rows

reserved

unreserved

sort

reserved

reserved (can be function or type name)

variadic

reserved

系統表

系統表在4.3版和6.0版中有部分區別,如果您的業務邏輯引用了以下系統表,請進行修改否則將引起報錯。

V4.3

V6.0

說明

pg_class.reltoastidxid

已刪除

pg_stat_activity.procpid

pg_stat_activity.pid

進程號

pg_stat_activity.current_query

pg_stat_activity.state

pg_stat_activity.query

拆分為兩列,state標識后端狀態,query標識當前執行的請求

gp_distribution_policy.attrnums

gp_distribution_policy.distkey

修改列名,且數據類型變int2vector

sesion_level_memory_consumption.__gp_localid

sesion_level_memory_consumption.__gp_masterid

已刪除

pg_filespace

pg_filespace_entry

已刪除

內置函數的參數

在6.0版本中,一些內置函數的參數發生了變化。

V4.3

V6.0

說明

int4_avg_accum(bytea, integer)

int4_avg_accum(bigint[], integer)

string_agg(expression)

string_agg(expression, delimiter)

把一個表達式變成字符串

其他用法

名稱

V4.3

V6.0

left()函數

不支持

支持

update分布鍵

不支持

支持