华为云用户手册

  • hudi_sync_task_submit(regclass, regclass, text, text, interval) 描述:功能与hudi_sync_task_submit(regclass, regclass, text, text)一致,不同之处在于,用户可以额外指定一个interval类型入参,用于指定任务的调度周期,取值范围为5秒至24小时。该函数仅8.3.0及以上版本支持。 返回值类型:text 同步目标表必须包含主键,且主键需要与hudi recordkey一致。 如果hudi表包含precombine字段,那么同步目标表也必须包含与之对应的字段。 如果同步目标表只包含主键(除了主键外没有其他字段),则无法正常提交同步任务。 用户需要有同步目标表的insert和update权限、HUDI外表的select权限,否则无法正常提交同步任务。 示例: 12345 SELECT hudi_sync_task_submit('public.hudi_sync_i','public.hudi_mor_ft','_hoodie_commit_time, col_bigint, col_text', '_hoodie_commit_time, col_bigint, col_text', '10 minute 30second'); hudi_sync_task_submit-------------------------------------- 646610bc-cdd1-0d00-d07d-b57e89a0fffe(1 row)
  • hudi_sync(regclass, regclass) 描述:存储过程,Hudi自动同步任务调用入口。使用pg_catalog.hudi_sync_task_submit(regclass, regclass)提交的任务会执行该存储过程。执行成功会提示同步的行数和时间戳。 返回值类型:text 示例: 1234567 CALL hudi_sync('public.hudi_sync_i', 'public.hudi_mor_ft');NOTICE: execute full syncCONTEXT: PL/pgSQL function hudi_sync(regclass,regclass) line 11 at RETURN hudi_sync-------------------------------------- sync 1 rows up to 20230511114021573.(1 row)
  • pg_show_custom_settings() 描述:查询Hudi外表参数设置详情。 返回值类型:setof record 示例: 1 2 3 4 5 6 7 8 9101112 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)
  • hudi_get_options(regclass) 描述:查询Hudi外表的属性信息(hoodie.properties)。以key-value键值对表示。 返回值类型:setof record 示例: 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829 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","null"]},{"name"\:"col_text2","type"\:["string","null"]}]} hoodie.table.checksum | 515660817(16 rows)
  • 语法格式 12 CREATE GROUP group_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' | DISABLE }; 其中可选项action子句语法为: 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728 where option can be:{SYSADMIN | NOSYSADMIN} | {AUDITADMIN | NOAUDITADMIN} | {CREATEDB | NOCREATEDB} | {USEFT | NOUSEFT} | {CREATEROLE | NOCREATEROLE} | {INHERIT | NOINHERIT} | { LOG IN | 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_group_add_subscription(src_vw_name, target_vw_name) 描述:存算分离架构下,逻辑集群(Virtual Warehouse,以下简称VW)之间建立KV订阅关系,建立了订阅关系之后,消费者VW的KVcahce会定期的从生产者的obs cudesc快照目录增量同步sst文件到本地,后续就可以支持在消费者VM中跨VW查询生产者VW中的表。 创建的订阅关系可以在pgxc_group_subscription表中查询到记录。该函数仅9.0.3及以上集群版本支持。 返回值类型:void 返回信息如下: 表1 pgxc_group_add_subscription(src_vw_name, target_vw_name)返回字段 名称 类型 描述 src_vw_name text 生产者VW名称,通常作为写入数据的VW。 target_vw_name text 消费者VW名称,通常作为读取数据的VW。 示例: 12345 SELECT pgxc_group_add_subscription('write_group', 'single_read_group');pgxc_group_add_subscription ------------------(1 row)
  • pgxc_group_drop_subscription(src_vw_name, target_vw_name) 描述:存算分离架构下,删除VW之间已经建立的KV订阅关系,删除操作是删除pgxc_group_subscription表的记录, 删除KV订阅关系后,消费者VW无法继续跨VW查询生产者VW中的表。该函数仅9.0.3及以上集群版本支持。 返回值类型:void 返回信息如下: 表2 pgxc_group_drop_subscription(src_vw_name, target_vw_name)返回字段 名称 类型 描述 src_vw_name text 生产者VW名称,通常作为写入数据的VW。 target_vw_name text 消费者VW名称,通常作为读取数据的VW。 示例: SELECT pgxc_group_drop_subscription('write_group', 'single_read_group');pgxc_group_drop_subscription ------------------------------(1 row)
  • pv_session_chunk_dump(tid int, contextname char(64)) 描述:将指定线程创建的某个内存上下文申请的所有chunk信息打印成文件。 参数tid,表示线程ID;参数contextname,表示内存上下文名称。 返回值类型:boolean 示例: 12345 SELECT * FROM pv_session_chunk_dump(140472797325280, 'Timezones'); pv_session_chunk_dump ----------------------- t(1 row)
  • pv_session_chunk_detail(tid int, contextname char(64)) 描述:查询指定线程创建的某个内存上下文申请的所有chunk信息。 参数tid,表示线程ID;参数contextname,表示内存上下文名称。 使用该函数需使用pv_session_chunk_dump(tid int, contextname char(64))函数将相关信息打印成文件。 返回值类型:record 示例: 123456789 SELECT * FROM pv_session_chunk_detail(140178810990936, 'Timezones'); parent | level | file_name | line_number | chunk_size | requested_number | total_size ------------------+-------+---------------+-------------+------------+------------------+------------ TopMemoryContext | 1 | dynahash.cpp | 158 | 1280 | 2 | 2560 TopMemoryContext | 1 | dynahash.cpp | 158 | 160 | 1 | 160 TopMemoryContext | 1 | dynahash.cpp | 158 | 2560 | 2 | 5120 TopMemoryContext | 1 | localtime.cpp | 1965 | 128 | 1 | 128 TopMemoryContext | 1 | localtime.cpp | 1965 | 448 | 1 | 448(5 rows)
  • pg_shared_chunk_detail(contextname char(64)) 描述:查询指定共享内存下内存上下文申请的所有chunk信息。 参数contextname,表示内存上下文名称。 使用该函数需先使用pg_shared_chunk_dump(contextname char(64))函数将相关信息打印成文件。 返回值类型:record 示例: 12345678 SELECT * FROM pg_shared_chunk_detail('pgstat file hash table'); parent | level | file_name | line_number | chunk_size | requested_number | total_size ---------------------+-------+--------------+-------------+------------+------------------+------------ pgstat file context | 2 | dynahash.cpp | 158 | 2048 | 1 | 2048 pgstat file context | 2 | dynahash.cpp | 158 | 256 | 1 | 256 pgstat file context | 2 | dynahash.cpp | 158 | 4096 | 9 | 36864 pgstat file context | 2 | dynahash.cpp | 158 | 8192 | 4 | 32768(4 rows)
  • pg_shared_chunk_dump(contextname char(64)) 描述:将指定共享内存下内存上下文申请的所有chunk信息打印成文件。 参数contextname,表示内存上下文名称。 返回值类型:boolean 示例: 12345 SELECT * FROM pg_shared_chunk_dump('pgstat file hash table'); pg_shared_chunk_dump ---------------------- t(1 row)
  • pg_options_to_table(reloptions) 描述:获取存储选项名称/值对的集合。 返回类型:setof record 备注:pg_options_to_table当通过pg_class.reloptions或pg_attribute.attoptions时返回存储选项名字/值对(option_name/option_value)的集合。 示例: 1234567 CREATE TABLE customer_test( state_ID CHAR(2), state_NAME VARCHAR2(40), area_ID NUMBER)WITH (ORIENTATION = COLUMN,COMPRESSION=middle); 123456789 SELECT pg_options_to_table(reloptions) FROM pg_class WHERE relname='customer_test';pg_options_to_table---------------------- (orientation,column) (compression,middle) (bucketnums,16384) (colversion,2.0) (enable_delta,false)(5 rows)
  • collation for (any) 描述:获取参数的排序。 返回类型:text 备注: 表达式collation for返回传递给他的值的排序。示例: 12345 SELECT collation for (description) FROM pg_description LIMIT 1; pg_collation_for ------------------ "default"(1 row) 值可能是引号括起来的并且模式限制的。如果没有为参数表达式排序,则返回一个null值。如果参数不是排序的类型,则抛出一个错误。
  • pg_typeof(any) 描述:获取任何值的数据类型。 返回类型:regtype 备注: pg_typeof返回传递给他的值的数据类型OID。这可能有助于故障排除或动态构造SQL查询。声明此函数返回regtype,这是一个OID别名类型(请参考对象标识符类型);这意味着它是一个为了比较而显示类型名字的OID。 示例: 1 2 3 4 5 6 7 8 91011 SELECT pg_typeof(33); pg_typeof ----------- integer(1 row)SELECT typlen FROM pg_type WHERE oid = pg_typeof(33); typlen -------- 4(1 row)
  • format_type(type_oid, typemod) 描述:获取数据类型的SQL名称。 返回类型:text 备注: format_type通过数据类型的类型OID以及可能的类型修饰词,返回其SQL名称。如果不知道具体的修饰词,则在类型修饰词的位置传入NULL。类型修饰词一般只对有长度限制的数据类型有意义。format_type所返回的SQL名称中包含数据类型的长度值,其大小是:实际存储长度len - sizeof(int32),单位字节。数据存储时需要32位的空间来存储用户对数据类型的自定义长度信息,即实际存储长度要比用户定义长度多4个字节。在下例中,format_type返回的SQL名称为“character varying(6)”,6表示varchar类型的长度值是6字节,因此该类型的实际存储长度为10字节。 12345 SELECT format_type((SELECT oid FROM pg_type WHERE typname='varchar'), 10); format_type ---------------------- character varying(6)(1 row)
  • pg_get_indexdef(index_oid, column_no, pretty_bool) 描述:获取索引的CREATE INDEX命令,或者如果column_no不为零,则只获取一个索引字段的定义。 返回类型:text 1 2 3 4 5 6 7 8 910 SELECT * FROM pg_get_indexdef(136035,0,false); pg_get_indexdef--------------------------------------------------------------------------------------------------------------- CREATE INDEX ds_ship_mode_t1_index1 ON tpcds.ship_mode_t1 USING psort (sm_ship_mode_sk) TABLESPACE pg_default(1 row)SELECT * FROM pg_get_indexdef(136035,1,false); pg_get_indexdef----------------- sm_ship_mode_sk(1 row)
  • pg_get_tabledef(table_oid) 描述:根据table_oid获取表定义。 返回类型:text 示例:先通过系统表pg_class获取表customer_t2的OID,再使用此函数查询表customer_t2的定义,可获取创建表customer_t2时的表字段,表的存储方式(行存或列存)及表的分布方式等信息。 1 2 3 4 5 6 7 8 910111213141516171819 select oid from pg_class where relname ='customer_t2'; oid------- 17353(1 row)select * from pg_get_tabledef(17353); pg_get_tabledef-------------------------------------------- SET search_path = dbadmin; + CREATE TABLE customer_t2 ( + state_id character(2), + state_name character varying(40), + area_id numeric + ) + WITH (orientation=column, compression=low)+ DISTRIBUTE BY HASH(state_id) + TO GROUP group_version1;(1 row)
  • pg_get_indexdef(index_oid) 描述:获取索引的CREATE INDEX命令。 返回类型:text index_oid为索引的OID,可以通过PG_STATIO_ALL_INDEXES系统视图查询。 示例:查询索引ds_ship_mode_t1_index1的OID及其创建命令。 1 2 3 4 5 6 7 8 910 SELECT indexrelid FROM PG_STATIO_ALL_INDEXES WHERE indexrelname = 'ds_ship_mode_t1_index1'; indexrelid------------ 136035(1 row)SELECT * FROM pg_get_indexdef(136035); pg_get_indexdef--------------------------------------------------------------------------------------------------------------- CREATE INDEX ds_ship_mode_t1_index1 ON tpcds.ship_mode_t1 USING psort (sm_ship_mode_sk) TABLESPACE pg_default(1 row)
  • pg_get_tabledef(table_name/table_oid, forCreate boolean,withColComm boolean) 描述:根据table_name获取表定义。该函数仅9.1.0.200及以上集群版本支持。 返回类型:text withColComment参数为true时,列字段的comment紧随对应字段显示。 withColComment参数为false时,列字段的comment显示在表定义内容的末尾。 示例: SELECT pg_get_tabledef('person',false,true); pg_get_tabledef ---------------------------------------------------- SET search_path = public; + CREATE TABLE person ( + id integer COMMENT '学号', + name character varying(25) COMMENT '姓名',+ address text COMMENT '地址' + ) + WITH (orientation=row, compression=no) + DISTRIBUTE BY ROUNDROBIN + TO GROUP group_version1;(1 row)SELECT pg_get_tabledef('person',false,false); pg_get_tabledef --------------------------------------------- SET search_path = public; + CREATE TABLE person ( + id integer, + name character varying(25), + address text + ) + WITH (orientation=row, compression=no) + DISTRIBUTE BY ROUNDROBIN + TO GROUP group_version1; + COMMENT ON COLUMN person.id IS '学号'; + COMMENT ON COLUMN person.name IS '姓名'; + COMMENT ON COLUMN person.address IS '地址';(1 row)
  • pg_get_expr(pg_node_tree, relation_oid, pretty_bool) 描述:反编译表达式的内部形式,假设其中的任何Vars都引用第二个参数指定的关系。 返回类型:text 备注:pg_get_expr反编译一个独立表达式的内部形式,比如一个字段的缺省值。在检查系统表的内容的时候很有用。如果表达式可能包含关键字,则指定它们引用相关的OID作为第二个参数;如果没有关键字,设置为零即可。
  • pg_get_viewdef(viewname text [, pretty bool [, fullflag bool]]) 描述:为视图获取底层的SELECT命令。 返回类型:text 备注: pg_get_viewdef重构定义视图的SELECT查询。pretty bool参数为true时,显示格式“适合打印”,且该格式易读。pretty bool参数缺省值为false,显示格式不易读。如果用于转储,那么尽可能使用缺省格式。pretty bool参数只对有效视图生效。 fullflag bool参数为true时,显示视图的完整定义。其缺省值为false。
  • 范围的输入/输出 范围值的输入必须遵循下列模式之一: (lower-bound,upper-bound) (lower-bound,upper-bound] [lower-bound,upper-bound) [lower-bound,upper-bound] empty 圆括号或方括号指示上下界是否为排除的或者包含的。最后一个模式是empty,它表示一个空范围(一个不包含点的范围)。 lower-bound可以作为子类型的合法输入的一个字符串,或者是空,表示没有下界。同样,upper-bound可以是作为子类型的合法输入的一个字符串,或者是空,表示没有上界。 每个界限值可以使用双引号引用。如果界限值包含圆括号、方括号、逗号、双引号或反斜线时,则必须使用双引号引用,否则这些符号会被认作范围语法的一部分。要想把双引号或反斜线放在被引用的界限值中,需要在双引号或反斜线前面加一个反斜线(在双引号引用的界限值中的一对双引号表示一个双引号字符,这与SQL字符串中的单引号规则类似)。此外,可以避免引用并且使用反斜线转义来保护所有数据字符,否则它们会被当做返回语法的一部分。什么都不写则表示一个无限界限,因此,要表示空字符串的界限值,可以写成""。 范围值前后允许有空格,但是圆括号或方括号之间的任何空格会被当做上下界值的一部分(取决于元素类型,它可能是有意义的也可能是无意义的)。 示例 查询包括3,不包括7,并且包括3和7之间的所有点: SELECT '[3,7)'::int4range; int4range----------- [3,7)(1 row) 查询既不包括3也不包括 7,但是包括之间的所有点: SELECT '(3,7)'::int4range; int4range----------- [4,7)(1 row) 查询只包括单独一个点4: SELECT '[4,4]'::int4range; int4range----------- [4,5)(1 row) 查询不包括点(并且将被标准化为 '空'): SELECT '[4,4)'::int4range; int4range----------- empty(1 row)
  • 构造范围 每一种范围类型都有一个与其同名的构造器函数。使用构造器函数比写一个范围文字常数更方便,因为它避免了对界限值的额外引用。构造器函数接受两个或三个参数。两个参数的形式以标准的形式构造一个范围(包含下界,排除上界),而三个参数的形式按照第三个参数指定的界限形式构造一个范围。第三个参数必须是下列字符串之一: “()”、 “(]”、 “[)”或者 “[]”。 例如: 完整形式是:下界、上界以及指示界限包含性/排除性的文本参数: SELECT numrange(1.0, 14.0, '(]'); numrange------------ (1.0,14.0](1 row) 如果第三个参数被忽略,则假定为 '[)': SELECT numrange(1.0, 14.0); numrange------------ [1.0,14.0)(1 row) 尽管这里指定了'(]',单返回结果时该值将被转换成标准形式,因为int8range是一种离散范围类型: SELECT int8range(1, 14, '(]'); int8range----------- [2,15)(1 row) 界限使用NULL导致范围是无界的: SELECT numrange(NULL, 2.2); numrange---------- (,2.2)(1 row)
  • pg_get_functiondef(func_oid) 描述:获取函数的定义。 返回类型:text func_oid为函数的OID,可以通过PG_PROC系统表查询。 示例:查询函数justify_days的OID及其函数定义。 1 2 3 4 5 6 7 8 910111213141516 SELECT oid FROM pg_proc WHERE proname ='justify_days'; oid------ 1295(1 row)SELECT * FROM pg_get_functiondef(1295); headerlines | definition-------------+-------------------------------------------------------------- 4 | CREATE OR REPLACE FUNCTION pg_catalog.justify_days(interval)+ | RETURNS interval + | LANGUAGE internal + | IMMUTABLE STRICT NOT FENCED NOT SHIPPABLE + | AS $function$interval_justify_days$function$ + |(1 row)
  • 包含和排除边界 每一个非空范围都有两个界限:下界和上界。这些值之间的所有点都被包括在范围内。包含界限意味着边界点本身也被包括在范围内,而排除边界意味着边界点不被包括在范围内。 在范围的文本形式中,包含下界用“[”表示,排除下界用“(”表示。同样,包含上界用“]”表示,排除上界用“)”表示。 函数lower_inc(anyrange)和lower_inc(anyrange)分别测试一个范围值的上下界。
  • 无限(无界)范围 范围的下界可以省略,这意味着所有小于上界的值都包括在范围中,例如(,3]。同样,范围的上界被省略,则所有大于下界的值都包括在范围中。如果下界和上界都被省略,则该元素类型的所有值都被认为在范围内。如果缺失的边界指定为包含则自动将包含转换为排除,例如[,]将转换为(,)。可以将这些缺失的值视为+/-无穷大,但它们是特殊的范围类型值,并且被视为超出任何范围元素类型的+/-无穷大值。 具有“无穷大”概念的元素类型可以将其作为显式边界值。例如,在时间戳范围,[today,infinity)不包括特殊的timestamp值infinity,尽管[today,infinity]包括它,就好比 [today,)和[today,]。 函数lower_inf(anyrange)和upper_inf(anyrange)分别测试一个范围的无限上下界。
  • 离散范围类型 离散范围是指其元素类型具有定义明确的“步长”的范围,如integer或date。在这些类型中,当两个元素之间没有有效值时,它们可以被说成是相邻。 离散范围类型的每个元素值都有一个明确的“下一个”或“上一个”值。这样就可以通过选择下一个或上一个元素值,在范围界限的包含和排除表达之间转换。例如,在整数范围类型中,[4,8]和(3,9)表示相同的值集合,但对于超过numeric的范围,情况并非如此。 离散范围类型应具有识别元素类型所需步长的规范函数。规范化函数负责将范围类型的等价值转换为具有相同的表示,特别是与包含或者排除界限一致。如果未指定规范化函数,则具有不同格式的范围将始终被视为不相等,即使它们实际上是表达相同的一组值。 内置范围类型int4range、int8range和daterange都使用规范形式,该形式包括下界并且排除上界,也就是[)。但是,用户定义的范围类型可以使用其他约定。
  • 枚举类型的声明 枚举类型可以使用CREATE TYPE命令创建,例如: 1 CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy'); 枚举类型被创建后,可以在表和函数定义中使用: 12345678 CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy');CREATE TABLE person (name text, current_mood mood);INSERT INTO person VALUES ('Moe', 'happy');SELECT * FROM person WHERE current_mood = 'happy'; name | current_mood------+-------------- Moe | happy(1 row)
  • 枚举类型的安全性 每一种枚举数据类型都是独立的并且不能和其他枚举类型相比较。 1 2 3 4 5 6 7 8 9101112 CREATE TYPE happiness AS ENUM ('happy', 'very happy', 'ecstatic');CREATE TABLE holidays (num_weeks integer, happiness happiness);INSERT INTO holidays(num_weeks,happiness) VALUES (4, 'happy');INSERT INTO holidays(num_weeks,happiness) VALUES (6, 'very happy');INSERT INTO holidays(num_weeks,happiness) VALUES (8, 'ecstatic');INSERT INTO holidays(num_weeks,happiness) VALUES (2, 'sad');ERROR: invalid input value for enum happiness: "sad"SELECT person.name, holidays.num_weeks FROM person, holidays WHERE person.current_mood = holidays.happiness;ERROR: operator does not exist: mood = happiness 如果需要作比较,可以使用自定义的操作符或者在查询中加上显式类型: 123456 SELECT person.name, holidays.num_weeks FROM person, holidays WHERE person.current_mood::text = holidays.happiness::text; name | num_weeks------+----------- Moe | 4(1 row)
  • polygon(npts, circle) 描述:圆转换成npts点多边形。 返回类型:polygon 示例: 123456 SELECT polygon(12, circle '((0,0),2.0)') AS RESULT; result ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ((-2,0),(-1.73205080756888,1),(-1,1.73205080756888),(-1.22464679914735e-16,2),(1,1.73205080756888),(1.73205080756888,1),(2,2.44929359829471e-16),(1.73205080756888,-0.999999999999999),(1,-1.73205080756888),(3.67394039744206e-16,-2),(-0.999999999999999,-1.73205080756888),(-1.73205080756888,-1))(1 row)
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全