PostgreSQL PG_PATHMAN 插件安装
[root@localhost src]# tar -zxvf pg_pathman-1.5.12.tar.gz
[root@localhost src]# cd pg_pathman-1.5.12
[root@localhost pg_pathman-1.5.12]# make USE_PGXS=1
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/init.o src/init.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/relation_info.o src/relation_info.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/utils.o src/utils.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/partition_filter.o src/partition_filter.c
src/partition_filter.c: In function ‘select_partition_for_insert’:
src/partition_filter.c:552:9: warning: ‘value’ may be used uninitialized in this function [-Wmaybe-uninitialized]
parts = find_partitions_for_value(value, prel->ev_type, prel, &nparts);
^
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/runtime_append.o src/runtime_append.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/runtime_merge_append.o src/runtime_merge_append.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/pg_pathman.o src/pg_pathman.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/rangeset.o src/rangeset.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/pl_funcs.o src/pl_funcs.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/pl_range_funcs.o src/pl_range_funcs.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/pl_hash_funcs.o src/pl_hash_funcs.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/pathman_workers.o src/pathman_workers.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/hooks.o src/hooks.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/nodes_common.o src/nodes_common.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/xact_handling.o src/xact_handling.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/utility_stmt_hooking.o src/utility_stmt_hooking.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/planner_tree_modification.o src/planner_tree_modification.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/debug_print.o src/debug_print.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/partition_creation.o src/partition_creation.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/compat/pg_compat.o src/compat/pg_compat.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/compat/rowmarks_fix.o src/compat/rowmarks_fix.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/partition_router.o src/partition_router.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -I/usr/local/src/pg_pathman-1.5.12/src/include -I. -I./ -I/usr/local/pgsql-12.8/include/server -I/usr/local/pgsql-12.8/include/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o src/partition_overseer.o src/partition_overseer.c
gcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -fPIC -shared -o pg_pathman.so src/init.o src/relation_info.o src/utils.o src/partition_filter.o src/runtime_append.o src/runtime_merge_append.o src/pg_pathman.o src/rangeset.o src/pl_funcs.o src/pl_range_funcs.o src/pl_hash_funcs.o src/pathman_workers.o src/hooks.o src/nodes_common.o src/xact_handling.o src/utility_stmt_hooking.o src/planner_tree_modification.o src/debug_print.o src/partition_creation.o src/compat/pg_compat.o src/compat/rowmarks_fix.o src/partition_router.o src/partition_overseer.o -L/usr/local/pgsql-12.8/lib -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql-12.8/lib',--enable-new-dtags
cat init.sql hash.sql range.sql > pg_pathman--1.5.sql
设置环境变量USE_PGXS为1后执行安装操作。
创建父级目录结构/usr/local/pgsql-12.8/lib。
创建父级目录结构/usr/local/postgres-12.8/share/extension。
创建父级目录结构/usr/local/postgres-12.8/share/extension。
以适当权限安装pg_pathman.so至目标位置。
安装pg_pathman.control到指定目录。
安装pg_pathman--1.0--1.5.sql系列文件到目标位置。
切换到/usr/local目录下的postgres 12.8库文件夹。
赋予postgres用户对./pg_pathman.so执行权限。
切换到/usr/local目录下的postgres 12.8共享目录中的扩展文件夹。
切换到/usr/local目录下的postgres 12.8共享目录中的扩展文件夹。
赋予postgres用户对./pg_pathman*执行权限。
[root@localhost extension]# su - postgres
Last login: Wed Aug 2 10:00:40 CST 2023 on pts/1
[postgres@localhost ~] cd into the /usr/local/postgres-12.8/data directory
[postgres@localhost data] open and edit the PostgreSQL configuration file using vi
shared_preload_libraries='pg_pathman'
[postgres@localhost data]$ use pg_ctl to restart the PostgreSQL database instance, specifying the full path to your data directory as /usr/local/postgres-12.8/data
[postgres@localhost data]$ psql
psql (12.8)
Type "help" for help.
PostgreSQL connects to the 'cloud_test' database using the \c command. Upon connecting, you are now authenticated as Postgres in the 'cloud_test' database. Then, the system creates the pg_pathman extension for the cloud_test database.
