返回首页

gbase数据、南大通用产品文档:GBase8c网卡固件确认与更新

更新日期:2024年09月11日

执行命令ethtool -i enp3s0 确认当前环境的网卡固件版本是否为2.4.1.0,
如果不是2.4.1.0,
建议更换为2.4.1.0,以获得更佳性能。
# ethtool -i enp3s0
driver: hinic

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
589
version: 2.3.2.11
firmware-version: 2.4.1.0
expansion-rom-version:
bus-info: 0000:03:00.0

更新网卡固件。
a.在..\firmware\update_bin 路径下,获取cfg_data_nic_prd_1h_4x25G.bin 文件。
b.使用root 用户执行如下命令更新网卡固件。

hinicadm updatefw -i <物理网卡设备名> -f <固件文件路径>
涉及的参数说明如下:

“物理网卡设备名”为网卡在系统中的名称,例如“hinic0”表示第一张网卡,“hinic1”表示
第二张网卡,查找方法参见前文网卡多中断队列设置。

“固件文件路径”为cfg_data_nic_prd_1h_4x25G.bin 文件的路径。
例如:

#

Please do not remove driver or network device

Loading...

[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]
[100%] [\]

Loading firmware image succeed.

Please reboot OS to take firmware effect.
c.重启服务器,再确认网卡固件版本成功更新为2.4.1.0。

# ethtool -i enp3s0

driver: hinic

version: 2.3.2.11

firmware-version: 2.4.1.0

expansion-rom-version:

bus-info: 0000:03:00.0


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 字节。
gbase=# SELECT format_type((SELECT oid FROM pg_type WHERE typname='varchar'),
10);
format_type
----------------------
character varying(6)
(1 row)

getdistributekey(table_name)
描述:获取一个hash 表的分布列。单机环境下不支持分布,该函数返回为空。

pg_check_authid(role_oid)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
415
描述:检查是否存在给定oid 的角色名。
返回类型:bool
示例:
gbase=# select pg_check_authid(1);
pg_check_authid
-----------------
f
(1 row)

pg_describe_object(catalog_id, object_id, object_sub_id)
描述:获取数据库对象的描述。
返回类型:text
备注:pg_describe_object 返回由目录OID,对象OID 和一个(或许0 个)子对象ID 指
定的数据库对象的描述。这有助于确认存储在pg_depend 系统表中对象的身份。

pg_get_constraintdef(constraint_oid)
描述:获取约束的定义。
返回类型:text

pg_get_constraintdef(constraint_oid, pretty_bool)
描述:获取约束的定义。
返回类型:text
备注:
pg_get_constraintdef 和pg_get_indexdef 分别从约束或索引上使用创建命令进行重
构。

pg_get_expr(pg_node_tree, relation_oid)
描述:反编译表达式的内部形式,假设其中的任何Vars 都引用第二个参数指定的关系。
返回类型:text

pg_get_expr(pg_node_tree, relation_oid, pretty_bool)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
416
描述:反编译表达式的内部形式,假设其中的任何Vars 都引用第二个参数指定的关系。
返回类型:text
备注:pg_get_expr 反编译一个独立表达式的内部形式,比如一个字段的缺省值。在检
查系统表的内容的时候很有用。如果表达式可能包含关键字,则指定他们引用相关的OID
作为第二个参数;如果没有关键字,零就足够了。

pg_get_functiondef(func_oid)
描述:获取函数的定义。
返回类型:text
示例:
gbase=# select * from pg_get_functiondef(598);
headerlines |
definition
-------------+----------------------------------------------------
4 | CREATE OR REPLACE FUNCTION pg_catalog.abbrev(inet)+
|
RETURNS text
+
|
LANGUAGE internal
+
|
IMMUTABLE STRICT NOT FENCED NOT SHIPPABLE
+
| AS $function$inet_abbrev$function$;
+
|
(1 row)

pg_get_function_arguments(func_oid)
描述:获取函数定义的参数列表(带默认值)

返回类型:text
备注:
pg_get_function_arguments返回一个函数的参数列表,
需要在CREATE FUNCTION
中使用这种格式。

pg_get_function_identity_arguments(func_oid)
描述:获取参数列表来确定一个函数(不带默认值)

返回类型:text

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
417
备注:
pg_get_function_identity_arguments 返回需要的参数列表用来标识函数,
这种形式
需要在ALTER FUNCTION 中使用,并且这种形式省略了默认值。

pg_get_function_result(func_oid)
描述:获取函数的RETURNS 子句。
返回类型:text
备注:pg_get_function_result 为函数返回适当的RETURNS 子句。

