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

6.0版本與7.0版本兼容性注意事項(xiàng)

AnalyticDB PostgreSQL 6.0版AnalyticDB PostgreSQL 7.0版存在兼容性差異,當(dāng)您需要將實(shí)例從6.0版本升級(jí)到7.0版本時(shí),請(qǐng)先根據(jù)本文了解6.0版本與7.0版本兼容性注意事項(xiàng)。

數(shù)據(jù)類型

  • AnalyticDB PostgreSQL 7.0版刪除了以下被SQL標(biāo)準(zhǔn)類型(如timestamp)所淘汰的數(shù)據(jù)類型:

    • abstime

    • realtime

    • tinterval

    • timeInterval

  • AnalyticDB PostgreSQL 7.0版雖然保留了unknown關(guān)鍵字,但已不再支持unknown類型。具體內(nèi)容如下:

    • 不再支持以u(píng)nknown類型作為列類型。

      --- 不再支持直接作為列類型
      CREATE TABLE test(a INT, b UNKNOWN);
      ERROR:  COLUMN "b" has pseudo-type UNKNOWN
    • AnalyticDB PostgreSQL 7.0版中,CTAS語(yǔ)句的字符串常量不再識(shí)別為unknown類型,而是以就近原則來(lái)轉(zhuǎn)換類型或默認(rèn)轉(zhuǎn)換為text類型。

      --- CTAS:普通字符串常量或NULL,在adbpg6中被識(shí)別為unknown類型,而在adbpg7中被默認(rèn)轉(zhuǎn)換為text類型
       CREATE TABLE test AS SELECT 1 AS a, NULL AS b;
      
                      TABLE "public.test"
       Column |  Type   | Collation | Nullable | Default 
      --------+---------+-----------+----------+---------
       a      | integer |           |          | 
       b      | text    |           |          | 
      Distributed randomly
      
      --- 使用union,unknown類型會(huì)就近轉(zhuǎn)換為對(duì)應(yīng)列的同類型
      CREATE TABLE test AS SELECT 1::INT UNION SELECT NULL;
      
                     TABLE "public.test"
       Column |  Type   | Collation | Nullable | Default 
      --------+---------+-----------+----------+---------
       int4   | integer |           |          | 
      Distributed randomly

      當(dāng)字符串常量的位置無(wú)法就近獲取被轉(zhuǎn)換的類型時(shí),字符串常量默認(rèn)轉(zhuǎn)換為text類型,此時(shí)可能會(huì)發(fā)生類型相關(guān)的錯(cuò)誤。

      CREATE TABLE test(a INT);
      
      --- 兩層select的嵌套,讓內(nèi)部的字符串無(wú)法根據(jù)就近原則發(fā)現(xiàn)test表中int類型的存在
      INSERT INTO test SELECT a FROM (SELECT '1' AS a) t;
      ERROR:  COLUMN "a" IS OF type INTEGER but expression IS OF type text 
    • 對(duì)于部分函數(shù),如果輸入的參數(shù)錯(cuò)誤,字符串常量可能會(huì)出現(xiàn)unknown類型報(bào)錯(cuò)。

      --- string_agg的入?yún)⒅挥幸韵聝煞N
      string_agg(text,text)
      string_agg(bytea,bytea)
      --- 如果其它類型和字符串常量同時(shí)出現(xiàn)可能會(huì)以u(píng)nknown類型的報(bào)錯(cuò)展示
      CREATE TABLE test(a INT, b INT);
      SELECT a, string_agg(b,',') FROM test GROUP BY a;
      ERROR:  FUNCTION string_agg(INTEGER, UNKNOWN) does NOT exist 
    說(shuō)明

    AnalyticDB PostgreSQL 6.0版v6.3.11與AnalyticDB PostgreSQL 7.0版保持一致,不再支持unknown類型。AnalyticDB PostgreSQL 6.0版v6.6.2添加了開(kāi)關(guān)adbpg_enable_resolve_unknowns來(lái)控制是否支持unknown類型,并默認(rèn)關(guān)閉。

