Re: Idea: Avoid JOINs by using path expressions to follow FKs

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Julien Rouhaud <rjuju123(at)gmail(dot)com>
Cc: Joel Jacobson <joel(at)compiler(dot)org>, Vik Fearing <vik(at)postgresfriends(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Idea: Avoid JOINs by using path expressions to follow FKs
Date: 2021-03-30 07:32:14
Message-ID: CAFj8pRDS0GHckj4bFw+CX_m4dOsBuNhm0=O92JwWZ22zWBzCGw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

út 30. 3. 2021 v 9:28 odesílatel Julien Rouhaud <rjuju123(at)gmail(dot)com> napsal:

> On Tue, Mar 30, 2021 at 09:02:39AM +0200, Pavel Stehule wrote:
> > út 30. 3. 2021 v 8:52 odesílatel Julien Rouhaud <rjuju123(at)gmail(dot)com>
> napsal:
> >
> > > On Tue, Mar 30, 2021 at 08:03:09AM +0200, Pavel Stehule wrote:
> > > >
> > > > On second hand, it can be very nice to have some special strict mode
> in
> > > > Postgres - maybe slower, not compatible, that disallow some
> dangerous or
> > > > unsafe queries. But it is possible to solve in extensions, but
> nobody did
> > > > it. Something like plpgsql_check for SQL - who will write sql_check?
> > >
> > > The #1 cause of problems is probably unqualified outer references, and
> > > unfortunately I don't think it's really possible to detect that in an
> > > extension, as the required information is only available in the raw
> > > parsetree.
> > >
> >
> > the raw parsetree is available I think. I didn't check it. But it can be
> > easy to attach or attach a copy to Query structure. Maybe there is no
> > necessary hook. But it can be a good reason for implementing a post
> parsing
> > hook.
>
> It's not available in any existing hook. And even if it was you would
> have to
> import most of transformTopLevelStmt() and all underlying functions to be
> able
> to detect this case I think. This should be best done in core postgres.
>
> > It should be easy to check if all joins are related to foreign key
> > constraints.
>
> Yes, and also if the referenced columns are covered by indexes for
> instance.
> My concern is mostly that you won't be able to cover the unqualified outer
> references, which can lead to wrong query results rather than just slow
> queries.
>

it can be fixed

Pavel

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Ajin Cherian 2021-03-30 07:39:31 Re: [PATCH] add concurrent_abort callback for output plugin
Previous Message Julien Rouhaud 2021-03-30 07:28:44 Re: Idea: Avoid JOINs by using path expressions to follow FKs