我们在使用openGauss 的过程中注意到自定义 Access Method 功能被移除了。我们有个自定义索引功能,希望能够在openGauss上实现兼容。
想请问:社区是否有计划在后续版本中重新支持自定义 Access Method?
我们在使用openGauss 的过程中注意到自定义 Access Method 功能被移除了。我们有个自定义索引功能,希望能够在openGauss上实现兼容。
想请问:社区是否有计划在后续版本中重新支持自定义 Access Method?
你使用的数据库是哪个版本的呢?
openGauss-lite 7.0.0-RC2, x86_64-pc-linux
你具体是怎么用的,sql是怎么样的,社区一般不会移除功能,可以看下这个:
创建自定义索引一般要执行如下的sql(在pgsql中能正常执行):
CREATE OR REPLACE FUNCTION my_handler(internal)
RETURNS index_am_handler
AS ‘my_so’
LANGUAGE C STRICT VOLATILE;
CREATE ACCESS METHOD my_idx TYPE INDEX HANDLER my_handler;
我在执行创建my_handler的时候报如下错误:
type “index_am_handler” does not exist
导致后续CREATE ACCESS METHOD语句无法执行
index_am_handler 类型是在 PostgreSQL 9.6 版本中才引入的,OG基于9.2.4,没有这个类型。
现在我编译完了,也通过9.2的方式注册到pg_am表了,然后创建索引的时候报错如下
ERROR: access method “my_idx” does not support row store
我去源代码搜了下相关报错信息,源代码里面有个判断,似乎默认表只允许支持btree、hash、gin、gist等这些索引。有办法绕过支持自定义索引访问方法吗?
你是修改了内核代码吗?尝试从代码里面绕过呢?