SQL語(yǔ)法

  • ALTER TABLE ... ADD PRIMARY KEY差異:

    • AnalyticDB PostgreSQL 7.0版主表執(zhí)行ALTER TABLE ... ADD PRIMARY KEY標(biāo)記列為NOT NULL時(shí),該更新操作會(huì)傳播到繼承的子表,即子表的對(duì)應(yīng)列會(huì)增加NOT NULL屬性。

    • AnalyticDB PostgreSQL 6.0版主表執(zhí)行ALTER TABLE ... ADD PRIMARY KEY標(biāo)記列為NOT NULL時(shí),該更新操作不會(huì)傳播到繼承的子表。

  • CREATE FUNCTION差異:

    • AnalyticDB PostgreSQL 7.0版移除CREATE FUNCTION中的WITH子句。

    • AnalyticDB PostgreSQL 6.0版CREATE FUNCTION中仍保留WITH子句。

  • 刪除OID列的特殊行為差異:

    • AnalyticDB PostgreSQL 7.0版系統(tǒng)表有普通的OID列。

    • AnalyticDB PostgreSQL 6.0版系統(tǒng)表中有隱藏的OID列。AnalyticDB PostgreSQL 6.0版在創(chuàng)建表的過(guò)程中,可以使用WITH OIDS來(lái)指定一個(gè)通常不可見(jiàn)的OID列,目前該功能已被刪除;列仍然可以顯式聲明為OID類型。 對(duì)具有使用WITH OIDS創(chuàng)建的列的表的操作將需要調(diào)整。

系統(tǒng)表

