华为云用户手册

  • hudi_get_max_commit(regclass) 描述:获取当前Hudi外表最新commit的时间戳和数据写入时间。 返回值类型:record 示例: 1 2 3 4 5 SELECT * FROM hudi_get_max_commit('public.hudi_mor_ft'); max_commit | write_time ----------------+------------------------ 20221207141822 | 2022-12-07 14:18:30+08 (1 row)
  • hudi_get_commit(regclass, cstring, int) 描述:获取当前Hudi外表从指定commit开始,到第N个commit的时间戳和对应commit数据写入时间。当第N个commit不存在,则返回最新的commit和对应数据写入时间。该函数仅9.1.0.100及以上版本支持。 返回值类型:record 示例: 1 2 3 4 5 SELECT * FROM hudi_get_commit('public.hudi_mor_ft', '20230329174744657', 3); end_commit | write_time -------------------+------------------------ 20230329174808908 | 2023-08-31 15:43:08+08 (1 row)
  • hudi_sync_task_submit(regclass, regclass) 描述:提交Hudi自动同步任务。第一个入参为同步目标表,第二个入参为HUDI外表。提交任务成功会返回任务的task-id。 返回值类型:text 同步目标表必须包含主键,且主键需要与hudi recordkey一致。 如果hudi表包含precombine字段,那么同步目标表也必须包含与之对应的字段。 如果同步目标表只包含主键(除了主键外没有其他字段),则无法正常提交同步任务。 用户需要有同步目标表的insert和update权限、HUDI外表的select权限,否则无法正常提交同步任务。 示例: 1 2 3 4 5 SELECT hudi_sync_task_submit('public.hudi_sync_i','public.hudi_mor_ft'); hudi_sync_task_submit -------------------------------------- 6465efe2-3ea1-0b00-dde5-b57dfb30fffe (1 row)
  • hudi_get_options(regclass) 描述:查询Hudi外表的属性信息(hoodie.properties)。以key-value键值对表示。 返回值类型:setof record 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 select * from hudi_get_options('public.hudi_mor_ft'); key | value -------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------- hoodie.table.precombine.field | col_int hoodie.datasource.write.drop.partition.columns | false hoodie.table.partition.fields | hoodie.table.type | MERGE_ON_READ hoodie.archivelog.folder | archived hoodie.compaction.payload.class | org.apache.hudi.common.model.OverwriteWithLatestAvroPayload hoodie.timeline.layout.version | 1 hoodie.table.version | 4 hoodie.table.recordkey.fields | col_bigint hoodie.database.name | default hoodie.datasource.write.partitionpath.urlencode | false hoodie.table.name | lt_test_mor_014 hoodie.table.keygenerator.class | org.apache.hudi.keygen.ComplexKeyGenerator hoodie.datasource.write.hive_style_partitioning | true hoodie.table.create.schema | {"type"\:"record","name"\:"lt_test_mor_014_record","namespace"\:"hoodie.lt_test_mor_014","fields"\:[{"name"\:"_hoodie_commit_time","type"\:[ "string","null"]},{"name"\:"_hoodie_commit_seqno","type"\:["string","null"]},{"name"\:"_hoodie_record_key","type"\:["string","null"]},{"name"\:"_hoodie_partition_path","type"\:["string","null "]},{"name"\:"_hoodie_file_name","type"\:["string","null"]},{"name"\:"col_bigint","type"\:["long","null"]},{"name"\:"col_int","type"\:["int","null"]},{"name"\:"col_text","type"\:["string","nu ll"]},{"name"\:"col_text2","type"\:["string","null"]}]} hoodie.table.checksum | 515660817 (16 rows)
  • hudi_sync_task_submit(regclass, regclass, interval) 描述:功能与hudi_sync_task_submit(regclass, regclass)一致。不同之处在于,用户可以额外指定一个interval类型入参,用于指定任务的调度周期,取值范围为5秒至24小时。提交任务成功会返回任务的task-id。该函数仅8.2.1.300及以上版本支持。 返回值类型:text 同步目标表必须包含主键,且主键需要与hudi recordkey一致。 如果hudi表包含precombine字段,那么同步目标表也必须包含与之对应的字段。 如果同步目标表只包含主键(除了主键外没有其他字段),则无法正常提交同步任务。 用户需要有同步目标表的insert和update权限、HUDI外表的select权限,否则无法正常提交同步任务。 示例: 1 2 3 4 5 SELECT hudi_sync_task_submit('public.hudi_sync_i','public.hudi_mor_ft','1 hour'); hudi_sync_task_submit -------------------------------------- 6465efe2-3ea1-0b00-dde5-b57dfb30fffe (1 row)
  • pg_show_custom_settings() 描述:查询Hudi外表参数设置详情。 返回值类型:setof record 示例: 1 2 3 4 5 6 7 8 9 10 11 12 SELECT * FROM pg_show_custom_settings(); name | setting | unit | category | short_desc | extra_desc | context | vartype | source | min_val | max_val | enumvals | boot_val | reset_val | sourcefile | sourceline ----------------------------------------------------+-------------------+------+--------------------+--------------------------+------------+---------+---------+---------+---------+---------+ ----------+----------+-----------+------------+------------ hoodie.public.hudi_mor_ft.consume.ending.timestamp | 20230404172329544 | | Customized Options | GUC placeholder variable | | user | string | session | | | | | | | hoodie.public.hudi_mor_ft.consume.mode | incremental | | Customized Options | GUC placeholder variable | | user | string | session | | | | | | | hoodie.public.hudi_mor_ft.consume.start.timestamp | 20230404172329543 | | Customized Options | GUC placeholder variable | | user | string | session | | | | | | | (3 rows)
  • 参数说明 ENABLE | DISABLE QUERY REWRITE 是否对本物化视图启动查询重写。 在启用物化视图的查询重写后需刷新物化视图,保证物化视图数据是最新的。 REFRESH [ COMPLETE ] [ ON DEMAND ] [ [ START WITH (timestamptz) ] | [EVERY (interval)] ] 修改物化视图的刷新方式。 目前只支持COMPLETE全量刷新这一种刷新方式。执行物化视图定义的查询语句并更新物化视图。 刷新触发方式。 ON DEMAND:手动按需刷新。 START WITH (timestamptz) | EVERY (interval):定时刷新。START WITH指定首次刷新时间。EVERY指定刷新间隔,根据指定的时间定时刷新,支持MONTH、DAY、HOUR、MINUTE及SECOND。 SET ( {storage_parameter = value} [, ... ] ) | RESET ( storage_parameter [, ... ] ) 支持设置物化视图的表属性。该语法仅9.1.0.200及以上集群版本支持。 支持设置参数:mv_pck_column,bitmap_columns,enable_foreign_table_query_rewrite,excluded_inactive_tables,force_rewrite_timeout,mv_analyze_mode等,具体可参考参数说明。 OWNER TO new_owner 修改物化视图的owner。
  • 示例 启用物化视图的查询重写。 ALTER MATERIALIZED VIEW mv1 ENABLE QUERY REWRITE; NOTICE: REFRESH MATERIALIZED VIEW should be executed to enable query rewrite. ALTER MATERIALIZED VIEW 修改物化视图的表属性。 1 2 3 ALTER MATERIALIZED VIEW mv1 SET (force_rewrite_timeout=100); ALTER MATERIALIZED VIEW mv1 SET ( mv_pck_column='col1'); ALTER MATERIALIZED VIEW mv1 SET (enable_foreign_table_query_rewrite = true);
  • 语法格式 ALTER MATERIALIZED VIEW [ IF EXISTS ] { materialized_view_name } [ ENABLE | DISABLE ] QUERY REWRITE; ALTER MATERIALIZED VIEW [ IF EXISTS ] { materialized_view_name } REFRESH [ [ COMPLETE ] [ ON DEMAND ] [ [ START WITH (timestamptz) ] | [ EVERY (interval) ] ]; ALTER MATERIALIZED VIEW { materialized_view_name } OWNER TO new_owner; ALTER MATERIALIZED VIEW { materialized_view_name } SET ( {storage_parameter = value} [, ... ] ) | RESET ( storage_parameter [, ... ] )
  • 语法格式 1 2 3 4 5 6 7 CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] materialized_view_name [ ( column_name [, ...] ) ] [ BUILD { DEFERRED | IMMEDIATE } ] [ REFRESH [ COMPLETE ] [ ON DEMAND ] [ [ START WITH (timestamptz) ] | [ EVERY (interval) ] ] ] [ { ENABLE | DISABLE } QUERY REWRITE ] [ WITH ( {storage_parameter = value} [, ... ] ) ] [ DISTRIBUTE BY { REPLICATION | ROUNDROBIN | { HASH ( column_name [,...] ) } } ] AS query; 1 2 3 4 5 6 7 CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] materialized_view_name [ ( column_name [, ...] ) ] [ BUILD IMMEDIATE ] REFRESH AUTO ENABLE QUERY REWRITE [ WITH ( {storage_parameter = value} [, ... ] ) ] AS query;
  • 参数说明 BUILD DEFERRED | IMMEDIATE IMMEDIATE表示创建物化视图时即包含最新数据。 DEFERRED表示创建物化视图时需要等到第一次refresh时才会包含数据。 REFRESH 指定物化视图的刷新方式。 创建物化视图后,物化视图中的数据只反映创建时刻基表的状态。当基表中的数据发生变化时,需要通过刷新物化视图(REFRESH MATERIALIZED VIEW)更新物化视图中的数据。 目前只支持COMPLETE全量刷新这一种刷新方式。执行物化视图定义的查询语句并更新物化视图。 刷新触发方式。 ON DEMAND:手动按需刷新。 START WITH (timestamptz) | EVERY (interval):定时刷新。START WITH指定首次刷新时间,EVERY 指定刷新间隔,根据指定的时间定时刷新,支持MONTH、DAY、HOUR、MINUTE及SECOND。 REFRESH AUTO 同步物化视图的刷新方式。 ENABLE | DISABLE QUERY REWRITE 是否支持查询重写。默认不支持。 在指定ENABLE QUERY REWRITE时,需要设置GUC参数 mv_rewrite_rule才能启用物化视图查询重写功能。 查询重写是指在对基表进行查询时, 如果基表上创建有物化视图,数据库系统自动判断是否可以使用物化视图中的预计算结果处理查询。 如果可以使用某个物化视图,会直接从该物化视图读取预计算结果,起到加速查询的作用。 WITH ( { storage_parameter = value } [, ... ] ) ORIENTATION 指定表数据的存储方式,即行存方式、列存方式,该参数设置成功后就不再支持修改。 取值范围: ROW,表示表的数据将以行式存储。 行存储适合于OLTP业务,此类型的表上交互事务比较多,一次交互会涉及表中的多个列,用行存查询效率较高。 COLUMN,表示表的数据将以列式存储。 列存储适合于 数据仓库 业务,此类型的表上会做大量的汇聚计算,且涉及的列操作较少。 默认值: ROW表示创建行存表。 物化视图不支持的存储类型:外表、时序表。 enable_foreign_table_query_rewrite 指定是否允许包含外表的物化视图进行查询重写,需要与ENABLE QUERY REWRITE一起使用。 外表数据有变化,物化视图无法感知。如果需要对包含外表的物化视图使用查询重写功能,需要指定此选项。 取值范围: on,允许包含外表的物化视图进行查询重写。 off,不允许包含外表的物化视图进行查询重写。 默认值:off bitmap_columns bitmap index只适用于hstore_opt表,只有开启表级参数enable_hstore_opt且开启bitmap_columns='指定列'。该参数仅9.1.0.200及以上集群版本支持。 secondary_part_num 指定列存表二级分区的数量,仅适用于HStore列存表。该参数仅9.1.0.200及以上集群版本支持。 取值范围:1~32 默认值:8 enable_hstore_opt enable_hstore_opt表级参数打开时会默认同时打开enable_hstore表级参数。该参数仅9.1.0.200及以上集群版本支持。 默认值:false enable_turbo_store 用于控制是否创建为turbo表(基于列存表实现)。该参数只对列存表有效。该参数仅9.1.0.200及以上集群版本支持。 默认值:off mv_analyze_mode 控制物化视图自动analyze的方式。该参数仅9.1.0.200及以上集群版本支持。 取值范围: none,表示物化视图在刷新后不自动执行analyze。 light,表示物化视图在刷新后执行light analyze。 默认值:light mv_pck_column 物化视图的局部聚簇存储,列存表导入数据时按照指定的列(单列或多列),进行局部排序。该参数仅9.1.0.200及以上集群版本支持。 开启mv_pck_column='指定列'。 mv_support_function_type 开启物化视图创建时查询语句中可以使用的函数属性。该参数仅9.1.0.200及以上集群版本支持。 取值范围: stable,表示支持在查询语句中使用类型为STABLE和IMMUTABLE的函数。 volatile,表示支持在查询语句中使用类型为VOLATILE,STABLE和IMMUTABLE的函数。 默认值:空 excluded_inactive_tables 指定的基表发生数据变化不会失效该物化视图。该参数仅9.1.0.200及以上集群版本支持。 设置方式为:excluded_inactive_tables='schemaName1.tableName1,schemaName2.tableName2' 默认值:空 force_rewrite_timeout 在刷新后的指定时间间隔内,可以查询重写,无论此物化视图数据是否新鲜。该参数仅9.1.0.200及以上集群版本支持。 单位为秒,默认值:0。 TABLESPACE tablespace_name 声明一个表空间。用于V3存储格式的创建,如果default_tablespace为空,将使用数据库的缺省表空间。该参数仅9.1.0.200及以上集群版本支持。 DISTRIBUTE BY 指定表如何在节点之间分布或者复制。 取值范围: REPLICATION:表的每一行存在所有数据节点(DN)中,即每个数据节点都有完整的表数据。 ROUNDROBIN:表的每一行被轮番地发送给各个DN,因此数据会被均匀地分布在各个DN中。(ROUNDROBIN仅8.1.2及以上版本支持) HASH:对指定的列进行Hash,通过映射,把数据分布到指定DN。 默认值:由参数default_distribution_mode决定。 AS query 基于query的结果创建物化视图。
  • 示例 创建基表,并向基表插入数据: 1 2 CREATE TABLE t1 (a int, b int) DISTRIBUTE BY HASH(a); INSERT INTO t1 SELECT x,x FROM generate_series(1,10) x; 创建默认BUILD IMMEDIATE方式的物化视图: 1 CREATE MATERIALIZED VIEW mv1 AS SELECT * FROM t1; 创建指定列存方式的物化视图: 1 CREATE MATERIALIZED VIEW mv2 WITH(orientation = column) AS SELECT * FROM t1; 创建手动按需刷新的物化视图: 1 CREATE MATERIALIZED VIEW mv3 BUILD DEFERRED REFRESH ON DEMAND AS SELECT * FROM t1; 创建指定刷新时间的物化视图: 1 CREATE MATERIALIZED VIEW mv4 BUILD DEFERRED REFRESH START WITH(trunc(sysdate)) EVERY (interval ‘1 day’) AS SELECT * FROM t1; 创建带有bitmap index的物化视图: 1 2 CREATE MATERIALIZED VIEW mv1 with (ORIENTATION = COLUMN, enable_hstore=true, enable_hstore_opt=on, bitmap_columns='col1') AS SELECT * FROM base_table; 创建物化视图并指定列存表二级分区的数量: 1 2 CREATE MATERIALIZED VIEW mv WITH (ORIENTATION=COLUMN, ENABLE_HSTORE=ON, enable_hstore_opt=on, mv_pck_column='c3', secondary_part_column = 'c2', secondary_part_num = 8) AS SELECT * FROM base_table; 创建物化视图并指定pck列进行排序: 1 2 CREATE MATERIALIZED VIEW mv WITH (ORIENTATION=COLUMN, ENABLE_HSTORE=ON, enable_hstore_opt=on, mv_pck_column='col3') AS SELECT * FROM base_table; 创建物化视图并指定其analyze的方式: 1 CREATE MATERIALIZED VIEW mv1 enable query rewrite with(excluded_inactive_tables='matview_basic."T1",matview_basic."a=b"',mv_analyze_mode='none') as SELECT * FROM base_table; 创建V3物化视图: 1 2 3 CREATE MATERIALIZED VIEW mv1 with (orientation=column, enable_hstore=true, compression=low, enable_hstore_opt=on, COLVERSION = 3.0) TABLESPACE cu_obs_tbs distribute by hash(scope_name) AS SELECT * FROM dicttbl_low; 创建包含外表的物化视图进行查询重写: 1 CREATE MATERIALIZED VIEW mv1 with (enable_foreign_table_query_rewrite = true) as SELECT * FROM base_table; 创建物化视图指定查询语句中可以使用volatile函数: 1 CREATE MATERIALIZED VIEW mv_date with(mv_support_function_type = 'volatile') as select to_date(a) from t_date;
  • 注意事项 物化视图的基表可以是行存表、列存表、hstore表、分区表或者指定某个分区、外表、其他物化视图,不支持包含临时表(包括全局临时表、volatile临时表和普通临时表),支持冷热表(910.200及以上版本支持)、不支持对自动分区表指定分区。 物化视图禁止INSERT/UPDATE/MERGE INTO/DELETE对数据进行修改。 物化视图执行一次将结果并保存,每次查询结果是一致的。BUILD IMMEDIATE或REFRESH后,物化视图可以查询出正确结果。 物化视图不能通过语法指定Node Group。支持物化视图的基表指定Node Group创建,物化视图会继承基表NodeGroup信息创建,需要多个基表的NodeGroup相同。 创建物化视图时需要schema的CREATE权限和基表或列的SELECT权限。 查询物化视图需要物化视图的SELECT权限。 刷新需要物化视图的INSERT和基表或列的SELECT权限。 物化视图支持ANALYZE/VACUUM/ALTER/DROP等细粒度权限。 物化视图支持with grant option的权限传递操作。 物化视图不支持更高级别的安全控制,如果基表存在行级访问控制、脱敏策略或owner为私有用户等限制SELECT权限的场景,则禁止创建物化视图;如果已存在物化视图,基表增加RLS、脱敏策略或修改owner为私有用户,则物化视图可以执行查询,但无法刷新。
  • jsonb_pretty(jsonb) 描述:以缩进的JSON文本形式返回。 返回类型:jsonb 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 SELECT jsonb_pretty('{"a":{"b":{"c":1, "d":2}}, "e":3}'::jsonb); jsonb_pretty --------------------- { + "a": { + "b": { + "c": 1,+ "d": 2 + } + }, + "e": 3 + } (1 row)
  • json_to_tsvector(config regconfig, ] json, jsonb) 描述:将json格式转换为用于支持全文检索的文件格式tsvector。 返回类型:jsonb 示例: 1 2 3 4 5 SELECT json_to_tsvector('{"a":1, "b":2, "c":3}'::json, to_jsonb('key'::text)); json_to_tsvector ------------------ 'b':2 'c':4 (1 row)
  • jsonb_insert(target jsonb, path text[], new_value jsonb [, insert_after boolean]) 描述:返回被插入了new_value的target。如果path指定的target部分位于JSONB数组中,则new_value将被插入到目标之前(insert_after为false,默认值)或者之后(insert_after为true)。如果path指定的target部分位于一个JSONB对象内,则仅当target不存在时才插入new_value。与面向路径的运算符一样,path中出现的负整数表示从JSON数组的末尾开始计数。 返回类型:jsonb 示例: 1 2 3 4 5 SELECT jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '"new_value"'); jsonb_insert ------------------------------- {"a": [0, "new_value", 1, 2]} (1 row)
  • jsonb_array_elements_text(array-jsonb) 描述:拆分数组,每一个元素返回一行。 返回类型:text 示例: 1 2 3 4 5 6 7 8 SELECT * FROM jsonb_array_elements_text('[1,true,[1,[2,3]],null]'); value ------------- 1 true [1, [2, 3]] (4 rows)
  • jsonb_delete_path(jsonb, text[]) 描述:删除jsonb数组中指定路径的元素。 返回类型:jsonb 示例: 1 2 3 4 5 SELECT jsonb_delete_path('{"a":{"b":{"c":1, "d":2}}, "e":3}'::jsonb , array['a', 'b']); jsonb_delete_path ------------------- {"a": {}, "e": 3} (1 row)
  • jsonb_each(object-jsonb) 描述:将对象的每个键值对拆分转换成一行两列。 返回类型:setof(key text, value jsonb) 示例: 1 2 3 4 5 6 7 SELECT * FROM jsonb_each('{"f1":[1,2,3],"f2":{"f3":1},"f4":null}'); key | value -----+----------- f1 | [1, 2, 3] f2 | {"f3": 1} f4 | null (3 rows)
  • jsonb_to_recordset(array-json) 描述:参考函数jsonb_to_record,对数组内个每个元素,执行上述函数的操作,因此这要求数组内的每个元素都得是object-jsonb。 返回类型:setof record 示例: 1 2 3 4 5 6 SELECT * FROM jsonb_to_recordset('[{"a":1,"b":"foo","d":false},{"a":2,"b":"bar","c":true}]') AS x(a INT, b text, c boolean); a | b | c ---+-----+--- 1 | foo | 2 | bar | t (2 rows)
  • jsonb_object_keys(object-jsonb) 描述:返回对象中顶层的所有键。 返回类型:SETOF text 示例: 1 2 3 4 5 6 SELECT jsonb_object_keys('{"f1":"abc","f2":{"f3":"a", "f4":"b"}, "f1":"abcd"}'); jsonb_object_keys ------------------- f1 f2 (2 rows)
  • jsonb_delete_array(jsonb, VARIADIC text[]) 描述:删除jsonb数组中的多个元素。 返回类型:jsonb 示例: 1 2 3 4 5 SELECT jsonb_delete_array('["a", "b", "c"]'::jsonb , 'a', 'b'); jsonb_delete_array -------------------- ["c"] (1 row)
  • jsonb_set(target jsonb, path text[], new_value jsonb [, create_missing boolean]) 描述:返回target,用path指定的部分被new_value替换,或者如果create_missing为true(默认值为true)且path指定的项不存在,则添加new_value。与面向路径的运算符一样,path中出现的负整数从JSON数组的末尾开始计数。 返回类型:jsonb 示例: 1 2 3 4 5 SELECT jsonb_set('[{"f1":1,"f2":null},2,null,3]', '{0,f1}','[2,3,4]', false); jsonb_set --------------------------------------------- [{"f1": [2, 3, 4], "f2": null}, 2, null, 3] (1 row)
  • jsonb_to_record(object-json) 描述:正如所有返回record的函数一样,调用者必须用一个AS子句显式地定义记录的结构。会将object-json的键值对进行拆分重组,把键当做列名,去匹配填充AS显示指定的记录的结构。 返回类型:record 示例: 1 2 3 4 5 SELECT * FROM jsonb_to_record('{"a":1,"b":"foo","c":"bar"}'::jsonb) as x(a int, b text, d text); a | b | d ---+-----+--- 1 | foo | (1 row)
  • jsonb_each_text(object-jsonb) 描述:将对象的每个键值对拆分转换成一行两列。 返回类型:setof(key text, value text) 示例: 1 2 3 4 5 6 7 SELECT * FROM jsonb_each_text('{"f1":[1,2,3],"f2":{"f3":1},"f4":null}'); key | value -----+----------- f1 | [1, 2, 3] f2 | {"f3": 1} f4 | (3 rows)
  • jsonb_populate_record(anyelement, object-jsonb [, bool]) 描述:$1必须是一个复合类型的参数。将会把object-json里的每个对键值进行拆分,以键当做列名,与$1中的列名进行匹配查找,并填充到$1的格式中。 返回类型:anyelement 示例: 1 2 3 4 5 SELECT * FROM jsonb_populate_record(null::jpop,'{"a":"blurfl","x":43.2}'); a | b | c --------+---+--- blurfl | | (1 row)
  • jsonb_populate_record_set(anyelement, array-jsonb [, bool]) 描述:参考上述函数json_populate_record、jsonb_populate_record,对$2数组的每一个元素进行上述参数函数的操作,因此这也要求$2数组的每个元素都是object-json类型。 返回类型:setof anyelement 示例: 1 2 3 4 5 6 SELECT * FROM json_populate_recordset(null::jpop, '[{"a":1,"b":2},{"a":3,"b":4}]'); a | b | c ---+---+--- 1 | 2 | 3 | 4 | (2 rows)
  • jsonb_exists_any(jsonb, text[]) 描述:同操作符?|,字符串数组$2里面是否存在的元素,在$1的顶层以key\elem\scalar的形式存在。 返回类型: 示例: 1 2 3 4 5 SELECT jsonb_exists_any('["1","2",3]', '{1, 2, 4}'); jsonb_exists_any ------------------ t (1 row)
  • jsonb_exists_all(jsonb, text[]) 描述:同操作符?&,字符串数组$2里面是否所有的元素,都在$1的顶层以key\elem\scalar的形式存在。 返回类型: bool 示例: 1 2 3 4 5 SELECT jsonb_exists_all('["1","2",3]', '{1, 2}'); jsonb_exists_all ------------------ t (1 row)
  • jsonb_concat(jsonb, jsonb) 描述:连接两个jsonb对象为一个jsonb。 返回类型:jsonb 示例: 1 2 3 4 5 SELECT jsonb_concat('{"a":1, "b":2}'::jsonb, '{"c":3, "d":4}'::jsonb); jsonb_concat ---------------------------------- {"a": 1, "b": 2, "c": 3, "d": 4} (1 row)
共100000条