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
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 |