Re: [GENERAL] Change location of function/type installed from C-extension
On 26.08.2017 22:05, Tom Lane wrote: > Dmitry Lazurkinwrites: >> Thanks. Can I update "pg_proc.probin" without any problems? > Should work. I'd experiment in a scratch database before doing > it in production, but I can't think of a problem offhand. > > regards, tom lane Thank you. That's working. I will try to implement in production. Update with sql is better than replace in binary file (: . -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Re: [GENERAL] Change location of function/type installed from C-extension
Dmitry Lazurkinwrites: > Thanks. Can I update "pg_proc.probin" without any problems? Should work. I'd experiment in a scratch database before doing it in production, but I can't think of a problem offhand. regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Re: [GENERAL] Change location of function/type installed from C-extension
On 26.08.2017 18:24, Tom Lane wrote: > You need to use pg_relation_filenode(): > > regression=# select relname, pg_relation_filenode(oid) from pg_class where > relname like 'pg_proc%'; > relname | pg_relation_filenode > +-- > pg_proc_oid_index |12662 > pg_proc|12657 > pg_proc_proname_args_nsp_index |12663 > (3 rows) > > regards, tom lane Thanks. Can I update "pg_proc.probin" without any problems? -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Re: [GENERAL] Change location of function/type installed from C-extension
Dmitry Lazurkinwrites: > select relname, relfilenode from pg_class where relfilenode = 11829; > relname | relfilenode > -+- > (0 rows) > Hmmm. Where is table with filenode 11829? pg_class.relfilenode doesn't contain useful data for pg_proc and some other critical system catalogs: regression=# select relname, relfilenode from pg_class where relname like 'pg_proc%'; relname | relfilenode +- pg_proc_oid_index | 0 pg_proc| 0 pg_proc_proname_args_nsp_index | 0 (3 rows) You need to use pg_relation_filenode(): regression=# select relname, pg_relation_filenode(oid) from pg_class where relname like 'pg_proc%'; relname | pg_relation_filenode +-- pg_proc_oid_index |12662 pg_proc|12657 pg_proc_proname_args_nsp_index |12663 (3 rows) regards, tom lane -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Re: [GENERAL] Change location of function/type installed from C-extension
On 26.08.2017 15:10, Dmitry Lazurkin wrote: > I try investigate where PotsgreSQL keeps path of load libraries in catalog. > > select version(); >version > -- > PostgreSQL 9.3.4 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu > 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609, 64-bit > > > select oid, datname from pg_database where datname = 'user'; > > oid | datname > ---+- > 16384 | user > > > $ grep --text --null-data '$libdir/pg_trgm' data/test/base/16384/* > > data/test/base/16384/11829:set_limit!$libdir/pg_trgm ... > > > select relname, relfilenode from pg_class where relfilenode = 11829; > relname | relfilenode > -+- > (0 rows) > > > Hmmm. Where is table with filenode 11829? > > Thanks. > This is pg_proc. inst/test/bin/oid2name -d user -f 11829 >From database "user": Filenode Table Name -- 11829 pg_proc -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Re: [GENERAL] Change location of function/type installed from C-extension
I try investigate where PotsgreSQL keeps path of load libraries in catalog. select version(); version -- PostgreSQL 9.3.4 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609, 64-bit select oid, datname from pg_database where datname = 'user'; oid | datname ---+- 16384 | user $ grep --text --null-data '$libdir/pg_trgm' data/test/base/16384/* data/test/base/16384/11829:set_limit!$libdir/pg_trgm ... select relname, relfilenode from pg_class where relfilenode = 11829; relname | relfilenode -+- (0 rows) Hmmm. Where is table with filenode 11829? Thanks. -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general