Обсуждение: AW: New warning code for missing FROM relations

Поиск
Список
Период
Сортировка

AW: New warning code for missing FROM relations

От
Zeugswetter Andreas SB
Дата:
> > >    SELECT *
> > >       INTO TABLE tmp1
> > >       FROM tmp
> > >       WHERE onek.unique1 < 2;
> > >    NOTICE:  Adding missing FROM-clause entry for table onek
> 
> > Is is worth adding yet another setting, eg. set sql92=strict, which
> > would disallow such flagrant breaches of the standard?
> 
> SQL provides for facility called the SQL Flagger, which is 
> supposed to do
> exactly that. This might sound like an interesting idea but 
> in order for
> it to be useful you'd have to maintain it across the board, 
> which sounds
> like a major head ache.
> 
> The irony in the given example is that the SELECT INTO 
> command isn't in
> the standard in the first place so you'd have to create all sorts of
> double standards. Certain things would be "extensions", certain things
> would be "misuse". And for all it's worth, we have no idea 
> which is which.
> 
> If you want to throw about warnings about "probable" coding 
> errors and the
> like one *must* be able to switch them off. Either something is right,
> then you shut up. Or it's wrong, then you throw an error. Or 
> you're not
> sure, then you better leave it up to the user.

Yes, only Bruce and I are of the opinion that it *is* an Error, and I guess 
we want some consensus.
The notice is imho of the sort: notice this syntax is going to be disallowed
soon.

Andreas


Re: AW: New warning code for missing FROM relations

От
Bruce Momjian
Дата:
> > The irony in the given example is that the SELECT INTO 
> > command isn't in
> > the standard in the first place so you'd have to create all sorts of
> > double standards. Certain things would be "extensions", certain things
> > would be "misuse". And for all it's worth, we have no idea 
> > which is which.
> > 
> > If you want to throw about warnings about "probable" coding 
> > errors and the
> > like one *must* be able to switch them off. Either something is right,
> > then you shut up. Or it's wrong, then you throw an error. Or 
> > you're not
> > sure, then you better leave it up to the user.
> 
> Yes, only Bruce and I are of the opinion that it *is* an Error, and I guess 
> we want some consensus.
> The notice is imho of the sort: notice this syntax is going to be disallowed
> soon.

I see the notice as "Hey, you probably did something you didn't want to do".

--  Bruce Momjian                        |  http://www.op.net/~candle pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: AW: New warning code for missing FROM relations

От
Philip Warner
Дата:
At 10:02 5/06/00 +0200, Zeugswetter Andreas SB wrote:
>
>> > >    SELECT *
>> > >       INTO TABLE tmp1
>> > >       FROM tmp
>> > >       WHERE onek.unique1 < 2;
>> > >    NOTICE:  Adding missing FROM-clause entry for table onek
>> 
>
>Yes, only Bruce and I are of the opinion that it *is* an Error, and I guess 
>we want some consensus.
>The notice is imho of the sort: notice this syntax is going to be disallowed
>soon.
>

FWIW, I think it's an error too. For me, this situation is *far* more
likely to result from typos than intention, and I want to be told when it
happens. I also want to be prevented from doing it.

I take it that there is no chance of a compile-time or runtime option to
disallow this kind of thing in all cases?


----------------------------------------------------------------
Philip Warner                    |     __---_____
Albatross Consulting Pty. Ltd.   |----/       -  \
(A.C.N. 008 659 498)             |          /(@)   ______---_
Tel: +61-03-5367 7422            |                 _________  \
Fax: +61-03-5367 7430            |                 ___________ |
Http://www.rhyme.com.au          |                /           \|                                |    --________--
PGP key available upon request,  |  /
and from pgp5.ai.mit.edu:11371   |/


Re: AW: New warning code for missing FROM relations

От
Tom Lane
Дата:
Philip Warner <pjw@rhyme.com.au> writes:
> I take it that there is no chance of a compile-time or runtime option to
> disallow this kind of thing in all cases?

Define "all cases" ... also, just how strict do you want to be?
Disallow use of *any* Postgres feature that is not in SQL92 (that
would include all user datatypes and functions, for example)?

Postgres was never designed as an SQL compatibility checker, and
I doubt that it'd be cost-effective to try to turn it into one.
A standalone tool might be a better approach.