系統(tǒng)表在AnalyticDB PostgreSQL 7.0版進(jìn)行了以下變更,如果您的業(yè)務(wù)邏輯引用了以下系統(tǒng)表,請(qǐng)進(jìn)行修改否則將引起報(bào)錯(cuò)。

  • 刪除以下系統(tǒng)表:

    • pg_exttable

      AnalyticDB PostgreSQL 7.0版external系統(tǒng)表與foreign系統(tǒng)表合并為pg_foreign_table。其中external表的server被設(shè)為gp_exttable_server,相關(guān)屬性寫(xiě)入ftoptions

    • pg_partition

    • pg_partition_encoding

    • pg_partition_rule

      與分區(qū)表相關(guān)的系統(tǒng)表由gp_partition_templatepg_partitioned_table代替。

  • 新增分區(qū)表相關(guān)系統(tǒng)表:

    • gp_partition_template

      gp_partition_template定義了分區(qū)表在分區(qū)層次結(jié)構(gòu)中每個(gè)級(jí)別的子分區(qū)模板,表結(jié)構(gòu)信息如下。

      列名

      類型

      描述

      relid

      oid

      分區(qū)表的OID(頂層父表)。

      level

      int16

      分區(qū)在層次中的級(jí)別。

      template

      pg_node_tree

      模板結(jié)構(gòu)。

    • pg_partitioned_table

      pg_partitioned_table存放有關(guān)表如何被分區(qū)的信息,表結(jié)構(gòu)信息如下。

      列名

      類型

      引用

      描述

      partrelid

      oid

      pg_class.oid

      分區(qū)表pg_class項(xiàng)的OID。

      partstrat

      char

      無(wú)

      分區(qū)策略,取值說(shuō)明:

      • h:哈希分區(qū)表。

      • l:列表分區(qū)表。

      • r:范圍分區(qū)表。

      partnatts

      int2

      無(wú)

      分區(qū)鍵中的列數(shù)。

      partdefid

      oid

      pg_class.oid

      分區(qū)表默認(rèn)分區(qū)(子分區(qū))的pg_class項(xiàng)的OID,如果分區(qū)表沒(méi)有默認(rèn)分區(qū)則為0。

      partattrs

      int2vector

      pg_attribute.attnum

      長(zhǎng)度為partnatts值的數(shù)組,指示分區(qū)鍵的組成部分。例如,取值1 3表示第一和第三個(gè)列組成了分區(qū)鍵。該數(shù)組中的零表示對(duì)應(yīng)的分區(qū)鍵列是一個(gè)表達(dá)式而不是簡(jiǎn)單的列引用。

      partclass

      oidvector

      pg_opclass.oid

      partclass包含分區(qū)鍵中每一列要使用的操作符類的OID。詳見(jiàn)pg_opclass

      partcollation

      oidvector

      pg_opclass.oid

      partcollation包含分區(qū)鍵中每一列要用于分區(qū)排序規(guī)則的OID,如果該列不是一種可排序數(shù)據(jù)類型則為零。

      partexprs

      pg_node_tree

      無(wú)

      非簡(jiǎn)單列引用的分區(qū)鍵列的表達(dá)式樹(shù)(以nodeToString()的表達(dá)式)。該項(xiàng)是一個(gè)列表,如果所有分區(qū)鍵列都是簡(jiǎn)單列引用,則該域?yàn)榭铡?/p>

  • 更改以下系統(tǒng)表:

    系統(tǒng)表

    變更內(nèi)容

    pg_attribute

    • 新增atthasmissing列,指示是否有missing值。取值說(shuō)明:

      • true:該列具有缺失值選項(xiàng),可以包含NULL值。

      • false:該列不具有缺失值選項(xiàng),不允許包含NULL值。

    • 新增attidentity列,指示該列是否被定義為標(biāo)識(shí)列。取值說(shuō)明:

      • 'a':該列是標(biāo)識(shí)列,其值總是生成。

      • 'd':該列是標(biāo)識(shí)列,其值是通過(guò)序列或其他機(jī)制自動(dòng)生成的。

      • ''(零字節(jié)):該列不是標(biāo)識(shí)列。

    • 新增attgenerated列,指示該列是否為生成列。取值說(shuō)明:

      • 's':該列是生成列,其值為stored。

      • ''(零字節(jié)):該列不是生成列。

    pg_class

    • 刪除relstorage列,用于指示relkind的物理存儲(chǔ)方式。AnalyticDB PostgreSQL 7.0版中external表的relkind由'r'更改為'f'

    • 刪除relhasoids列,用于指示是否為表每行生成一個(gè)OID。AnalyticDB PostgreSQL 7.0版已經(jīng)刪除OID隱藏列。

    • 刪除relhaspkey列,用于指示是否有Primary Key Index(主鍵索引),AnalyticDB PostgreSQL 7.0版已刪除,需要檢查主鍵的應(yīng)用程序,應(yīng)查詢pg_index。

    • 新增relrowsecurity列,指示行級(jí)安全是否開(kāi)啟。取值說(shuō)明:

      • true :表啟用了行級(jí)安全性,可以應(yīng)用安全策略。

      • false :表未啟用行級(jí)安全性,默認(rèn)情況下所有用戶都可以訪問(wèn)表的所有數(shù)據(jù)。

    • 新增felforcerowsecurity列,跟蹤表是否強(qiáng)制啟用了行級(jí)安全性,如果行級(jí)安全性(啟用時(shí))也適用于表?yè)碛姓邉t為真(true)。

    • 新增relispartition列,指示是否為分區(qū)表。取值說(shuō)明:

      • true :該表是分區(qū)表的一個(gè)分區(qū)。

      • false :該表不是分區(qū)表或者是分區(qū)表的父表。

    • 新增relrewrite列,指示表在DDL操作期間是否具有重寫(xiě)規(guī)則。取值說(shuō)明:

      • true :表具有重寫(xiě)規(guī)則。

      • false :表沒(méi)有定義重寫(xiě)規(guī)則或者不適用于重寫(xiě)規(guī)則。

    • 新增relpartbound列,為pg_node_tree類型,表明分區(qū)邊界的內(nèi)部表達(dá)。

    pg_index

    • 新增indnkeyatts列,指示Index中Key列的數(shù)量。AnalyticDB PostgreSQL 7.0版對(duì)Index開(kāi)始加入Including語(yǔ)句,可以將非Index鍵的列寫(xiě)入葉子節(jié)點(diǎn)方便查找。

    pg_proc

    • 將protransform列更名為prosupport,調(diào)用該函數(shù)時(shí)可以通過(guò)此列指定的函數(shù)進(jìn)行簡(jiǎn)化。

    • 刪除proisagg列,指示函數(shù)是否為一個(gè)聚集函數(shù)。

    • 刪除proiswindow列,指示函數(shù)是否為一個(gè)窗口函數(shù)。

    • 新增prokind列,用于指示函數(shù)的種類。取值說(shuō)明:

      • f:普通函數(shù)。

      • p:存儲(chǔ)過(guò)程。

      • a:聚集函數(shù)。

      • w:窗口函數(shù)。

    • 新增proparallel列,指示該函數(shù)在并行模式下是否能安全運(yùn)行。取值說(shuō)明:

      • s:能在并行模式下不受限制安全運(yùn)行的函數(shù)。

      • r:可以在并行模式下運(yùn)行,但是只限于由并行分組的領(lǐng)導(dǎo)者執(zhí)行的函數(shù)。

      • u:在并行模式中不安全的函數(shù),這類函數(shù)的存在會(huì)強(qiáng)制一個(gè)順序執(zhí)行計(jì)劃。

    • 新增protrftypes列,存儲(chǔ)需要應(yīng)用轉(zhuǎn)換數(shù)據(jù)類型的OID。

    pg_statistic

    • 新增stacoll列,指示統(tǒng)計(jì)信息的收集方法。取值說(shuō)明:

      • N:排序規(guī)則用于導(dǎo)出存儲(chǔ)在第N個(gè)“槽”中的統(tǒng)計(jì)信息。例如,可排序列的直方圖槽將顯示定義數(shù)據(jù)排序順序的排序規(guī)則。

      • 0:表示不可整理數(shù)據(jù)。

