Re: [HACKERS] SELECT BUG

Поиск
Список
Период
Сортировка
От José Soares
Тема Re: [HACKERS] SELECT BUG
Дата
Msg-id 37D4EADC.C7266B13@sferacarta.com
обсуждение исходный текст
Ответ на Re: [HACKERS] SELECT BUG  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: [HACKERS] SELECT BUG  (Bruce Momjian <maillist@candle.pha.pa.us>)
Список pgsql-hackers

Tom Lane ha scritto:

> José Soares <jose@sferacarta.com> writes:
> > And now the other SELECT bug in the same data:
> > select master1.*, detail1.*
> > from master1 m, detail1 d
> > where trim(m.code)=trim(d.code);
>
> This one is definitely pilot error.  Since you've renamed master1 and
> detail1 in the FROM clause, your use of the original names in the SELECT
> list is treated as adding more FROM items.  Effectively your query is
>
> select m2.*, d2.*
> from master1 m, detail1 d, master1 m2, detail1 d2
> where trim(m.code)=trim(d.code);
>
> You're getting a four-way join with only one restriction clause...
>
> There was a thread just the other day about whether we ought to allow
> queries like this, because of someone else making exactly the same
> error.  I believe allowing tables to be referenced without FROM entries
> is a holdover from the old Postquel language that's not found in SQL92.
> Maybe we should get rid of it on the grounds that it creates confusion.
>
>                         regards, tom lane
>
>

PostgreSQL should raise a syntax error like Informix and Oracle do.

> ************
> INFORMIX:
>
> select master1.*, detail1.* from master1 m, detail1 d where mcode=dcode;
> #              ^
> #  522: Table (master1) not selected in query.
> #
> ------------------------------------------------------------------------
> ORACLE:
>
> select master1.*, detail1.* from master1 m, detail1 d where mcode=dcode
>  *
> ERROR at line1:
> ORA-00942: table or view does not exist
>
>

José



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andreas Zeugswetter
Дата:
Сообщение: Re: [HACKERS] DROP TABLE inside transaction block
Следующее
От: José Soares
Дата:
Сообщение: Re: [HACKERS] SELECT BUG