Обсуждение: BUG #3277: error occurs between different versions

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

BUG #3277: error occurs between different versions

От
"Nilay Ceter"
Дата:
The following bug has been logged online:

Bug reference:      3277
Logged by:          Nilay Ceter
Email address:      nilayceter@gmail.com
PostgreSQL version: 8.2.3
Operating system:   windows
Description:        error occurs between different versions
Details:

We are developing a network based application, using postgre sql.

Earlier version has been developed using Postgre SQL 8.0 and there was no
problem.

But we use Postgre SQL 8.2 in new version and we are experiencing some
problems about our sql commands.

The command line:

select seri_no, ad as baslik, kull_ref as Kullanıcı_Referansi, sorumlu
from onay,dokuman where p_id='yonetici' and onay.dokuman_id=dokuman.seri_no
and onay_durum.seri_no=seri_no and onay_durum.p_id='yonetici' and
(dokuman.durum=1 or dokuman.durum=2 or dokuman.durum=6 or dokuman.durum=7)
and onay_durum.durum=0 and seri_no>0


was working properly in Postgre SQL 8.0 but in version Postgre SQL 8.2 the
second "and" gives an error.
And it is :

" Project dym.exe raised exception class EPSQLDatabaseError with message
'PostgreSQL Error Code : (1)
ERROR: missing FROM-clause entry for table "onay_durum" at character 152'
.Process stopped.Use Step or Run to continue. "

would you please help us?

Best Regards

Re: BUG #3277: error occurs between different versions

От
Heikki Linnakangas
Дата:
Nilay Ceter wrote:
> The command line:
>
> select seri_no, ad as baslik, kull_ref as Kullanıcı_Referansi, sorumlu
> from onay,dokuman where p_id='yonetici' and onay.dokuman_id=dokuman.seri_no
> and onay_durum.seri_no=seri_no and onay_durum.p_id='yonetici' and
> (dokuman.durum=1 or dokuman.durum=2 or dokuman.durum=6 or dokuman.durum=7)
> and onay_durum.durum=0 and seri_no>0
>
>
> was working properly in Postgre SQL 8.0 but in version Postgre SQL 8.2 the
> second "and" gives an error.
> And it is :
>
> " Project dym.exe raised exception class EPSQLDatabaseError with message
> 'PostgreSQL Error Code : (1)
> ERROR: missing FROM-clause entry for table "onay_durum" at character 152'
> .Process stopped.Use Step or Run to continue. "

I don't understand how that query could have worked on PostgreSQL 8.0
either. There's no table or alias with name "onay_durum" in the FROM clause.

Are you sure this is the exactly same query you tried on PostgreSQL 8.0?

--
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com

Re: BUG #3277: error occurs between different versions

От
Magnus Hagander
Дата:
On Mon, May 14, 2007 at 09:44:05AM +0100, Heikki Linnakangas wrote:
> Nilay Ceter wrote:
> >The command line:
> >
> >select seri_no, ad as baslik, kull_ref as Kullanıcı_Referansi,
> >sorumlu
> >from onay,dokuman where p_id='yonetici' and onay.dokuman_id=dokuman.seri_no
> >and onay_durum.seri_no=seri_no and onay_durum.p_id='yonetici' and
> >(dokuman.durum=1 or dokuman.durum=2 or dokuman.durum=6 or dokuman.durum=7)
> >and onay_durum.durum=0 and seri_no>0
> >
> >
> >was working properly in Postgre SQL 8.0 but in version Postgre SQL 8.2 the
> >second "and" gives an error.
> >And it is :
> >
> >" Project dym.exe raised exception class EPSQLDatabaseError with message
> >'PostgreSQL Error Code : (1)
> >ERROR: missing FROM-clause entry for table "onay_durum" at character 152'
> >.Process stopped.Use Step or Run to continue. "
>
> I don't understand how that query could have worked on PostgreSQL 8.0
> either. There's no table or alias with name "onay_durum" in the FROM clause.
>
> Are you sure this is the exactly same query you tried on PostgreSQL 8.0?

Seems to be dependant on the config parameter add_missing_from. The default
changed between 8.0 and 8.1 from on to off.

Nilay, you can try setting add_missing_from=on in postgresql.conf and
reload the service to fix this. Or better yet, fix your query to reference
all tables in the from clause.

//Magnus

Re: BUG #3277: error occurs between different versions

От
Klint Gore
Дата:
On Mon, 14 May 2007 09:44:05 +0100, Heikki Linnakangas <heikki@enterprisedb=
.com> wrote:
> Nilay Ceter wrote:
> > The command line:
> >
> > select seri_no, ad as baslik, kull_ref as Kullan=C4=B1c=C4=B1_Referansi=
, sorumlu
> > from onay,dokuman where p_id=3D'yonetici' and onay.dokuman_id=3Ddokuman=
.seri_no
> > and onay_durum.seri_no=3Dseri_no and onay_durum.p_id=3D'yonetici' and
> > (dokuman.durum=3D1 or dokuman.durum=3D2 or dokuman.durum=3D6 or dokuman=
.durum=3D7)
> > and onay_durum.durum=3D0 and seri_no>0
> >
> >
> > was working properly in Postgre SQL 8.0 but in version Postgre SQL 8.2 =
the
> > second "and" gives an error.
> > And it is :
> >
> > " Project dym.exe raised exception class EPSQLDatabaseError with message
> > 'PostgreSQL Error Code : (1)
> > ERROR: missing FROM-clause entry for table "onay_durum" at character 15=
2'
> > .Process stopped.Use Step or Run to continue. "
>
> I don't understand how that query could have worked on PostgreSQL 8.0
> either. There's no table or alias with name "onay_durum" in the FROM clau=
se.
>
> Are you sure this is the exactly same query you tried on PostgreSQL 8.0?

