数据库 – PostgreSQL的可扩展性

我创建了自己的R树:“rtree.h”

我想用postgres创建一个带有我自己的数据结构的扩展(使用PostGis),我已经阅读了Interfacing Extensions To Indexes,现在我正在阅读一些例子here,但说实话,我根本不知道如何使用它我自己的R-Tree创建了可扩展性,我理解有关运算符,索引等的概念,但我不知道该怎么做.

So, How can I connect my file to PostGis and then create an extensibility on PostgreSQL?

由于可扩展性是函数,所以请说PostgreSQL网站中的一个例子:

CREATE OR REPLACE FUNCTION my_consistent(internal, data_type, smallint, oid, internal)
RETURNS bool
AS 'MODULE_PATHNAME'
LANGUAGE C STRICT;

How exactly it works? MODULE_PATHNAME is equal to /path/rtree.h?

最佳答案 关于如何在postgres中定义用C编写的函数,你必须首先编译对象,因此’MODULE PATHNAME’在Linux系统上是rtree.so,在Windows上可能是dll.函数目录
here中的代码提供了C中函数定义的概述,以及用于在Postgres中声明函数的SQL函数.

关于如何实现R-Tree,我将使用您已经找到的GIST资源.我认为你不能只编译你的R-Tree.c程序而且只是工作,你必须使用GIST结构.看起来你可以在Postgres主干中找到was once r-tree实现,或者你可以查看当前主干中的这个B-tree gist扩展:https://github.com/postgres/postgres/tree/master/contrib/btree_gist.

点赞