diff --git "a/content/zh/docs/AboutopenGauss/\351\200\273\350\276\221\345\244\215\345\210\266.md" "b/content/zh/docs/AboutopenGauss/\351\200\273\350\276\221\345\244\215\345\210\266.md"
index 0f433d65c00a21ae14eae020f4e1966bc3842f4c..f18ca1d8b5903895c4c5e4661327d402b9560016 100644
--- "a/content/zh/docs/AboutopenGauss/\351\200\273\350\276\221\345\244\215\345\210\266.md"
+++ "b/content/zh/docs/AboutopenGauss/\351\200\273\350\276\221\345\244\215\345\210\266.md"
@@ -21,9 +21,19 @@ DN通过物理日志反解析为逻辑日志,DRS等逻辑复制工具从DN抽
- openGauss 1.0.0逻辑解码新增全量+增量抽取日志的方案。
- openGauss 1.1.0逻辑解码新增备机支持逻辑解码。
- openGauss 6.0.0-RC1逻辑复制支持如下DDL操作:
- - CREATE/DROP TABLE|TABLE PARTITION
- - CREATE/DROP INDEX
-
+ - CREATE/DROP/ALTER/TRUNCATE/RENAME TABLE | TABLE PARTITION | TABLE SUBPARTITION
+ - CREATE/ALTER/DROP INDEX
+ - CREATE/ALTER/DROP VIEW
+ - CREATE/ALTER/DROP/REFRESH [INCREMENTAL] MATERIALIZED VIEW
+ - CREATE/ALTER/DROP TYPE
+ - CREATE/ALTER/DROP FUNCTION
+ - CREATE/ALTER/DROP PROCEDURE
+ - CREATE/ALTER/DROP TRIGGER
+ - CREATE/DROP PACKAGE
+ - CREATE/DROP SCHEMA
+ - CREATE/DROP SEQUENCE
+ - COMMENT/GRANT/REVOKE
+
## 特性约束
不支持列存复制。
diff --git "a/content/zh/docs/DatabaseOMGuide/\351\200\273\350\276\221\345\244\215\345\210\266\346\224\257\346\214\201DDL\346\223\215\344\275\234.md" "b/content/zh/docs/DatabaseOMGuide/\351\200\273\350\276\221\345\244\215\345\210\266\346\224\257\346\214\201DDL\346\223\215\344\275\234.md"
index 7d2081b7447c00481a2f0e2de3548d8151b08b5f..70b75ee9d1de0add725524b251124463f6288e20 100644
--- "a/content/zh/docs/DatabaseOMGuide/\351\200\273\350\276\221\345\244\215\345\210\266\346\224\257\346\214\201DDL\346\223\215\344\275\234.md"
+++ "b/content/zh/docs/DatabaseOMGuide/\351\200\273\350\276\221\345\244\215\345\210\266\346\224\257\346\214\201DDL\346\223\215\344\275\234.md"
@@ -4,19 +4,33 @@
openGauss在逻辑复制过程中支持如下DDL操作:
-- CREATE/DROP TABLE|TABLE PARTITION
-- CREATE/DROP INDEX
+- CREATE/DROP/ALTER/TRUNCATE/RENAME TABLE | TABLE PARTITION | TABLE SUBPARTITION
+- CREATE/ALTER/DROP INDEX
+- CREATE/ALTER/DROP VIEW
+- CREATE/ALTER/DROP/REFRESH [INCREMENTAL] MATERIALIZED VIEW
+- CREATE/ALTER/DROP TYPE
+- CREATE/ALTER/DROP FUNCTION
+- CREATE/ALTER/DROP PROCEDURE
+- CREATE/ALTER/DROP TRIGGER
+- CREATE/DROP PACKAGE
+- CREATE/DROP SCHEMA
+- CREATE/DROP SEQUENCE
+- COMMENT/GRANT/REVOKE
## 注意事项
- 只支持行存表的DDL操作。
+- TYPE仅支持复合类型和枚举类型。
- 不支持列存,ustore存储引擎。
- 在订阅端手动删除表会导致DDL同步失败,发布订阅阻塞。
- 不支持在对表进行相关的表结构操作中调用VOLATILE函数。
>在为表增加一个字段并指定默认值中执行了VOLATILE函数,而这个函数中进行了创建表的DDL操作,这样在新增字段并为其计算默认值的过程中会因为调用VOLATILE函数写入其他DDL日志,导致后续在解码时读取到这个DDL日志时进行了重复的操作。
-
+- 在逻辑复制中使用ALTER TABLE时会有如下限制:
+ - 当ALTER TABLE修改表字段类型,使用USING子句设置字段值时,要求表上必须有replication identity字段,并且USING子句修改的表字段不为该标识符字段。
+ - 当ALTER TABLE修改或新增表字段为AUTO_INCREMENT自增列时,要求表上必须有replication identity字段,并且USING子句修改的表字段不为该标识符字段。
+ - 当ALTER TABLE新增表字段,并且表字段类型不为内置类型,即需要每个元组都重新计算其默认值,要求表上必须设置replication identity。
## 语法格式
diff --git "a/content/zh/docs/SQLReference/\344\275\277\347\224\250\346\270\270\346\240\207\345\210\233\345\273\272type.md" "b/content/zh/docs/SQLReference/\344\275\277\347\224\250\346\270\270\346\240\207\345\210\233\345\273\272type.md"
new file mode 100644
index 0000000000000000000000000000000000000000..de511dca156486c69249a72641d16d875d0f3fe3
--- /dev/null
+++ "b/content/zh/docs/SQLReference/\344\275\277\347\224\250\346\270\270\346\240\207\345\210\233\345\273\272type.md"
@@ -0,0 +1,108 @@
+# 使用游标创建type
+
+## 功能描述
+
+该功能用于在包package或者匿名块、存储过程、函数中使用record类型创建一个游标的type类型。
+
+## 注意事项
+
+- 创建的type为弱游标类型。
+- 该type类型如果作为out参数返回是游标类型。
+
+
+## 语法格式
+
+```sql
+TYPE type_name IS REF CURSOR RETURN record_name ;
+```
+
+## 参数说明
+
+- **type_name**
+
+ 定义的类型的名称。
+- **record_name**
+
+ 使用数据类型说明符 RECORD 定义的用户定义类型的名称。
+
+
+
+## 兼容性
+
+暂不支持如下语法:
+
+```sql
+TYPE type_name IS REF CURSOR
+ [ RETURN
+ { {db_table_or_view | cursor | cursor_variable}%ROWTYPE
+ | record%TYPE
+ | ref_cursor_type
+ }
+ ] ;
+```
+
+## 示例
+
+**示例1:** 使用record类型创建一个游标的type类型。
+
+1、创建测试表t。
+
+```sql
+create table t(id int, name varchar2(30));
+```
+
+2、声明游标类型。
+
+```sql
+declare
+type RECORD_ACCOUNT_LIST is record(id int,name varchar2(30));
+type CUR_ACCOUNT_LIST is ref cursor return RECORD_ACCOUNT_LIST;
+cur_accountlist CUR_ACCOUNT_LIST;
+begin
+open cur_accountlist for select * from t;
+end;
+/
+```
+
+返回结果如下,则表示创建成功:
+
+```sql
+ANONYMOUS BLOCK EXECUTE
+```
+
+
+
+**示例2:** 弱游标类型。
+
+1、创建测试表t1并插入数据。
+
+```sql
+create table t1(id int, name varchar2(30));
+insert into t1 values(1,'a1');
+```
+
+2、定义一个弱类型游标。
+
+```sql
+declare
+type RECORD_ACCOUNT_LIST1 IS RECORD (id int, name1 varchar2(30));
+type CUR_ACCOUNT_LIST1 is ref cursor return RECORD_ACCOUNT_LIST1;
+cur_accountlist1 CUR_ACCOUNT_LIST1;
+rc_list RECORD_ACCOUNT_LIST1;
+begin
+open cur_accountlist1 for select * from t1;
+loop
+fetch cur_accountlist1 into rc_list;
+exit when cur_accountlist1%notfound;
+dbms_output.put_line(rc_list.id||' '||rc_list.name1);
+end loop;
+end;
+/
+```
+
+返回结果如下,则表示创建成功:
+
+```sql
+ANONYMOUS BLOCK EXECUTE
+```
+
diff --git "a/content/zh/docs/SQLReference/\346\270\270\346\240\207.md" "b/content/zh/docs/SQLReference/\346\270\270\346\240\207.md"
index 88af172cb66d66cee197de60e0e5eb783f5b3349..b6c20cf15cfaf62eb96cf241211c01a963f21fe3 100644
--- "a/content/zh/docs/SQLReference/\346\270\270\346\240\207.md"
+++ "b/content/zh/docs/SQLReference/\346\270\270\346\240\207.md"
@@ -1,6 +1,7 @@
# 游标
为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。
+支持使用游标作为插入值。
## 语法格式
diff --git a/content/zh/docs/ToolandCommandReference/gs_dump.md b/content/zh/docs/ToolandCommandReference/gs_dump.md
index d8e9fe5b72dd875c6be3d57dcf46fd458900f42b..f80affc62cf984df531b8207bbcbadb426988f91 100644
--- a/content/zh/docs/ToolandCommandReference/gs_dump.md
+++ b/content/zh/docs/ToolandCommandReference/gs_dump.md
@@ -426,10 +426,6 @@ export PGDATABASE=postgres
输出符合SQL标准的SET SESSION AUTHORIZATION命令而不是ALTER OWNER命令来确定对象所有权。这样令转储更加符合标准,但是如果转储文件中的对象的历史有些问题,那么可能不能正确恢复。并且,使用SET SESSION AUTHORIZATION的转储需要数据库系统管理员的权限才能转储成功,而ALTER OWNER需要的权限则低得多。
-- --with-encryption=AES128
-
- 指定转储数据需用AES128进行加密。
-
- --with-key=KEY
AES128密钥长度规则如下:
@@ -437,11 +433,9 @@ export PGDATABASE=postgres
- 密钥长度为8~16字符。
- 至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限定为~!@#$%^&*()-_=+\|[]{};:,<.>/?)四类字符中的三类字符。
-  **说明:**
-
- - 使用gs_dump工具进行加密导出时,仅支持plain格式导出。通过-F plain导出的数据,需要通过gsql工具进行导入,且如果以加密方式导入,在通过gsql导入时,需要指定--with-key参数。
-
- - 不支持加密导出存储过程和函数。
+ > **说明:**
+ >- 使用gs_dump工具进行加密导出时,仅支持plain格式导出。通过-F plain导出的数据,需要通过gsql工具进行导入,且如果以加密方式导入,在通过gsql导入时,需要指定--with-key参数。
+ >- 不支持加密导出存储过程和函数。
- --with-salt=RANDVALUES
diff --git a/content/zh/docs/ToolandCommandReference/gs_dumpall.md b/content/zh/docs/ToolandCommandReference/gs_dumpall.md
index f27086205ab2df2b6b8e3ab6871876a35b64aa69..a179be49fd227dad7a219c6313823e7761365fe2 100644
--- a/content/zh/docs/ToolandCommandReference/gs_dumpall.md
+++ b/content/zh/docs/ToolandCommandReference/gs_dumpall.md
@@ -165,16 +165,25 @@ gs_dumpall [OPTION]...
输出符合SQL标准的SET SESSION AUTHORIZATION命令而不是ALTER OWNER命令来确定对象所有权。这样令转储更加符合标准,但是如果转储文件中的对象的历史有些问题,那么可能不能正确恢复。并且,使用SET SESSION AUTHORIZATION的转储需要数据库系统管理员的权限才能转储成功,而ALTER OWNER需要的权限则低得多。
-- --with-encryption=AES128
+- --with-encryption=AES128/SWS-KMS-SM4/TAS-KMS-SM4
- 指定转储数据需用AES128进行加密。
+ 指定转储数据使用的加密方式(算法)。支持AES128/SWS-KMS-SM4/TAS-KMS-SM4。
+
+ > **说明:**
+ >
+ >- 该选项必须与--with-key同时使用。
+ >- 当加密方式为SWS-KMS-SM4时,必须与--with-userpin同时使用。
- --with-key=KEY
- AES128密钥长度规则如下:
+ - AES128密钥长度规则如下:
+
+ - 密钥长度为8~16字符。
+ - 至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限定为~!@#$%^&*()-_=+\|[]{};:,<.>/?)四类字符中的三类字符。
+
+ - 加密算法为TAS-KMS-SM4时,--with-key指定的是江南天安KMS上创建的密钥索引,openGauss限制其索引范围必须是1 ~ 2048。
+ - 加密算法为SWS-KMS-SM4时,--with-key指定的是三未信安KMS上创建的密钥名称。
- - 密钥长度为8~16字符。
- - 至少包含大写字母(A-Z)、小写字母(a-z)、数字(0-9)、非字母数字字符(限定为~!@#$%^&*()-_=+\|[]{};:,<.>/?)四类字符中的三类字符。
- --include-Extension
diff --git a/content/zh/docs/ToolandCommandReference/gs_restore.md b/content/zh/docs/ToolandCommandReference/gs_restore.md
index ee46f5c12995eee6c7666fc8c4b3a6ae37feca4a..dfcc4ae163700a56a6a0f83c4d829a0bb57abf28 100644
--- a/content/zh/docs/ToolandCommandReference/gs_restore.md
+++ b/content/zh/docs/ToolandCommandReference/gs_restore.md
@@ -257,6 +257,26 @@ gs_restore [OPTION]... FILE
使用管道传输密码,禁止在终端使用。
+- --with-decryption=AES128/SM4
+
+ 还原数据时采用AES128或SM4硬件加密方式解密。
+ 若导出时使用--with-encryption指定了加密方式,则恢复时需要指定此参数并采用同样的方式进行解密。
+
+ > **说明:**
+ >
+ >该选项必须与--with-key和--with-salt同时使用。
+
+- --with-key=KEY
+
+ 硬件加密设备内部的密钥索引。
+
+- --with-salt=RANDVALUES
+
+ 用于解密的随机盐值。
+
+ - 必须为16个字符的字符串。
+ - 恢复时指定的盐值必须与加密导出时指定的盐值相同。
+
>  **须知:**
>- 如果安装过程中有任何本地数据要添加到template1数据库,请谨慎将gs\_restore的输出载入到一个真正的空数据库中;否则可能会因为被添加对象的定义被复制,而出现错误。要创建一个无本地添加的空数据库,需从template0而非template1复制,例如:
```
diff --git a/content/zh/menu/index.md b/content/zh/menu/index.md
index 775c1ca93671bc41b4abcc639369738d26d535a0..30fbfc2a724400969a34835f8bf34de6cafb3a30 100644
--- a/content/zh/menu/index.md
+++ b/content/zh/menu/index.md
@@ -1432,6 +1432,7 @@ headless: true
- [使用]({{< relref "./docs/SQLReference/使用_增量物化视图.md" >}})
- [支持和约束]({{< relref "./docs/SQLReference/支持和约束-1.md" >}})
- [游标]({{< relref "./docs/SQLReference/游标.md" >}})
+ - [使用游标创建type]({{< relref "./docs/SQLReference/使用游标创建type.md" >}})
- [匿名块]({{< relref "./docs/SQLReference/匿名块.md" >}})
- [存储过程]({{< relref "./docs/SQLReference/存储过程.md" >}})
- [存储过程]({{< relref "./docs/SQLReference/存储过程_SQLReference.md" >}})