Didn't the default in postgresql.conf for add_missing_from change in 8.1?

klint.

+---------------------------------------+-----------------+
: Klint Gore                            : "Non rhyming    :
: EMail   : kg@kgb.une.edu.au           :  slang - the    :
: Snail   : A.B.R.I.                    :  possibilities  :
: Mail      University of New England   :  are useless"   :
:           Armidale NSW 2351 Australia :     L.J.J.      :
: Fax     : +61 2 6772 5376             :                 :
+---------------------------------------+-----------------+

Re: BUG #3277: error occurs between different versions

От
Heikki Linnakangas
Дата:
nilay çeter wrote:
> Yes,it is the same query, and had worked on PostgreSQL8.0 ,but although I
> had already added "onay_durum"  to from clause and it did not work on 8.2,I
> have changed the 'add_missing_from = off ' and made it on in conf. file but
> it didn't work too.
> I have no idea about what to do:(

Please keep the list CC'd so others can help.

There must be something wrong with the way you added onay_durum to the
FROM-clause, but it's impossible to say what without seeing the modified
query and error message. Just check the query again carefully.

I presume you meant that you changed 'add_missing_from = on', not off,
in the config file.

--
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com

Re: BUG #3277: error occurs between different versions

От
Klint Gore
Дата:
I'm suprised it worked in 8.0.  You should have got column reference is
ambiguous errors on seri_no since it appears in both dokuman and
onay_durum and there are 3 places where you don't specify which one you
want.  (Someone who knows more than I do might comment on what happens
to unqualfied field names when the add missing from brings in another
field with the same name?)

try fully qualifying where everything comes from.

select
    ??.seri_no,
    ???.ad as baslik,
    ????.kull_ref as Kullan=FDc=FD_Referansi,
    ?????.sorumlu

>from onay,
     dokuman,
     onay_durum
where onay_durum.p_id=3D'yonetici'
and onay.dokuman_id=3Ddokuman.seri_no
and onay_durum.seri_no=3D??????.seri_no
and onay_durum.p_id=3D'yonetici'
and (
   dokuman.durum=3D1
   or dokuman.durum=3D2
   or dokuman.durum=3D6
   or dokuman.durum=3D7)
and onay_durum.durum=3D0
and ???????.seri_no>0

klint.

On Mon, 21 May 2007 13:15:01 +0300, "nilay =E7eter" <nilayceter@gmail.com>
wrote:
> Yes,it is the same query, and had worked on PostgreSQL8.0 ,but although I
>  had already added "onay_durum"  to from clause and it did not work on 8.=
2,I
> have changed the 'add_missing_from =3D off '  to on in conf. file but
> it didn't work too.
> I have no idea about what to do:(
>
> 2007/5/14, Klint Gore <kg@kgb.une.edu.au>:
> >
> > On Mon, 14 May 2007 09:44:05 +0100, Heikki Linnakangas <
> > heikki@enterprisedb.com> wrote:
> > > Nilay Ceter wrote:
> > > > The command line:
> > > >
> > > > select seri_no, ad as baslik, kull_ref as Kullan=FDc=FD_Referansi, =
sorumlu
> > > > from onay,dokuman where p_id=3D'yonetici' and
> > onay.dokuman_id=3Ddokuman.seri_no
> > > > and onay_durum.seri_no=3Dseri_no and onay_durum.p_id=3D'yonetici' a=
nd
> > > > (dokuman.durum=3D1 or dokuman.durum=3D2 or dokuman.durum=3D6 or
> > dokuman.durum=3D7)
> > > > and onay_durum.durum=3D0 and seri_no>0
> > > >
> > > >
> > > > was working properly in Postgre SQL 8.0 but in version Postgre SQL =
8.2the
> > > > second "and" gives an error.
> > > > And it is :
> > > >
> > > > " Project dym.exe raised exception class EPSQLDatabaseError with
> > message
> > > > 'PostgreSQL Error Code : (1)
> > > > ERROR: missing FROM-clause entry for table "onay_durum" at character
> > 152'
> > > > .Process stopped.Use Step or Run to continue. "
> > >
> > > I don't understand how that query could have worked on PostgreSQL 8.0
> > > either. There's no table or alias with name "onay_durum" in the FROM
> > clause.
> > >
> > > Are you sure this is the exactly same query you tried on PostgreSQL 8=
.0?
> >
> > Didn't the default in postgresql.conf for add_missing_from change in 8.=
1?
> >
> > klint.

+---------------------------------------+-----------------+
: Klint Gore                            : "Non rhyming    :
: EMail   : kg@kgb.une.edu.au           :  slang - the    :
: Snail   : A.B.R.I.                    :  possibilities  :
: Mail      University of New England   :  are useless"   :
:           Armidale NSW 2351 Australia :     L.J.J.      :
: Fax     : +61 2 6772 5376             :                 :
+---------------------------------------+-----------------+

Re: BUG #3277: error occurs between different versions

От
Tom Lane
Дата:
Klint Gore <kg@kgb.une.edu.au> writes:
> (Someone who knows more than I do might comment on what happens
> to unqualfied field names when the add missing from brings in another
> field with the same name?)

Nothing --- it's always been the case that unqualified field names have
to reference one of the explicitly-listed FROM tables.

            regards, tom lane