【发布时间】:2016-01-04 07:09:51
【问题描述】:
我想在 postgres 中创建一个扩展测试(使用 PostGis),所以我想做以下步骤:
1.- 以这种方式从btree_gist 编辑文件btree_interval.c:
gbt_intvkey_cmp(const void *a, const void *b)
{
intvKEY *ia = (intvKEY *) (((const Nsrt *) a)->t);
intvKEY *ib = (intvKEY *) (((const Nsrt *) b)->t);
int res;
......
......
printf("Test for PostGis\n");
return res;
}
只加一个printf,因为我只是想做个小测试
2.- 运行以下命令:
gcc -shared -o btree_gist_test.so -fPIC btree_gist.c
我的疑问是:
1.- 一旦安装了 postgresql 然后运行上面的命令,我不知道在哪里可以找到文件
btree_gist.c。
如果您问我:“为什么不直接下载源代码?” 好吧,因为当我这样做时,我收到了以下错误消息:
#include "postgres.h"
^
compilation terminated
所以,我认为最好在已经安装了 postgresql 的同一文件夹中进行。
2.- 一旦我得到 btree_gist_test.so 我知道我必须复制到路径
/usr/lib/postgresql/lib/,但我不确定我是否必须为此文件创建指向其他地方的符号链接。
【问题讨论】:
-
我在这方面有一些经验,但我不明白问题是什么。请告诉我这是哪个 linux 发行版。
-
@iharob 我最初的问题是:stackoverflow.com/questions/32975888/… 所以,首先我决定创建一个小测试,顺便说一句:Linux 3.13.0-44-generic #73-Ubuntu
-
@iharob 我第一次会这样做,所以如果你能帮我创建一个小扩展测试,我将不胜感激。
-
好吧,我不是每天都这样做,但我在去年做的一个大项目中有一个扩展。让我检查一下,我会回来找你的。顺便说一句,这方面的 Postgres 文档真的很糟糕。
-
@iharob 我知道,我理解这些概念,但是按照您在我的拙见中所说的获得成功的步骤并没有很好的记录。谢谢!
标签: c database postgresql postgis