返回首页

gbase数据、南大通用产品文档:GBase8s完整例程的示例

更新日期:2024年09月11日

下列 CREATE FUNCTION 语句创建读取客户地址的例程:
CREATE FUNCTION read_address (lastname CHAR(15)) -- one argument
RETURNING CHAR(15), CHAR(15), CHAR(20), CHAR(15),CHAR(2)
CHAR(5); -- 6 items

DEFINE p_lname,p_fname, p_city CHAR(15);
--define each routine variable
DEFINE p_add CHAR(20);
DEFINE p_state CHAR(2);
DEFINE p_zip CHAR(5);

SELECT fname, address1, city, state, zipcode
INTO p_fname, p_add, p_city, p_state, p_zip
FROM customer
WHERE lname = lastname;

RETURN p_fname, lastname, p_add, p_city, p_state, p_zip;
--6 items
END FUNCTION;

DOCUMENT 'This routine takes the last name of a customer as',
--brief description
'its only argument. It returns the full name and address',
'of the customer.'

WITH LISTING IN 'pathname' -- modify this pathname according
-- to the conventions that your operating system requires

-- compile-time warnings go here
; -- end of the routine read_address


hll_hash_boolean(bool)
描述:对bool 类型数据计算哈希值。
返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_boolean(FALSE);
hll_hash_boolean
---------------------
-5451962507482445012
(1 row)

hll_hash_boolean(bool, int32)
描述:设置hash seed(即改变哈希策略)并对bool 类型数据计算哈希值。
返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_boolean(FALSE, 10);
hll_hash_boolean
--------------------
-1169037589280886076
(1 row)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
294

hll_hash_smallint(smallint)
描述:对smallint 类型数据计算哈希值。
返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_smallint(100::smallint);
hll_hash_smallint
---------------------
962727970174027904
(1 row)
数值大小相同的参数使用不同数据类型的哈希函数计算,
最后结果会不一样,
因为不同
类型哈希函数会选取不同的哈希计算策略。

hll_hash_smallint(smallint, int32)
描述:设置hash seed(即改变哈希策略)同时对smallint 类型数据计算哈希值。
返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_smallint(100::smallint, 10);
hll_hash_smallint
---------------------
-9056177146160443041
(1 row)

hll_hash_integer(integer)
描述:对integer 类型数据计算哈希值。
返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_integer(0);
hll_hash_integer
----------------------

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
295
5156626420896634997
(1 row)

hll_hash_integer(integer, int32)
描述:对integer 类型数据计算哈希值,并设置hashseed(即改变哈希策略)

返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_integer(0, 10);
hll_hash_integer
--------------------
-5035020264353794276
(1 row)

hll_hash_bigint(bigint)
描述:对bigint 类型数据计算哈希值。
返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_bigint(100::bigint);
hll_hash_bigint
---------------------
-2401963681423227794
(1 row)

hll_hash_bigint(bigint, int32)
描述:对bigint 类型数据计算哈希值,并设置hashseed(即改变哈希策略)

返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_bigint(100::bigint, 10);
hll_hash_bigint
---------------------
-2305749404374433531
(1 row)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
296

hll_hash_bytea(bytea)
描述:对bytea 类型数据计算哈希值。
返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_bytea(E'\\x');
hll_hash_bytea
----------------
0
(1 row)

hll_hash_bytea(bytea, int32)
描述:对bytea 类型数据计算哈希值,并设置hashseed(即改变哈希策略)

返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_bytea(E'\\x', 10);
hll_hash_bytea
---------------------
7233188113542599437
(1 row)

hll_hash_text(text)
描述:对text 类型数据计算哈希值。
返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_text('AB');
hll_hash_text
---------------------
-5666002586880275174
(1 row)

hll_hash_text(text, int32)
描述:对text 类型数据计算哈希值,并设置hashseed(即改变哈希策略)


GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
297
返回值类型:hll_hashval
示例:
gbase=# SELECT hll_hash_text('AB', 10);
hll_hash_text
---------------------
-2215507121143724132
(1 row)

hll_hash_any(anytype)
描述:对任意类型数据计算哈希值。
返回值类型:hll_hashval
示例:
gbase=# select hll_hash_any(1);
hll_hash_any
----------------------
-1316670585935156930
(1 row)
gbase=# select hll_hash_any('08:00:2b:01:02:03'::macaddr);
hll_hash_any
----------------------
-3719950434455589360
(1 row)

hll_hash_any(anytype, int32)
描述:对任意类型数据计算哈希值,并设置hashseed(即改变哈希策略)

返回值类型:hll_hashval
示例:
gbase=# select hll_hash_any(1, 10);
hll_hash_any
----------------------
7048553517657992351
(1 row)

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
298

hll_hashval_eq(hll_hashval, hll_hashval)
描述:比较两个hll_hashval 类型数据是否相等。
返回值类型:bool
示例:
gbase=# select hll_hashval_eq(hll_hash_integer(1), hll_hash_integer(1));
hll_hashval_eq
----------------
t
(1 row)

hll_hashval_ne(hll_hashval, hll_hashval)
描述:比较两个hll_hashval 类型数据是否不相等。
返回值类型:bool
示例:
gbase=# select hll_hashval_ne(hll_hash_integer(1), hll_hash_integer(1));
hll_hashval_ne
----------------
f
(1 row)

返回值

返回X 的反余弦,即返回余弦值为X 的值;

如果X 不在-1 到1 之间的范围内,返回NULL。
示例
示例1
X 为正数。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 820
gbase> SELECT ACOS(1) FROM t;
+---------+
| ACOS(1) |
+---------+
| 0 |
+---------+
1 row in set
示例2
X 为小数。
gbase> SELECT ACOS(1.0001) FROM t;
+--------------+
| ACOS(1.0001) |
+--------------+
| NULL |
+--------------+
1 row in set
示例3
X 为0。
gbase> SELECT ACOS(0) FROM t;
+-----------------+
| ACOS(0) |
+-----------------+
| 1.5707963267949 |
+-----------------+
1 row in set