REGNAMESPACE别名类型
功能描述
PostgreSQL在内部使用对象标识符(OID)作为各种系统表的主键。OID有多个别名类型,Vastbase支持regnamespace类型,该类型是OID在命名空间下的别名类型,它引用PG_NAMESPACE表,描述了命名空间的名称。
Vastbase支持to_regnamespace函数,可以根据模式名返回对应命名空间的OID,如果找不到则返回空。
注意事项
仅Vastbase G100 V2.2 Build 10(Patch No.12)及以后补丁版本支持此功能。
示例
1、创建测试表字段类型为regnamespace。
CREATE TABLE t_regnamespace_1141420(c1 number(38) generated by default as identity (start with 1 increment by 1), c2 oid,c3 regnamespace);
2、向表中插入数据。
INSERT INTO t_regnamespace_1141420 VALUES(1,11,'pg_catalog');
INSERT INTO t_regnamespace_1141420 VALUES(2,2200,regnamespace(2200));
INSERT INTO t_regnamespace_1141420 VALUES(3,to_regnamespace('public')::oid,regnamespace('public'));
INSERT INTO t_regnamespace_1141420 (c2,c3) SELECT oid,to_regnamespace(nspname) from pg_namespace;
3、查询表数据。
select * from t_regnamespace_1141420 where regnamespace(c3)::int4<15;
返回结果如下:
c1 | c2 | c3
----+----+------------
1 | 11 | pg_catalog
22 | 11 | pg_catalog
(2 rows)