pg_get_indexdef(index_oid)
描述:获取索引的CREATE INDEX 命令。
返回类型:text
示例:
gbase=# select * from pg_get_indexdef(16416);
pg_get_indexdef
-------------------------------------------------------------------------
CREATE INDEX test3_b_idx ON test3 USING btree (b) TABLESPACE pg_default
(1 row)

pg_get_indexdef(index_oid, dump_schema_only)
描述:获取索引的CREATE INDEX 命令,仅用于dump 场景。对于包含local 索引的间
隔分区表,当dump_schema_only 为true 时,返回的创建索引语句中不包含自动创建的分区
的local 索引信息;当dump_schema_only 为false 时,返回的创建索引语句中包含自动创建
的分区的local 索引信息。对于非间隔分区表或者不包含local 索引的间隔分区分区表,
dump_schema_only 参数取值不影响函数返回结果。
返回类型:text
示例:
gbase=# CREATE TABLE sales
gbase-# (prod_id NUMBER(6),
gbase(#
cust_id NUMBER,
gbase(#
time_id DATE,

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
418
gbase (#
channel_id CHAR(1),
gbase (#
promo_id NUMBER(6),
gbase (#
quantity_sold NUMBER(3),
gbase (#
amount_sold NUMBER(10,2)
gbase (# )
gbase-# PARTITION BY RANGE( time_id) INTERVAL('1 day')
gbase -# (
gbase (# partition p1 VALUES LESS THAN ('2019-02-01 00:00:00'),
gbase (# partition p2 VALUES LESS THAN ('2019-02-02 00:00:00')
gbase (# );
CREATE TABLE
gbase=# create index index_sales on sales(prod_id) local (PARTITION
idx_p1 ,PARTITION idx_p2);
CREATE INDEX
-- 插入数据没有匹配的分区,新创建一个分区,并将数据插入该分区
gbase=# INSERT INTO sales VALUES(1, 12, '2019-02-05 00:00:00', 'a', 1, 1, 1);
INSERT 0 1
gbase=# select oid from pg_class where relname = 'index_sales';
oid
-------
16636
(1 row)
gbase=# select * from pg_get_indexdef(16636, true);
pg_get_indexdef
-----------------------------------------------------------------------------
-------------------------------------------------------------------------
CREATE INDEX index_sales ON sales USING ubtree (prod_id) LOCAL(PARTITION idx_p1,
PARTITION idx_p2)
WITH (storage_type=USTORE) TABLESPACE pg_default
(1 row)
gbase=# select * from pg_get_indexdef(16636, false);
pg_get_indexdef
------------------------------------------------------------------
------------------------------------------------------------------
------------------------------------------------
CREATE INDEX index_sales ON sales USING ubtree (prod_id) LOCAL(PA
RTITION idx_p1, PARTITION idx_p2, PARTITION sys_p1_prod_id_idx)
W
ITH (storage_type=USTORE) TABLESPACE pg_default
(1 row)

pg_get_indexdef(index_oid, column_no, pretty_bool)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
419
描述:获取索引的CREATE INDEX 命令,或者如果column_no 不为零,则只获取一个
索引字段的定义。
示例:
gbase=# select * from pg_get_indexdef(16416, 0, false);
pg_get_indexdef
-------------------------------------------------------------------------
CREATE INDEX test3_b_idx ON test3 USING btree (b) TABLESPACE pg_default
(1 row)
gbase=# select * from pg_get_indexdef(16416, 1, false);
pg_get_indexdef
-----------------
b
(1 row)
返回类型:text
备注:
pg_get_functiondef 为函数返回一个完整的CREATE OR REPLACE FUNCTION 语
句。

pg_get_keywords()
描述:获取SQL 关键字和类别列表。
返回类型:setof record
备注:
pg_get_keywords 返回一组关于描述服务器识别SQL 关键字的记录。
word 列包含
关键字。catcode 列包含一个分类代码:U 表示通用的,C 表示列名,T 表示类型或函数名,
或R 表示保留。catdesc 列包含了一个可能本地化描述分类的字符串。

pg_get_userbyid(role_oid)
描述:获取给定OID 的角色名。
返回类型:name
备注:pg_get_userbyid 通过角色的OID 抽取对应的用户名。

pg_check_authid(role_id)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
420
描述:通过role_id 检查用户是否存在。
返回类型:text
示例:
gbase=# select pg_check_authid(20);
pg_check_authid
-----------------
f
(1 row)

pg_get_viewdef(view_name)
描述:为视图获取底层的SELECT 命令。
返回类型:text

pg_get_viewdef(view_name, pretty_bool)
描述:为视图获取底层的SELECT 命令,如果pretty_bool 为true,行字段可以包含80
列。
返回类型:text
备注:
pg_get_viewdef 重构出定义视图的SELECT 查询。
这些函数大多数都有两种形式,
其中带有pretty_bool 参数,且参数为true 时,是”适合打印”的结果,这种格式更容易读。另
一种是缺省的格式,更有可能被将来的不同版本用同样的方法解释。
如果是用于转储,
那么
尽可能避免使用适合打印的格式。给pretty-print 参数传递false 生成的结果和没有这个参数
的变种生成的结果是完全一样。

pg_get_viewdef(view_oid)
描述:为视图获取底层的SELECT 命令。
返回类型:text

pg_get_viewdef(view_oid, pretty_bool)
描述:为视图获取底层的SELECT 命令,如果pretty_bool 为true,行字段可以包含80
列。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
421
返回类型:text

pg_get_viewdef(view_oid, wrap_column_int)
描述:为视图获取底层的SELECT 命令;行字段被换到指定的列数,打印是隐含的。
返回类型:text

pg_get_tabledef(table_oid)
描述:根据table_oid 获取表定义
示例:
gbase=# select * from pg_get_tabledef(16384);
pg_get_tabledef
-------------------------------------------------------
SET search_path = public;
+
CREATE
TABLE t1 (
+
c1 bigint DEFAULT nextval('serial'::regclass)+
)
+
WITH (orientation=row, compression=no)
+
TO GROUP group1;
(1 row)
返回类型:text

pg_get_tabledef(table_name)
描述:根据table_name 获取表定义。
示例:
gbase=# select * from pg_get_tabledef('classes');
pg_get_tabledef
--------------------------------------------------------------
SET search_path = public;
+
CREATE TABLE classes (
+
name character varying,
+
score bigint
+
)
+
WITH (orientation=row, compression=no, storage_type=USTORE);
(1 row)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
422
返回类型:text
备注:pg_get_tabledef 重构出表定义的CREATE 语句,包含了表定义本身、索引信息、
comments 信息。对于表对象依赖的group、schema、tablespace、server 等信息,需要用户自
己去创建,表定义里不会有这些对象的创建语句。

pg_options_to_table(reloptions)
描述:获取存储选项名称/值对的集合。
返回类型:setof record
备注:pg_options_to_table 当通过pg_class.reloptions 或pg_attribute.attoptions 时返回存
储选项名称/值对(option_name/option_value)的集合。

pg_tablespace_databases(tablespace_oid)
描述:获取在指定的表空间中有对象的数据库OID 集合。
返回类型:setof oid
备注:pg_tablespace_databases 允许检查表空间的状况,返回在该表空间中保存了对象
的数据库OID 集合。如果这个函数返回数据行,则该表空间就是非空的,因此不能删除。
要显示该表空间中的特定对象,用户需要连接pg_tablespace_databases 标识的数据库与查询
pg_class 系统表。

pg_tablespace_location(tablespace_oid)
描述:获取表空间所在的文件系统的路径。
返回类型:text

pg_typeof(any)
描述:获取任何值的数据类型。
返回类型:regtype
备注:pg_typeof 返回传递给他的值的数据类型OID。这可能有助于故障排除或动态构
造SQL 查询。声明此函数返回regtype,这是一个OID 别名类型(请参考对象标识符类型)


GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
423
这意味着它是一个为了比较而显示类型名称的OID。
示例:
gbase=# SELECT pg_typeof(33);
pg_typeof
-----------
integer
(1 row)
gbase=# SELECT typlen FROM pg_type WHERE oid = pg_typeof(33);
typlen
--------
4
(1 row)

collation for (any)
描述:获取参数的排序。
返回类型:text
备注:表达式collation for 返回传递给他的值的排序。
示例:
gbase=# SELECT collation for (description) FROM pg_description LIMIT 1;
pg_collation_for
------------------
"default"
(1 row)
值可能是引号括起来的并且模式限制的。如果没有为参数表达式排序,则返回一个null
值。如果参数不是排序的类型,则抛出一个错误。

pg_extension_update_paths(name)
描述:返回指定扩展的版本更新路径。
返回类型:text(source text), text(path text), text(target text)

pg_get_serial_sequence(tablename, colname)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
424
描述:获取对应表名和列名上的序列。
返回类型:text
示例:
gbase=# select * from pg_get_serial_sequence('t1', 'c1');
pg_get_serial_sequence
------------------------
public.serial
(1 row)

pg_sequence_parameters(sequence_oid)
描述:获取指定sequence 的参数,包含起始值,最小值和最大值,递增值等。
返回类型:int16, int16,int16, bigint, Boolean
示例:
gbase=# select * from pg_sequence_parameters(16420);
start_value | minimum_value |
maximum_value
| increment | cycle_option
-------------+---------------+---------------------+-----------+-------------
101 |
1 | 9223372036854775807 |
1 | f
(1 row)

字符串处理函数接受类型为 CHAR 、NCHAR 、VARCHAR 、NVARCHAR 或
LVARCHAR 的参数。可以在使用表达式的任何地方使用字符串处理函数。
下列函数在字符串中进行大写字母和小写字母之间的转换:

LOWER

UPPER

INITCAP
下列函数以各种方法处理字符串:

REPLACE

SUBSTR

SUBSTRING

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 97 -


LPAD

RPAD
限制: 不能过载任何字符串处理函数来处理扩展数据类型。

LOWER 函数
使用 LOWER 函数来将字符串中的每个大写字母替换为小写字母。LOWER 函数接受字符
数据类型的参数并返回具有与指定的参数相同数据类型的值。
下列函数使用 LOWER 函数来将字符串的任何大写字母转换为小写字母。
图: 查询
SELECT manu_code, LOWER(manu_code)
FROM items
WHERE order_num = 1018
图: 查询结果
manu_code (expression)

PRC prc
KAR kar
PRC prc
SMT smt
HRO hro

UPPER 函数
使用 UPPER 函数来将字符串中的每个小写字母替换为大写字母。UPPER 函数接受字符数
据类型的参数并返回具有与指定的参数相同数据类型的值。
下列查询中 UPPER 函数将字符串中的任何小写字母转换为大写字母。
图: 查询
SELECT call_code, UPPER(code_descr) FROM call_type
图: 查询结果
call_code (expression)

B BILLING ERROR
D DAMAGED GOODS
I INCORRECT MERCHANDISE SENT
L LATE SHIPMENT

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 98 -

O OTHER

INITCAP 函数
使用 INITCAP 函数来将字符串中每个词的首字母替换为大写字母。
每当函数遇到字母之前
是非字母字符时,INITCAP 函数就会假设是一个新词。INITCAP 函数接受字符数据类型的
参数并返回指定参数相同数据类型的值。
下列查询使用 INITCAP 函数将字符串中每个词的首字母替换为大写字母。
图: 查询
SELECT INITCAP(description) FROM stock
WHERE manu_code = "ANZ";
图: 查询结果
(expression)

Tennis Racquet
Tennis Ball
Volleyball
Volleyball Net
Helmet
Golf Shoes
3 Golf Balls
Running Shoes
Watch
Kick Board
Swim Cap

REPLACE 函数
使用 REPLACE 函数来将字符串中的某一组字符替换为其它字符。
在以下查询中,REPLACE 函数将单元列值 each 替换为查询返回的每一行的 item。
REPLACE 函数的第一个参数是要进行求值的表达式。
第二个参数指定想要替换的字符。

三个参数指定要替换除去的字符的新字符串。
图: 查询
SELECT stock_num, REPLACE(unit,"each", "item") cost_per, unit_price
FROM stock
WHERE manu_code = "HRO";

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 99 -

图: 查询结果
stock_num cost_per unit_price

1 case $250.00
2 case $126.00
4 case $480.00
7 case $600.00
110 case $260.00
205 case $312.00
301 item $42.50
302 item $4.50
304 box $280.00
305 case $48.00
309 case $40.00
312 box $72.00

SUBSTRING 和 SUBSTR 函数
可以使用 SUBSTRING 和 SUBSTR 函数返回部分字符串。指定开始位置和长度(可选)来
确定函数返回字符串的哪部分。
限制: 这两个函数在参数中的使用测量单位是字节,而非逻辑字符。这在缺省语言环境和另
一个单字节语言环境中都不重要,但是您不能在代码集与其存储长度不同的逻辑字符的语言环
境中调用 SUBSTRING 或 SUBSTR。

SUBSTRING 函数
可以使用 SUBSTRING 函数来返回字符串的某部分。指定开始位置和长度(可选)来确定
返回字符串的哪部分。
可以指定正数或负数作为开始位置。
开始位置 1 指定 SUBSTRING 函
数从字符串的第一个位置开始。当开始位置为(0)或负数时,SUBSTRING 函数从字符串
的开头开始向后计数。
下列查询显示 SUBSTRING 函数的一个示例,其返还查询返回的任何 sname 列值的前四个
字符。在本示例中,SUBSTRING 函数从字符串的开头开始,返回开始位置开始的四个字
符。
图: 查询
SELECT sname, SUBSTRING(sname FROM 1 FOR 4) FROM state
WHERE code = "AZ";
图: 查询结果

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 100 -

sname (expression)

Arizona Ariz
在下列查询中,SUBSTRING 函数指定开始位置 6,但未指定长度。函数返回从字符串的第
六个位置开始到字符串结尾的字符串。
图: 查询
SELECT sname, SUBSTRING(sname FROM 6) FROM state
WHERE code = "WV";
图: 查询结果
sname (expression)

West Virginia Virginia
在下列查询中,SUBSTRING 函数只返回查询返回的任何 sname 列值的第一个字符。对
于 SUBSTRING 函数,开始位置 -2 表示从字符的开始位置向后数三个位置(0 、-1 、-2)
(对于开始位置 0,函数从字符串的开始位置向后数一个位置)。
图: 查询
SELECT sname, SUBSTRING(sname FROM -2 FOR 4) FROM state
WHERE code = "AZ";
图: 查询结果
sname (expression)

Arizona A

SUBSTR 函数
SUBSTR 函数的作用于 SUBSTRING 函数相同,但两个函数的语法有区别。
要返回字符串的一部分,指定开始位置和长度(可选)来确定 SUBSTR 函数返回子串的哪
个部分。为 SUBSTR 函数指定的开始位置可以是正数,也可以是负数。然而,SUBSTR 函
数用与 SUBSTRING 函数不同的方式处理开始位置中的负数。当开始位置是负数时,
SUBSTR 函数从字符串的末尾开始向后计数,这取决于字符串的长度,而不是字符串包含
词或可视字符的长度。SUBSTR 函数将开始位置中的零(0)或 1 识别为字符串中的第一个
位置。
下列查询显示包括负数作为开始位置的 SUBSTR 函数的一个示例。假定开始位置为 -15,
那么 SUBSTR 函数从字符串末尾开始向后数 15 个位置来找到开始位置,然后返回下五个
字符。
图: 查询

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 101 -

SELECT sname, SUBSTR(sname, -15, 5) FROM state
WHERE code = "CA";
图: 查询结果
sname (expression)

California Calif
要使用负数作为开始位置,
需要指定求出的长度值。
sname 列被定义为 CHAR(15),
因此接
受类型为 sname 的参数的 SUBSTR 函数可以将开始位置 0 、1 或 -15 用于函数来返回从字
符串的第一个位置开始的字符串。
下列查询返回与图 1相同的结果。
图: 查询
SELECT sname, SUBSTR(sname, 1, 5) FROM state
WHERE code = "CA";

LPAD 函数
使用 LPAD 函数返回已用重复次数达到必要次数的字符序列在左边填充或截断的字符串的
副本,这取决于字符串中填充部分的指定长度。指定源字符串、要返回的字符串的长度和
要用来填充的字符串。
源字符串和用来填充的字符串的数据类型可以是能转换为 VARCHAR 或 NVARCHAR
的任何数据类型。
下列查询显示具有指定长度 21 个字节的 LPAD 函数的一个示例。
由于源字符串长度为 15
个字节(sname 被定义为 CHAR(15)),所以 LPAD 函数填充字符串左边的前六个位置。
图: 查询
SELECT sname, LPAD(sname, 21, "-")
FROM state
WHERE code = "CA" OR code = "AZ";
图: 查询结果
sname (expression)

California ------California
Arizona ------Arizona

RPAD 函数

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 102 -

所以 RPAD 函数返回已用重复次数达到必要次数的字符序列在右边填充或截断的字符串的
副本,这取决于字符串中填充部分的指定长度。指定源字符串、要返回的字符串的长度和
要用来填充的字符串。
源字符串和用来填充的字符串的数据类型可以是能转换为 VARCHAR 或 NVARCHAR
的任何数据类型。
下列查询显示具有指定长度 21 个字节的 RPAD 函数的一个示例。
由于源字符串长度为 15
个字节(sname 被定义为 CHAR(15)),所以 LPAD 函数填充字符串右边的前六个位置。
图: 查询
SELECT sname, RPAD(sname, 21, "-")
FROM state
WHERE code = "WV" OR code = "AZ";
图: 查询结果
sname (expression)
West Virginia West Virginia ------
Arizona Arizona ------
除了这些函数之外,LTRIM 和 RTRIM 函数可以返回删除其字符串参数中指定前导或尾随
填充字符的值,并且 ASCII 函数可以返回在其字符串参数中第一个字符的 ASCII 字符集
中代码点的数字值。
这些内置函数对字符串值的操作在 GBase 8s SQL 指南:
语法中进行了
描述。