Re: SQL92 compliance

Lists: pgsql-sql
From: Daniel CAUNE <d(dot)caune(at)free(dot)fr>
To: pgsql-sql(at)postgresql(dot)org
Subject: SQL92 compliance
Date: 2006-08-23 01:40:03
Message-ID: 000301c6c655$0e3a0100$0b00a8c0@tedy
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

Hi,

Is AS in "SELECT my_column AS my_name FROM my_table" mandatory to be SQL92
compliant?

PostgreSQL requires this keyword by default when defining alias, which might
be good thing. I mean, I would prefer being notified from a syntax error
than spending a couple of hours wondering why a client application, at the
end of a several data marshalling processes, doesn't get the right data...
For instance MySQL doesn't require it and sometimes that sucks:

SELECT my_column1
my_column2,
my_column3
FROM my_table

Regards,

--
Daniel


From: Michael Glaesemann <grzm(at)seespotcode(dot)net>
To: Daniel CAUNE <d(dot)caune(at)free(dot)fr>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: SQL92 compliance
Date: 2006-08-23 01:54:38
Message-ID: A7421249-2D3B-4AE2-AB53-A23C6C678026@seespotcode.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql


On Aug 23, 2006, at 10:40 , Daniel CAUNE wrote:

> Hi,
>
> Is AS in "SELECT my_column AS my_name FROM my_table" mandatory to
> be SQL92
> compliant?

You can find this in the documentation:
http://www.postgresql.org/docs/8.1/interactive/sql-select.html#AEN48391

> The AS Key Word
>
> In the SQL standard, the optional key word AS is just noise and can
> be omitted without affecting the meaning. The PostgreSQL parser
> requires this key word when renaming output columns because the
> type extensibility features lead to parsing ambiguities without it.
> AS is optional in FROM items, however.

Hope this helps.

Michael Glaesemann
grzm seespotcode net


From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: pgsql-sql(at)postgresql(dot)org
Cc: Daniel CAUNE <d(dot)caune(at)free(dot)fr>
Subject: Re: SQL92 compliance
Date: 2006-08-23 16:11:47
Message-ID: 200608231811.48538.peter_e@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

Am Mittwoch, 23. August 2006 03:40 schrieb Daniel CAUNE:
> Is AS in "SELECT my_column AS my_name FROM my_table" mandatory to be SQL92
> compliant?

No. I have a patch at
<http://developer.postgresql.org/~petere/select-without-as/select-without-as.patch>
that fixes this at least for 7.4. I don't think it works for newer versions,
but it should give you an idea what is required to get it working.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: pgsql-sql(at)postgresql(dot)org, Daniel CAUNE <d(dot)caune(at)free(dot)fr>
Subject: Re: SQL92 compliance
Date: 2006-08-23 17:40:16
Message-ID: 22448.1156354816@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

Peter Eisentraut <peter_e(at)gmx(dot)net> writes:
> Am Mittwoch, 23. August 2006 03:40 schrieb Daniel CAUNE:
>> Is AS in "SELECT my_column AS my_name FROM my_table" mandatory to be SQL92
>> compliant?

> No. I have a patch at
> <http://developer.postgresql.org/~petere/select-without-as/select-without-as.patch>
> that fixes this at least for 7.4.

I think it's a big stretch to say that that patch fixes it, since it
only allows an AS-less target expression to be c_expr rather than
a_expr as it ought to.

The problem is really insoluble given that we allow user-defined
postfix operators: is "SELECT x ~~ y" meant to be an infix operator
with arguments x and y, or a postfix operator with argument x and
a column label y?

When this has come up in the past, we've always concluded that
compliance with this not-very-well-thought-out detail of the spec
is not worth the price of giving up postfix operators.

Even if we were willing to do that, I think we'd also have to give
up using bison to generate the parser :-( because some constructs
would require more than one-token lookahead.

regards, tom lane


From: Scott Marlowe <smarlowe(at)g2switchworks(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Peter Eisentraut <peter_e(at)gmx(dot)net>, pgsql-sql(at)postgresql(dot)org, Daniel CAUNE <d(dot)caune(at)free(dot)fr>
Subject: Re: SQL92 compliance
Date: 2006-08-23 18:28:36
Message-ID: 1156357716.7223.23.camel@state.g2switchworks.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

On Wed, 2006-08-23 at 12:40, Tom Lane wrote:
> Peter Eisentraut <peter_e(at)gmx(dot)net> writes:
> > Am Mittwoch, 23. August 2006 03:40 schrieb Daniel CAUNE:
> >> Is AS in "SELECT my_column AS my_name FROM my_table" mandatory to be SQL92
> >> compliant?
>
> > No. I have a patch at
> > <http://developer.postgresql.org/~petere/select-without-as/select-without-as.patch>
> > that fixes this at least for 7.4.
>
> I think it's a big stretch to say that that patch fixes it, since it
> only allows an AS-less target expression to be c_expr rather than
> a_expr as it ought to.
>
> The problem is really insoluble given that we allow user-defined
> postfix operators: is "SELECT x ~~ y" meant to be an infix operator
> with arguments x and y, or a postfix operator with argument x and
> a column label y?
>
> When this has come up in the past, we've always concluded that
> compliance with this not-very-well-thought-out detail of the spec
> is not worth the price of giving up postfix operators.
>
> Even if we were willing to do that, I think we'd also have to give
> up using bison to generate the parser :-( because some constructs
> would require more than one-token lookahead.

Would it be possible if we required postfix operators and related to be
inside parens?

select x ~~ y as yabba
OR
select (x ~~ y) yabba

Not that I'd want that. I prefer it the way it is too. Just more of an
intellectual exercise.


From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-sql(at)postgresql(dot)org, Daniel CAUNE <d(dot)caune(at)free(dot)fr>
Subject: Re: SQL92 compliance
Date: 2006-08-24 06:42:49
Message-ID: 200608240842.50604.peter_e@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

Tom Lane wrote:
> I think it's a big stretch to say that that patch fixes it, since it
> only allows an AS-less target expression to be c_expr rather than
> a_expr as it ought to.

Well, it works for a useful subset. I remember that some other database
did not *allow* the AS, so there were porting troubles, but I don't
remember the details. I'm just saying that it's doable if it's a
necessity for someone.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/


From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Scott Marlowe <smarlowe(at)g2switchworks(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-sql(at)postgresql(dot)org, Daniel CAUNE <d(dot)caune(at)free(dot)fr>
Subject: Re: SQL92 compliance
Date: 2006-08-24 06:43:54
Message-ID: 200608240843.55450.peter_e@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-sql

Scott Marlowe wrote:
> Would it be possible if we required postfix operators and related to
> be inside parens?
>
> select x ~~ y as yabba
> OR
> select (x ~~ y) yabba

That's pretty much what you get if you restrict the expression to
c_expr.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/