Re: TODO list (was Re: Contributing with code)

From: Stephen Frost <sfrost(at)snowman(dot)net>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: TODO list (was Re: Contributing with code)
Date: 2018-01-02 19:52:33
Message-ID: 20180102195233.GJ2416@tamriel.snowman.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Robert,

* Robert Haas (robertmhaas(at)gmail(dot)com) wrote:
> On Sun, Dec 31, 2017 at 1:51 PM, Stephen Frost <sfrost(at)snowman(dot)net> wrote:
> > The todo entry even talks about why it's difficult to do and what the
> > expected way to go about doing it is (that is, connect to each database
> > that has objects in the tablespace and query it to find out what's in
> > the tablespace). Craig's suggestion is an interesting alternative way
> > though and I'm not sure that it'd be all that bad, but it would be
> > limited to catalog tables.
>
> I think it'd be pretty bad. There's nothing in the system that
> actually guarantees that the system catalog structure matches across
> every database. Of course, if you change structural properties, then
> the system will probably crash, but attstorage and attacl values could
> be different, as could relfilenode, relpages, reltuples,
> relallvisible, relfroxenxid, relminmxid, and relacl. I don't think
> it's wise to let this work on the theory that none of that stuff
> matters. Even if that's true, or can be made true with a crowbar,
> it's a fragile assumption that might turn false in the future.

I'm surprised to hear it described as fragile when I would certainly
expect a huge amount of push-back from the developer community if
someone suggested making template1 have a different catalog structure
from the other databases for some reason. This seems more like an
unwritten rule to me than a 'it happens to work that way' kind of thing.

> > If we'd extend the system to allow transparent usage of postgres_fdw to
> > access other databases which are part of the same cluster, then this
> > could end up being much simpler (eg: select * from
> > otherdatabase.pg_catalog.pg_class ...).
>
> It would probably be better to use background workers for this than
> postgres_fdw to avoid for example making sure you can authenticate,
> but even then this is a pretty significant body of work for what I'd
> consider a fairly marginal benefit.

We could address the authentication issue, I believe, internally such
that users wouldn't have to actually worry about it (perhaps a special
entry in pg_hba.conf and something done through shared memory), which
would definitely be part of the point- what I was trying to get at above
is that we could possibly solve this in a much more general way by
supporting, more-or-less transparently, cross-database queries, which
would be a terribly useful feature, imv.

I agree that it'd be a significant body of work, but we would gain a
great deal more than just the ability to query the catalog of other
databases and that seems quite worthwhile to me.

Thanks!

Stephen

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas Munro 2018-01-02 19:56:12 Re: [HACKERS] LDAPS
Previous Message Tom Lane 2018-01-02 19:52:16 Re: [HACKERS] eval_const_expresisions and ScalarArrayOpExpr