返回首页

gbase数据、南大通用产品文档:GBase8a产品定位

更新日期:2024年09月11日

南大通用自主研发的GBase 8a MPP Cluster 是大数据时代成熟的分析型MPP 数据
库。最新GBase 8a MPP Cluster V9 版本的虚拟集群适用于系统的规划建设多套集
群,可以实现各个集群业务的独立规划和统一管理;虚拟集群包括数据管理集群、
用户管理集群和集群版本管理集群;各个逻辑子集群间可实现透明的数据迁移、数
据关联和数据共享。

GNS 共享网络参数,非session 级参数。
多共享连接控制,每两个节点之间的单方向请求的连接数,保持
_gbase_gns_share_connection 个
默认值为1
最大值20
值为0 时关闭GNS 网络服务模式,
不启用共享连接数,
使用原有网络模式即每次
请求都新建连接。
兼容性说明:
GNS 共享网络与原网络服务模式不兼容,要求发送端和接收端采用相同的模式,

GBase 8a MPP Cluster 产品手册
6 附录
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1607
即集群所有节点的网络服务模式需要一样。

当您访问 GBase 8s ESQL/C 程序中的数据库列时,必须声明适当的 C 或 GBase 8s
ESQL/C 数据类型的主机变量以保存该数据。表 1 列出了 GBase 8s 的 SQL 数据类型以
及您可以为主机变量声明的对应的 GBase 8s ESQL/C 数据类型。表 2 列出了 GBase 8s
可用的其它 SQL 数据类型和 GBase 8s ESQL/C 数据类型,可用作这些类型的列的主机变
量。这两个表都包括对本书中的章节或章节的引用,您可以在其中获取有关主机变量数据
类型之间的更多信息。
表 1. 对应 SQL 的主机变量数据类型
SQL 数据类型
ESQL/C 预定
义的数据类型
C 语言
类型
请参阅
BIGINT
BIGINT
8 字节
整数
Numeric 数据类型
BIGSERIAL
BIGINT
8 字节
整数
Numeric 数据类型
BOOLEAN
boolean

表 2
BYTE
ifx_loc_t or
loc_t

简单大对象
CHAR(n)
CHARACTER(
n)
fixchar [n] or
string [n+1]
char [n
+ 1] 或
char *
字符和字符串数据类型
DATE
date
4 字节
整数
时间数据类型
DATETIME
datetime or
dtime_t

时间数据类型
DECIMAL
DEC
NUMERIC
MONEY
decimal or
dec_t

Numeric 数据类型
FLOAT
DOUBLE

double
时间数据类型

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 75 -
PRECISION
INT8
int8 or
ifx_int8_t

Numeric 数据类型
INTEGER
INT

4 字节
整数
Numeric 数据类型
INTERVAL
interval or
intrvl_t

时间数据类型
LVARCHAR
lvarchar
char [n
+ 1] 或
char *
字符和字符串数据类型
NCHAR(n)
fixchar [n] or
string [n+1]
char [n
+ 1]或 char
*
字符和字符串数据类型
NVARCHAR(m
)
varchar[m+1]
or string [m+1]
char
[m+1]
字符和字符串数据类型
SERIAL

4 字节
整数
Numeric 数据类型
SERIAL8
int8 or
ifx_int8_t

Numeric 数据类型
SMALLFLOAT
REAL

float
Numeric 数据类型
SMALLINT

2 字节
整数
Numeric 数据类型
TEXT
loc_t

简单大对象
VARCHAR(m,x
)
varchar[m+1]
or string [m+1]
char
d[m+1]
字符和字符串数据类型



GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 76 -
表 2. 对应于 GBase 8s 特定的 SQL 和主机变量数据类型
SQL 数据类型
ESQL/C 预定义
类型
请参阅
BLOB
ifx_lo_t
智能大对象
CLOB
ifx_lo_t
智能大对象
LIST(e)
collection
智能大对象
MULTISET(e)
collection
复杂数据类型
Opaque data type
lvarchar,
fixed binary, or var
binary
不透明数据类型
ROW(...)
row
复杂数据类型
SET(e)
collection
复杂数据类型
数据类型常量
GBase 8s ESQL/C sqltypes.h 头文件常量包含 SQL 和 GBase 8s ESQL/C 数据类型。
一些 GBase 8s ESQL/C 库函数要求数据类型常量作为参数。还可以在动态 SQL 程序中比
较这些数据类型常量,以确定描述 DESCRIBE 语句的列的类型。下图中的 GBase 8s
ESQL/C 代码摘录将 sqlvar 的 sqltype 元素与一系列 SQL 数据类型常量进行比较,以
确定 DESCRIBE 语句返回的列的类型。
图: 带有 SQL 数据类型常量的代码摘录
for (col = udesc->sqlvar, i = 0; i < udesc->sqld; col++, i++)
{
switch(col->sqltype)
{
case SQLSMFLOAT:
col->sqltype = CFLOATTYPE;
break;

case SQLFLOAT:
col->sqltype = CDOUBLETYPE;
break;

case SQLMONEY:
case SQLDECIMAL:
col->sqltype = CDECIMALTYPE;

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 77 -
break;

case SQLCHAR:
col->sqltype = CCHARTYPE;
break;

default:
/* The program does not handle INTEGER,
* SMALL INTEGER, DATE, SERIAL or other
* data types. Do nothing if we see
* an unsupported type.
*/
return;
}
SQL 数据类型常量
表 1 显示了 GBase 8s 的 SQL 数据类型常量。表 2 显示了其它可用于 GBase 8s
的数据类型的 SQL 数据类型常量。
表 1. GBase 8s SQL 类数据类型的常量
SQL 数据类型
定义的常量
整数值
CHAR
SQLCHAR
0
SMALLINT
SQLSMINT
1
INTEGER
SQLINT
2
FLOAT
SQLFLOAT
3
SMALLFLOAT
SQLSMFLOAT
4
DECIMAL
SQLDECIMAL
5
SERIAL
SQLSERIAL
6
DATE
SQLDATE
7
MONEY
SQLMONEY
8
DATETIME
SQLDTIME
10
BYTE
SQLBYTES
11
TEXT
SQLTEXT
12

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 78 -
VARCHAR
SQLVCHAR
13
INTERVAL
SQLINTERVAL
14
NCHAR
SQLNCHAR
15
NVARCHAR
SQLNVCHAR
16
INT8
SQLINT8
17
BIGSERIAL
SQLBIGSERIAL
53
LVARCHAR
SQLLVARCHAR
43
BOOLEAN
SQLBOOL
45
BIGINT
SQLINFXBIGIN
T
52
BIGSERIAL
SQLBIGSERIAL
53

表 2. 特定于 GBase 8s 的 GBase 8s SQL 列数据类型的常量
SQL 数据类型
定义的常量
整数值
SET
SQLSET
19
MULTISET
SQLMULTISET
20
LIST
SQLLIST
21
ROW
SQLROW
22
可变长度的不透明类型
SQLUDTVAR
40
固定长度的不透明类型
SQLUDTFIXED
41
SENDRECV(仅限于客户
端)
SQLSENDRECV
44
重要: SENDRECV 数据类型具有 SQL 常量但是只能在 GBase 8s ESQL/C 程序中
使用。不能将数据库列定义为类型 SENDRECV。
ESQL/C 数据类型常量
在 GBase 8s ESQL/C 中给主机变量指定 GBase 8s ESQL/C 数据类型。下表显示了这

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 79 -
些常量。
表 1. ESQL/C 主机变量数据类型的常量
ESQL/C 数据类型
常量
整数值
char
CCHARTYPE
100
short int
CSHORTTYPE
101
int4
CINTTYPE
102
long
CLONGTYPE
103
float
CFLOATTYPE
104
double
CDOUBLETYPE
105
dec_t 或 decimal
CDECIMALTYPE
107
fixchar
CFIXCHARTYPE
108
string
CSTRINGTYPE
109
date
CDATETYPE
110
dec_t 或 decimal
CMONEYTYPE
111
datetime 或 dtime_t
CDTIMETYPE
112
ifx_loc_t 或 loc_t
CLOCATORTYPE
113
varchar
CVCHARTYPE
114
intrvl_t 或 interval
CINVTYPE
115
char
CFILETYPE
116
int8
CINT8sYPE
117
collection
CCOLTYPE
118
lvarchar
CLVCHARTYPE
119

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 80 -
fixed binary
CFIXBINTYPE
120
var binary
CVARBINTYPE
121
boolean
CBOOLTYPE
122
row
CROWTYPE
123
可以使用这些 GBase 8s ESQL/C 数据类型作为 GBase 8s ESQL/C 库中某些函数的
参数的数据类型。例如:rtypalign() 和 rtypmsize() 函数都要求数据类型值作为参数。
X/Open 数据类型常量
如果您的程序符合 X/Open 标准
(使用 -xopen 选项编译)

那么必须使用下表显示
的数据类型值。GBase 8s 为 sqlxtype.h 头文件中的这些值定义常量。
表 1. X/Open 环境中 GBase 8s SQL 列数据类型的常量
SQL 数据类型
定义的常量
X/Open 整数值
CHAR
XSQLCHAR
1
DECIMAL
XSQLDECIMAL
3
INTEGER
XSQLINT
4
SMALLINT
XSQLSMINT
5
FLOAT
XSQLFLOAT
6
头文件的数据类型
要使用 SQL 数据类型,您的程序必须包括适当的 GBase 8s ESQL/C 头文件。表 1
显示了使用数据库服务器主机变量和 GBase 8s ESQL/C 头文件之间的关系。
表 2显示了主
机变量数据类型和特定于 GBase 8s Universal Data Option 的 GBase 8s ESQL/C 头文件之
间的关系。
表 1. SQL 数据类型和 ESQL/C 头文件
SQL 数据类型
ESQL/C 或 C 数据类型
ESQL/C 头文件
BLOB
ifx_lo_t
locator.h
BOOLEAN
boolean
自动定义
BYTE
ifx_loc_t 或 loc_t
locator.h

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 81 -
CHAR(n)
CHARACTER(n)
fixchar array[n] 或
string array[n+1]
自动定义
DATE
date
自动定义
DATETIME
datetime 或 dtime_t
datetime.h
DECIMAL
DEC
NUMERIC
MONEY
decimal 或 dec_t
decimal.h
FLOAT
DOUBLE PRECISION
double
自动定义
INT8
int8
int8.h
INTEGER
INT
4 字节整数
自动定义
INTERVAL
interval or intrvl_t
datetime.h
LVARCHAR
lvarchar array[n + 1]
( n 是可能存储在
LVARCHAR 自动中的长字符
串的长度)
自动定义
MULTISET(e)
collection
自动定义
NCHAR(n)
fixchar array[n] or
string array[n+1]
自动定义
NVARCHAR(m)
varchar[m+1] or string
array[m+1]
自动定义
SERIAL
4 字节整数
自动定义
SERIAL8
int8
int8.h
BIGINT
BIGINT
自动定义

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 82 -
BIGSERIAL
BIGINT
自动定义
SMALLFLOAT
REAL
float
自动定义
SMALLINT
short int
自动定义
TEXT
loc_t
locator.h
VARCHAR(m,x)
varchar[m+1] 或 string
array[m+1]
自动定义

表 2. 特定于 GBase 8s 的 SQL 数据类型和 ESQL/C 头文件
SQL 数据类型
ESQL/C 或 C 数据类型
ESQL/C 头文件
BLOB
ifx_lo_t
locator.h
CLOB
ifx_lo_t
locator.h
LIST(e)
collection
自动定义
Opaque 数据类型
lvarchar 或 fixed
binary 或 var binary
包含内部结构或不透明类
型定义的常量的用户定义的头
文件
ROW(...)
row
自动定义
SET(e)
collection
自动定义