擴(kuò)展插件

以下擴(kuò)展插件,AnalyticDB PostgreSQL 7.0版可能暫時(shí)無(wú)法使用。

插件名

描述

adbpg_desensitization

進(jìn)行SQL脫敏。

adbpg_hardware_bench

評(píng)估硬件的適用性。

address_standardizer

用于將地址解析為組元素,一般用于支持地理編碼地址標(biāo)準(zhǔn)化步驟。

address_standardizer_data_us

提供了美國(guó)地址標(biāo)準(zhǔn)化和解析的功能。

auto_partition

管理日期分區(qū)。

diskquota

磁盤配額程序。

fastann

向量化數(shù)據(jù)庫(kù)引擎。

hyjal_pb_formatter

支持讀取hyjal protobuf數(shù)據(jù)。

madlib

提供用于可擴(kuò)展數(shù)據(jù)庫(kù)內(nèi)分析的開(kāi)源庫(kù)。

morton_code

莫頓碼編碼器。

multi_master

提供Multi-Master特性的UDF。

Multicorn

實(shí)現(xiàn)自定義外部數(shù)據(jù)源的查詢,使用Multicorn插件需要一定的Python編程知識(shí)。

open_analytic

對(duì)非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行分析。

oss_ext

用于支持OSS外表的協(xié)議。

AnalyticDB PostgreSQL 7.0版不再支持,使用oss_fdw替換。

PL/Java

提供了將Java代碼嵌入到PostgreSQL數(shù)據(jù)庫(kù)中的能力。

PL/Python

提供了將Python代碼嵌入到PostgreSQL數(shù)據(jù)庫(kù)中的能力。

AnalyticDB PostgreSQL 7.0版不再支持,更改為PL/Python3u。

PL/Python2u

允許在PostgreSQL數(shù)據(jù)庫(kù)中使用Python 2語(yǔ)言編寫(xiě)存儲(chǔ)過(guò)程、觸發(fā)器和函數(shù)。

AnalyticDB PostgreSQL 7.0版不再支持,更改為PL/Python3u。

querycache

提供QueryCache特性的UDF。

redis_fdw

用于查詢Redis服務(wù)器的外部數(shù)據(jù)包裝器。

關(guān)鍵字

AnalyticDB PostgreSQL 7.0版新增、修改、刪除了部分關(guān)鍵字。(數(shù)據(jù)庫(kù)對(duì)象的命名,不可與關(guān)鍵字沖突)。

關(guān)鍵字不同的分類及含義,可以通過(guò)如下命令查看(6.0版和7.0版均適用)。

SELECT * FROM pg_get_keywords();

AnalyticDB PostgreSQL 7.0版字符分類碼說(shuō)明如下:

catcode

說(shuō)明

U

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

C

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

T

保留,但是可用于函數(shù)、類型名。

R

保留,不可用于任何對(duì)象名稱。

AnalyticDB PostgreSQL 7.0版AnalyticDB PostgreSQL 6.0版關(guān)鍵字差異如下:

關(guān)鍵字

AnalyticDB PostgreSQL 6.0版

AnalyticDB PostgreSQL 7.0版

access_key_id

unreserved

無(wú)此關(guān)鍵字

attach

無(wú)此關(guān)鍵字

unreserved

call

無(wú)此關(guān)鍵字

unreserved

columns

無(wú)此關(guān)鍵字

unreserved

coordinator

無(wú)此關(guān)鍵字

unreserved

cube

unreserved(不可用于函數(shù)、類型名)

unreserved

depends

無(wú)此關(guān)鍵字

unreserved

detach

無(wú)此關(guān)鍵字

unreserved

endpoint

無(wú)此關(guān)鍵字

unreserved

generated

無(wú)此關(guān)鍵字

unreserved

groups

無(wú)此關(guān)鍵字

unreserved

import

無(wú)此關(guān)鍵字

unreserved

include

無(wú)此關(guān)鍵字

unreserved

incremental

unreserved