Perhaps there is someone out there who wants this feature badly
enough to do the legwork, but I'm not him ;-)
        regards, tom lane


Re: AW: New warning code for missing FROM relations

От
Bruce Momjian
Дата:
> Philip Warner <pjw@rhyme.com.au> writes:
> > I take it that there is no chance of a compile-time or runtime option to
> > disallow this kind of thing in all cases?
> 
> Define "all cases" ... also, just how strict do you want to be?
> Disallow use of *any* Postgres feature that is not in SQL92 (that
> would include all user datatypes and functions, for example)?
> 
> Postgres was never designed as an SQL compatibility checker, and
> I doubt that it'd be cost-effective to try to turn it into one.
> A standalone tool might be a better approach.
> 
> Perhaps there is someone out there who wants this feature badly
> enough to do the legwork, but I'm not him ;-)

Agreed.  Seems the current warning level as configured is in the middle
of people's expections on this issue.

--  Bruce Momjian                        |  http://www.op.net/~candle pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: AW: New warning code for missing FROM relations

От
Philip Warner
Дата:
At 11:44 5/06/00 -0400, Tom Lane wrote:
>Philip Warner <pjw@rhyme.com.au> writes:
>> I take it that there is no chance of a compile-time or runtime option to
>> disallow this kind of thing in all cases?
>
>Define "all cases" ... also, just how strict do you want to be?
>Disallow use of *any* Postgres feature that is not in SQL92 (that
>would include all user datatypes and functions, for example)?

Sorry, I should have been a bit more specific! I would like some kind of
option to disable all cases of adding tables to FROM clauses by
implication. The main issue I have with this feature is it is more likely
to be used (by me) by accident (as a result of a typo), and consequently
introduce very strange results.

I am unaware (yet? ;-}) of any other non-SQL features in PostgreSQL that
are likely to cause me the same level of concern. Adding tables to a query
seems very dangerous: some people might, for example, expect an automatic
natural join on primary/foreign keys if you add a table.


----------------------------------------------------------------
Philip Warner                    |     __---_____
Albatross Consulting Pty. Ltd.   |----/       -  \
(A.C.N. 008 659 498)             |          /(@)   ______---_
Tel: +61-500 83 82 81            |                 _________  \
Fax: +61-500 83 82 82            |                 ___________ |
Http://www.rhyme.com.au          |                /           \|                                |    --________--
PGP key available upon request,  |  /
and from pgp5.ai.mit.edu:11371   |/


Re: AW: New warning code for missing FROM relations

От
Peter Eisentraut
Дата:
Bruce Momjian writes:

> I see the notice as "Hey, you probably did something you didn't want
> to do".

Again, "probably" means you're not sure, so you leave it up to the user to
turn it on or off.

-- 
Peter Eisentraut                  Sernanders väg 10:115
peter_e@gmx.net                   75262 Uppsala
http://yi.org/peter-e/            Sweden



Re: AW: New warning code for missing FROM relations

От
Peter Eisentraut
Дата:
Zeugswetter Andreas SB writes:

> Yes, only Bruce and I are of the opinion that it *is* an Error, and I
> guess we want some consensus.

I agree that it is an error.

> The notice is imho of the sort: notice this syntax is going to be
> disallowed soon.

If you can guarantee that each user will only see the notice once, then
okay. :)

-- 
Peter Eisentraut                  Sernanders väg 10:115
peter_e@gmx.net                   75262 Uppsala
http://yi.org/peter-e/            Sweden




Re: AW: New warning code for missing FROM relations

От
Bruce Momjian
Дата:
[ Charset ISO-8859-1 unsupported, converting... ]
> Zeugswetter Andreas SB writes:
> 
> > Yes, only Bruce and I are of the opinion that it *is* an Error, and I
> > guess we want some consensus.
> 
> I agree that it is an error.
> 
> > The notice is imho of the sort: notice this syntax is going to be
> > disallowed soon.
> 
> If you can guarantee that each user will only see the notice once, then
> okay. :)

There is no sense that this is a warning about the syntax changing at
some point.  It is to warn queries that are probably broken.

Seems if they already have a FROM clause, there is no purpose for some
tables being in the FROM clause, and others begin auto-created.  In
other cases, it issues no warning.

--  Bruce Momjian                        |  http://www.op.net/~candle pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026