I’m working with postgres 13 (REL_13_STABLE branch) from source code, and I’m using Apache AGE version 1.3.0 for that from (release/PG13/1.3.0 branch) from apachea/age source code which should be compatible with the version of postgres I’m using, but when I try to CREATE EXTENSION age;
I get the following error:
postgres=# CREATE EXTENSION age;
ERROR: could not load library "/usr/local/pgsql-13/lib/age.so": /usr/local/pgsql-13/lib/age.so: undefined symbol: hash_any_extended
though I checked /usr/local/pgsql-13/lib/
and age.so
turned to be stored there, therefore the error mostly for stating that I’m using incompatible versions of Postgresql and Apache AGE, even though I’m using branches supporting PG13 which should be compatible. So if this is the case what is the cause for the problem and how to solve?.
2
Answers
It is possible that some other version of Apache AGE or Postgres still has files in your system. To ensure that Postgres 13 is being used, you can run the command
psql -c "SELECT version();"
in your terminal.To address this issue, try running the following commands from your Apache AGE source code folder:
If the error persists after running the commands to clean and rebuild Apache AGE, you could consider uninstalling both PostgreSQL and Apache AGE and then reinstalling them with other compatible versions.
Note: you can use the branch
PG13
instead ofrelease/PG13/1.3.0
branch.The safest way to fix it is to unistall postgres using
make uninstall
andmake clean
and also deleting the files in the pathusr/local/pgsql-13
, then proceed to install postgres and the extension again and make sure the branches are the correct/compatible versions