Dear pgsql:
When we adding a custom system table and defining an index for it at the same time, the code compilation is possible, but the following errors may occur when starting the database:
----------------------------------------------------------------------------------------------------------
fixing permissions on existing directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Shanghai
creating configuration files ... ok
running bootstrap script ... 2023-07-19 09:40:47.083 CST [2808392]
FATAL: operator class "key_ops" does not exist for access method "btree" 2023-07-19 09:40:47.083 CST [2808392] PANIC: cannot abort transaction 1, it was already committed
Aborted (core dumped)
child process exited with exit code 134
initdb: removing contents of data directory "/usr/local/pgsql/data"
---------------------------------------------------------------------------------------------------------------
There are my steps as follows:
- add a new header file (pg_bm_client_global_keys_args.h) for the custom system table, the file path is : src/include/catalog/pg_bm_client_global_keys_args.h;
- the modified Makefile is: src/backend/catalog/Makefile, add the new header file at the label CATALOG_HEADERS of the file;
- make; make install
- when run the cmd : /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data, the error will occur.
This problem has been bothering me for a long time. Can you help me solve it?
Best Wishes.