华为云用户手册

  • hll_hashval_eq(hll_hashval, hll_hashval) 描述:比较两个hll_hashval类型数据是否相等。 返回值类型:bool 示例: 1 2 3 4 5 SELECT hll_hashval_eq(hll_hash_integer(1), hll_hash_integer(1)); hll_hashval_eq ---------------- t (1 row)
  • hll_hash_any(anytype, int32) 描述:对任意类型数据计算哈希值,并设置hashseed(即改变哈希策略)。 返回值类型:hll_hashval 示例: 1 2 3 4 5 SELECT hll_hash_any(1, 10); hll_hash_any ---------------------- -1478847531811254870 (1 row)
  • hll_hashval_ne(hll_hashval, hll_hashval) 描述:比较两个hll_hashval类型数据是否不相等。 返回值类型:bool 示例: 1 2 3 4 5 SELECT hll_hashval_ne(hll_hash_integer(1), hll_hash_integer(1)); hll_hashval_ne ---------------- f (1 row)
  • hll_hash_text(text, int32) 描述:对text类型数据计算哈希值, 并设置hashseed(即改变哈希策略)。 返回值类型:hll_hashval 示例: 1 2 3 4 5 SELECT hll_hash_text('AB', 10); hll_hash_text --------------------- 7680762839921155903 (1 row)
  • hll_hash_boolean(bool, int32) 描述:设置hash seed(即改变哈希策略)并对bool类型数据计算哈希值。 返回值类型:hll_hashval 示例: 1 2 3 4 5 SELECT hll_hash_boolean(FALSE, 10); hll_hash_boolean -------------------- 391264977436098630 (1 row)
  • hll_hash_integer(integer, int32) 描述:对integer类型数据计算哈希值,并设置hashseed(即改变哈希策略)。 返回值类型:hll_hashval 示例: 1 2 3 4 5 SELECT hll_hash_integer(0, 10); hll_hash_integer -------------------- 183371090322255134 (1 row)
  • hll_hash_smallint(smallint, int32) 描述:设置hash seed(即改变哈希策略)同时对smallint类型数据计算哈希值。 返回值类型:hll_hashval 示例: 1 2 3 4 5 SELECT hll_hash_smallint(100::smallint, 10); hll_hash_smallint --------------------- 8349353095166695771 (1 row)
  • hll_hash_any(anytype) 描述:对任意类型数据计算哈希值。 返回值类型:hll_hashval 示例: 1 2 3 4 5 6 7 8 9 10 11 SELECT hll_hash_any(1); hll_hash_any ---------------------- -8604791237420463362 (1 row) SELECT hll_hash_any('08:00:2b:01:02:03'::macaddr); hll_hash_any ---------------------- -4883882473551067169 (1 row)
  • hll_hash_bytea(bytea, int32) 描述:对bytea类型数据计算哈希值,并设置hashseed(即改变哈希策略)。 返回值类型:hll_hashval 示例: 1 2 3 4 5 SELECT hll_hash_bytea(E'\\x', 10); hll_hash_bytea --------------------- 6574525721897061910 (1 row)
  • hll_hash_bigint(bigint, int32) 描述:对bigint类型数据计算哈希值,并设置hashseed(即改变哈希策略)。 返回值类型:hll_hashval 示例: 1 2 3 4 5 SELECT hll_hash_bigint(100::bigint, 10); hll_hash_bigint --------------------- 4631120266694327276 (1 row)
  • 参数说明 IF EXISTS 如果指定的用户不存在,发出一个notice而不是抛出一个错误。 user_name 待删除的用户名。 取值范围:已存在的用户名。 CASCADE | RESTRICT CASCADE:级联删除依赖用户的表等对象。级联删除用户的时候,会删除掉owner是这个用户的对象,并清理掉其他对象对这个用户的授权信息。 RESTRICT:如果用户还有任何依赖的对象,则拒绝删除该用户(缺省行为)。 在GaussDB(DWS)中,存在一个配置参数enable_kill_query,此参数在配置文件postgresql.conf中。此参数影响级联删除用户对象的行为: 当参数enable_kill_query为on ,且使用CASCADE模式删除用户时,会自动kill锁定用户级联对象的进程,并删除用户。 当参数enable_kill_query为off,且使用CASCADE模式删除用户时,会等待锁定级联对象的进程结束之后再删除用户。
  • 注意事项 须使用CASCADE级联删除依赖用户的对象(除数据库外)。当删除用户的级联对象时,如果级联对象处于锁定状态,则此级联对象无法被删除,直到对象被解锁或锁定级联对象的进程被终止。 在数据库中删除用户时,如果依赖用户的对象在其他数据库中或者依赖用户的对象是其他数据库,请用户先手动删除其他数据库中的依赖对象或直接删除依赖数据库,再删除用户。即drop user不支持跨数据库进行级联删除。 在多租户场景下,删除组用户时,业务用户也会同时被删除,如果指定CASCADE级联删除,那么删除业务用户时同时也指定CASCADE。如果在删除某个用户失败时,会报错,同时其他用户也无法成功删除。 如果用户A创建的GDS外表指定的错误表在用户B的schema下,则无法通过drop user指定CASCADE关键字直接删除用户B。 DROP USER若提示role is being used by other users错误,可能原因为CLEAN CONNECTION过程存在线程无法及时响应信号,出现连接清理不完全的情况,需要再次执行CLEAN CONNECTION。
  • greatest(expr1 [, ...]) 描述:获取并返回参数列表中值最大的表达式的值。 ORA和TD兼容模式下,返回结果为所有非null参数的最大值。 MySQL兼容模式下,入参中存在null时,返回结果为null。 示例: 1 2 3 4 5 SELECT greatest(1*2,2-3,4-1); greatest ---------- 3 (1 row) 1 2 3 4 5 SELECT greatest('ABC', 'BCD', 'CDE'); greatest ---------- CDE (1 row)
  • EMPTY_BLOB() 描述:使用EMPTY_BLOB在INSERT或UPDATE语句中初始化一个BLOB变量,取值为NULL。 返回值类型:BLOB 示例: 1 2 3 4 5 6 --新建表 CREATE TABLE blob_tb(b blob,id int) DISTRIBUTE BY REPLICATION; --插入数据 INSERT INTO blob_tb VALUES (empty_blob(),1); --删除表 DROP TABLE blob_tb; 使用DBMS.GETLENGTH求得的长度为0。
  • least(expr1 [, ...]) 描述:获取并返回参数列表中值最小的表达式的值。 ORA和TD兼容模式下,返回结果为所有非null参数的最小值。 MySQL兼容模式下,入参中存在null时,返回结果为null。 示例: 1 2 3 4 5 SELECT least(1*2,2-3,4-1); least ------- -1 (1 row) 1 2 3 4 5 SELECT least('ABC','BCD','CDE'); least -------- ABC (1 row)
  • nvl( expr1 , expr2 ) 描述:如果expr1为NULL则返回expr2。如果expr1非NULL,则返回expr1。 示例: 1 2 3 4 5 SELECT nvl('hello','world'); nvl ------- hello (1 row) 参数expr1和expr2可以为任意类型,当NVL的两个参数不属于同类型时,看第二个参数是否可以向第一个参数进行隐式转换,如果可以则返回第一个参数类型。如果第二个参数不能向第一个参数进行隐式转换而第一个参数可以向第二个参数进行隐式转换,则返回第二个参数的类型。如果两个参数之间不存在隐式类型转换并且也不属于同一类型则报错。
  • coalesce(expr1, expr2, ..., exprn) 描述:返回参数列表中第一个非NULL的参数值。 COALESCE(expr1, expr2) 等价于CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END。 示例: 1 2 3 4 5 SELECT coalesce(NULL,'hello'); coalesce ---------- hello (1 row) 如果表达式列表中的所有表达式都等于NULL,则本函数返回NULL。 它常用于在显示数据时用缺省值替换NULL。 和CASE表达式一样,COALESCE不会计算不需要用来判断结果的参数;即在第一个非空参数右边的参数不会被计算。
  • nullif(expr1, expr2) 描述:当且仅当expr1和expr2相等时,NULLIF才返回NULL,否则它返回expr1。 nullif(expr1, expr2) 逻辑上等价于CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END。 示例: 1 2 3 4 5 SELECT nullif('hello','world'); nullif -------- hello (1 row) 备注: 如果两个参数的数据类型不同,则: 两种数据类型之间存在隐式转换,则以其中优先级较高的数据类型为基准将另一个参数隐式转换成该类型,转换成功则进行计算,转换失败则返回错误。如: 1 2 3 4 5 SELECT nullif('1234'::VARCHAR,123::INT4); nullif -------- 1234 (1 row) 1 2 SELECT nullif('1234'::VARCHAR,'2012-12-24'::DATE); ERROR: invalid input syntax for type timestamp: "1234" 两种数据类型之间不存在隐式转换,则返回错误 。如: 1 2 3 4 5 SELECT nullif(TRUE::BOOLEAN,'2012-12-24'::DATE); ERROR: operator does not exist: boolean = timestamp without time zone LINE 1: SELECT nullif(TRUE::BOOLEAN,'2012-12-24'::DATE) FROM DUAL; ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
  • decode(base_expr, compare1, value1, Compare2,value2, … default) 描述:把base_expr与后面的每个compare(n) 进行比较,如果匹配返回相应的value(n)。如果没有发生匹配,则返回default。 示例: 1 2 3 4 5 SELECT decode('A','A',1,'B',2,0); case ------ 1 (1 row)
  • ifnull(expr1, expr2) 描述:当expr1不为NULL时,返回expr1,否则返回expr2。 ifnull(expr1, expr2) 逻辑上等价于CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END。 示例: 1 2 3 4 5 SELECT ifnull(NULL,'hello'); ifnull -------- hello (1 row) 参数expr1和expr2可以为任意类型,返回结果类型规则请参考UNION,CASE和相关构造。
  • sys_context( 'namespace' , 'parameter') 描述:获取并返回指定namespace下参数parameter的值。 返回值类型:VARCHAR 示例: 1 2 3 4 5 SELECT sys_context('USERENV', 'CURRENT_SCHEMA'); sys_context ------------- public (1 row) 根据当前所在的实际schema而变化。 目前仅支持SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') 和SYS_CONTEXT('USERENV', 'CURRENT_USER')两种格式。
  • 位串类型 位串就是一串1和0的字符串。它们可以用于存储位掩码。 GaussDB(DWS)支持两种位串类型:bit(n)和bit varying(n),其中n是一个正整数。 bit类型的数据必须准确匹配长度n,如果存储短或者长的数据都会报错。bit varying类型的数据是最长为n的变长类型,超过n的类型会被拒绝。一个没有长度的bit等效于bit(1),没有长度的bit varying表示没有长度限制。 如果显式地把一个位串值转换成bit(n),则此位串右边的内容将被截断或者在右边补齐零,直到刚好n位,而且不会抛出任何错误。类似地,如果显式地把一个位串数值转换成bit varying(n),如果它超过了n位,则它的右边将被截断。 位串类型使用示例: 创建示例表bit_type_t1: 1 2 3 4 5 6 CREATE TABLE bit_type_t1 ( BT_COL1 INTEGER, BT_COL2 BIT(3), BT_COL3 BIT VARYING(5) ) DISTRIBUTE BY REPLICATION; 插入数据: 1 INSERT INTO bit_type_t1 VALUES(1, B'101', B'00'); 插入数据的长度不符合类型的标准会报错。 1 2 3 INSERT INTO bit_type_t1 VALUES(2, B'10', B'101'); ERROR: bit string length 2 does not match type bit(3) CONTEXT: referenced column: bt_col2 将不符合类型长度的数据进行转换: 1 INSERT INTO bit_type_t1 VALUES(2, B'10'::bit(3), B'101'); 查看数据: 1 2 3 4 5 6 SELECT * FROM bit_type_t1; bt_col1 | bt_col2 | bt_col3 ---------+---------+--------- 1 | 101 | 00 2 | 100 | 101 (2 rows) 父主题: 数据类型
  • pv_compute_pool_workload() 描述:返回计算子集群当前的负载状态。 返回类型:void 示例: SELECT * from pv_compute_pool_workload(); nodename | rpinuse | maxrp | nodestate -----------+---------+-------+----------- datanode1 | 0 | 1000 | normal datanode2 | 0 | 1000 | normal (2 rows)
  • 语法格式 1 2 CREATE GROUP group_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' | DISABLE }; 其中可选项action子句语法为: 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 where option can be: {SYSADMIN | NOSYSADMIN} | {AUDITADMIN | NOAUDITADMIN} | {CREATEDB | NOCREATEDB} | {USEFT | NOUSEFT} | {CREATEROLE | NOCREATEROLE} | {INHERIT | NOINHERIT} | {LOGIN | NOLOGIN} | {REPLICATION | NOREPLICATION} | {INDEPENDENT | NOINDEPENDENT} | {VCADMIN | NOVCADMIN} | CONNECTION LIMIT connlimit | VALID BEGIN 'timestamp' | VALID UNTIL 'timestamp' | RESOURCE POOL 'respool' | USER GROUP 'groupuser' | PERM SPACE 'spacelimit' | NODE GROUP logic_group_name | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid | DEFAULT TABLESPACE tablespace_name | PROFILE DEFAULT | PROFILE profile_name | PGUSER
  • pgxc_get_senders_catchup_time() 描述:显示所有DN上当前活跃的主备发送线程的追赶信息。 返回值类型:record 函数返回信息如下: 表1 pgxc_get_senders_catchup_time()字段 名称 类型 描述 node_name text 节点名称。 lwpid integer 当前sender的lwpid。 local_role text 本地的角色。 peer_role text 对端的角色。 state text 当前sender的复制状态。 sender text 当前sender的类型。 catchup_start timestamp with time zone catchup启动的时间。 catchup_end timestamp with time zone catchup结束的时间。 catchup_type text catchup方式为全量还是增量。 catchup_bcm_filename text catchup当前执行到的bcm文件 catchup_bcm_finished integer catchup已经操作完成的bcm文件数量。 catchup_bcm_total integer catchup总共需要操作的bcm文件数量。 catchup_percent text catchup已经操作完成的百分比。 catchup_remaining_time text catchup预估剩余时间。
  • pg_enable_delay_ddl_recycle() 描述:开启延迟DDL功能,并返回开启点的xlog位置。 返回值类型:text 示例: 1 2 3 4 5 SELECT pg_enable_delay_ddl_recycle(); pg_enable_delay_ddl_recycle ----------------------------- 00000000/4607B250 (1 row)
  • pg_stop_backup() 描述:完成执行在线备份。(需要管理员角色或复制的角色) 返回值类型:text 备注:pg_stop_backup删除pg_start_backup创建的标签文件,并且在事务日志归档区里创建一个备份历史文件。这个历史文件包含给予pg_start_backup的标签、备份的事务日志起始与终止位置、备份的起始和终止时间。返回值是备份的事务日志终止位置。计算出中止位置后,当前事务日志的插入点将自动前进到下一个事务日志文件,这样,结束的事务日志文件可以被立即归档从而完成备份。 示例: 1 2 3 4 5 SELECT pg_stop_backup(); pg_stop_backup ---------------- 0/4401E610 (1 row)
  • pg_cbm_recycle_file(slotName name, targetLSNArg text) 描述:删除不再使用的cbm文件,并返回删除后的第一条lsn。其中,slotName为空字符串时,将直接使用targetLSNArg作为回收点;在备份和容灾时,因为并行因素,需要指定相应的slotName,首先记录该任务的targetLSNArg到该slot中,然后遍历所有的backup slots,找到最小的lsn作为回收点。 返回值类型:text
  • pgxc_lock_for_backup() 描述:备份前给集群加锁,备份是为了在新增节点上执行恢复操作。 返回值类型:boolean pgxc_lock_for_backup是在使用gs_dump或gs_dumpall工具备份集群前,用来给集群加锁的。当给集群加锁后,不允许有改变系统结构的操作。该函数不影响DML语句。 示例: 1 2 3 4 5 SELECT pgxc_lock_for_backup(); pgxc_lock_for_backup ---------------------- t (1 row)
  • pg_start_backup(label text [, fast boolean ]) 描述:开始执行在线备份。(需要管理员角色或复制的角色) 返回值类型:text 备注:pg_start_backup接受一个用户定义的备份标签(通常这是备份转储文件存放地点的名字)。这个函数向数据库集群的数据目录写入一个备份标签文件,然后以文本方式返回备份的事务日志起始位置。 1 2 3 4 5 SELECT pg_start_backup('label_goes_here'); pg_start_backup ----------------- 0/3000020 (1 row)
共100000条