Hackers, I wanted to try to customize the subdirectory for an extension. The docs[1] say:
> directory (string) > > The directory containing the extension's SQL script file(s). Unless an > absolute path is given, the name is relative to the installation's SHAREDIR > directory. The default behavior is equivalent to specifying directory = > 'extension'. [1]: https://www.postgresql.org/docs/16/extend-extensions.html But it doesn’t seem to work. I tried this experiment: ❯ pg_config --version PostgreSQL 16.1 ❯ git clone g...@github.com:theory/kv-pair.git ❯ cd kv-pair ❯ echo directory = 'blah' >> pair.control ❯ cat pair.control # pair extension comment = 'A key/value pair data type' default_version = '0.1.2' module_pathname = '$libdir/pair' relocatable = true directory = blah ❯ make install cp sql/pair.sql sql/pair--0.1.2.sql /opt/homebrew/bin/gmkdir -p '/Users/david/.pgenv/pgsql-16.1/share/extension' /opt/homebrew/bin/gmkdir -p '/Users/david/.pgenv/pgsql-16.1/share/extension' /opt/homebrew/bin/gmkdir -p '/Users/david/.pgenv/pgsql-16.1/share/doc/extension' /opt/homebrew/bin/ginstall -c -m 644 .//pair.control '/Users/david/.pgenv/pgsql-16.1/share/extension/' /opt/homebrew/bin/ginstall -c -m 644 .//sql/pair--unpackaged--0.1.2.sql '/Users/david/.pgenv/pgsql-16.1/share/extension/' /opt/homebrew/bin/ginstall -c -m 644 .//doc/pair.md '/Users/david/.pgenv/pgsql-16.1/share/doc/extension/‘ ❯ find ~/.pgenv/pgsql-16.1/ -name '*pair*.*' /Users/david/.pgenv/pgsql-16.1//include/server/lib/pairingheap.h /Users/david/.pgenv/pgsql-16.1//share/extension/pair--unpackaged--0.1.2.sql /Users/david/.pgenv/pgsql-16.1//share/extension/pair.control /Users/david/.pgenv/pgsql-16.1//share/doc/extension/pair.md I see two problems: 1. pair--0.1.2.sql is not installed. It does install without `directory` set. 2. pair--unpackaged--0.1.2.sql is installed, but not in a `blah` directory. Shouldn’t it be? Am I missing something? Best, David