無(wú)此關(guān)鍵字

initplan

無(wú)此關(guān)鍵字

unreserved

json

unreserved

無(wú)此關(guān)鍵字

jsonline

unreserved

無(wú)此關(guān)鍵字

lc_collate

unreserved

無(wú)此關(guān)鍵字

lc_ctype

unreserved

無(wú)此關(guān)鍵字

library

unreserved

無(wú)此關(guān)鍵字

locked

無(wú)此關(guān)鍵字

unreserved

logged

無(wú)此關(guān)鍵字

unreserved

manifest

unreserved

無(wú)此關(guān)鍵字

merge

unreserved

無(wú)此關(guān)鍵字

method

無(wú)此關(guān)鍵字

unreserved

multisort

unreserved

無(wú)此關(guān)鍵字

new

無(wú)此關(guān)鍵字

unreserved

old

無(wú)此關(guān)鍵字

unreserved

orc

unreserved

無(wú)此關(guān)鍵字

overriding

無(wú)此關(guān)鍵字

unreserved

persistently

無(wú)此關(guān)鍵字

unreserved

parquet

unreserved

無(wú)此關(guān)鍵字

policy

無(wú)此關(guān)鍵字

unreserved

procedures

無(wú)此關(guān)鍵字

unreserved

referencing

無(wú)此關(guān)鍵字

unreserved

retrieve

無(wú)此關(guān)鍵字

unreserved

rollup

unreserved(不可用于函數(shù)、類型名)

unreserved

routine

無(wú)此關(guān)鍵字

unreserved

routines

無(wú)此關(guān)鍵字

unreserved

schemas

無(wú)此關(guān)鍵字

unreserved

secret_access_key

unreserved

無(wú)此關(guān)鍵字

sets

unreserved(不可用于函數(shù)、類型名)

unreserved

skip_ao_aux_table

unreserved

無(wú)此關(guān)鍵字

skip

無(wú)此關(guān)鍵字

unreserved

sort

unreserved

無(wú)此關(guān)鍵字

sorted

unreserved

無(wú)此關(guān)鍵字

storage_cold

unreserved

無(wú)此關(guān)鍵字

storage_hot

unreserved

無(wú)此關(guān)鍵字

stored

無(wú)此關(guān)鍵字

unreserved

support

無(wú)此關(guān)鍵字

unreserved

synchronization

unreserved

無(wú)此關(guān)鍵字

tablesample

無(wú)此關(guān)鍵字

reserved(不可用于函數(shù)、類型名)

transform

無(wú)此關(guān)鍵字

unreserved

ttl

unreserved

無(wú)此關(guān)鍵字

unload

unreserved

無(wú)此關(guān)鍵字

unsorted

unreserved

無(wú)此關(guān)鍵字

xmlnamespaces

無(wú)此關(guān)鍵字

unreserved(不可用于函數(shù)、類型名)

xmltable

無(wú)此關(guān)鍵字

unreserved(不可用于函數(shù)、類型名)

zorder

reserved

無(wú)此關(guān)鍵字

函數(shù)相關(guān)

  • AnalyticDB PostgreSQL 7.0版重命名預(yù)寫(xiě)式日志目錄pg_xlog 為pg_wal,并重命名事務(wù)狀態(tài)目錄pg_clog為pg_xact,因此名稱引用了“xlog”的SQL函數(shù)、工具和選項(xiàng)等都被更改為“wal”。例如,pg_switch_xlog()被改為pg_switch_wal()pg_receivexlog被改為pg_receivewal--xlogdir被改為--waldir

  • AnalyticDB PostgreSQL 7.0版修改SQL風(fēng)格的substring(),使其具有符合標(biāo)準(zhǔn)的貪婪行為。在模式以多種方式匹配的情況下,初始子模式會(huì)被視為匹配盡可能少的文本,而不是匹配盡可能多的文本。例如,%#"aa*#"%模式當(dāng)前會(huì)從輸入中選擇第一組a,而不是最后一組。

其他

為提高安全性,AnalyticDB PostgreSQL 7.0版使用sha256算法對(duì)密碼進(jìn)行加密,sha256算法的安全性遠(yuǎn)高于AnalyticDB PostgreSQL 6.0版默認(rèn)的md5算法。您可以使用遷移方式進(jìn)行升級(jí),升級(jí)后請(qǐng)重置密碼。具體操作,請(qǐng)參見(jiàn)AnalyticDB PostgreSQL版間的數(shù)據(jù)遷移