安装外部表协议

    cc -fpic -c gpextprotocal.c cc -shared -o gpextprotocal.so gpextprotocal.o

    选项-fpic指定创建位置无关代码(PIC),-c选项只编译而不链接源代码并且创建一个对象文件。该对象文件需要被创建为位置无关代码(PIC),这样Greenplum数据库才能把它载入到内存中的任意位置。

    gpextprotocal.c中声明为包括文件的头文件位于$GPHOME/include/postgresql/的子目录中。

    更多有关编译及链接动态载入函数的例子和在其他操作系统上编译C源代码创建共享库的例子,请见 https://www.postgresql.org/docs/8.4/xfunc-c.html#DFUNC 上的Postgres文档。

    自定义协议的已编译代码(共享对象文件)在用户的Greenplum数据库阵列中每一个主机(Master和所有的Segment)上必须被放置在相同的位置。这个位置还必须在LD_LIBRARY_PATH中,这样服务器才能定位该文件。推荐在Greenplum数据库阵列的所有Master和Segment实例上都将共享文件放置在相对于$libdir(位于$GPHOME/lib)的位置或者动态库路径(由dynamic_library_path服务器配置参数设置)中的位置。用户可以使用Greenplum数据库工具gpssh和gpscp来更新Segment。

    Parent topic: 自定义数据访问协议实例