insert statements

Started by Vince Vielhaberalmost 24 years ago24 messages
#1Vince Vielhaber
vev@michvhf.com

I'm trying to use latest version of PostNuke which uses adodb for the
database layer. The problem is in the insert and update statements.
For example:

insert into foo(foo.a) values(1);

fails because the table name is used. Update statements also include the
table name. Both fail. Does anyone know of a workaround?

Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com http://www.pop4.net
56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================

#2Peter Eisentraut
peter_e@gmx.net
In reply to: Vince Vielhaber (#1)
Re: insert statements

Vince Vielhaber writes:

For example:

insert into foo(foo.a) values(1);

fails because the table name is used. Update statements also include the
table name. Both fail. Does anyone know of a workaround?

Completely loudly to whomever wrote that SQL. It's completely
non-standard.

(The implication I'm trying to make is that there's no way to make
PostgreSQL accept that statement. Adding this as an extension has been
rejected in the past.)

--
Peter Eisentraut peter_e@gmx.net

#3Vince Vielhaber
vev@michvhf.com
In reply to: Peter Eisentraut (#2)
Re: insert statements

On Wed, 13 Mar 2002, Peter Eisentraut wrote:

Vince Vielhaber writes:

For example:

insert into foo(foo.a) values(1);

fails because the table name is used. Update statements also include the
table name. Both fail. Does anyone know of a workaround?

Completely loudly to whomever wrote that SQL. It's completely
non-standard.

(The implication I'm trying to make is that there's no way to make
PostgreSQL accept that statement. Adding this as an extension has been
rejected in the past.)

Yeah, that's kinda what I expected. There's just under 1700 insert and
update statements but only 1200 selects. Neither option sounds good at
this point.

Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com http://www.pop4.net
56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================

#4Vince Vielhaber
vev@michvhf.com
In reply to: Peter Eisentraut (#2)
Re: insert statements

On Wed, 13 Mar 2002, Peter Eisentraut wrote:

Vince Vielhaber writes:

For example:

insert into foo(foo.a) values(1);

fails because the table name is used. Update statements also include the
table name. Both fail. Does anyone know of a workaround?

Completely loudly to whomever wrote that SQL. It's completely
non-standard.

(The implication I'm trying to make is that there's no way to make
PostgreSQL accept that statement. Adding this as an extension has been
rejected in the past.)

I'm now wondering why it was rejected. I couldn't try this last nite
so I just tried it now. Here's with Sybase 11.0.3.3 :

1> create table foo(a int)
2> go
1> insert into foo(a) values(1)
2> go
(1 row affected)
1> insert into foo(foo.a) values(2)
2> go
(1 row affected)
1>

And I suspect more than just mysql and sybase accept either syntax.
Right now I'm modifying postnuke but that's only a short term solution,
and I wouldn't want to add it to PostgreSQL either 'cuze if it remains
rejected that would hamper upgrades. ROCK --> ME <-- HARD PLACE :)
There are really no other decent CMSs available that support PostgreSQL.

Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com http://www.pop4.net
56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================

#5Rod Taylor
rbt@zort.ca
In reply to: Vince Vielhaber (#4)
Re: insert statements

Why not send in your changes to PostNuke along with the appropriate
section from the SQL specs?

Surely they'll apply a reasoned patch which improves conformance to
the SQL standard and doesn't break anything in the process. I'd
suspect both SyBase, and MySQL can also take insert into foo (a) as
well.
--
Rod Taylor

This message represents the official view of the voices in my head

----- Original Message -----
From: "Vince Vielhaber" <vev@michvhf.com>
To: "Peter Eisentraut" <peter_e@gmx.net>
Cc: <pgsql-hackers@postgreSQL.org>
Sent: Thursday, March 14, 2002 8:29 AM
Subject: Re: [HACKERS] insert statements

On Wed, 13 Mar 2002, Peter Eisentraut wrote:

Vince Vielhaber writes:

For example:

insert into foo(foo.a) values(1);

fails because the table name is used. Update statements also

include the

table name. Both fail. Does anyone know of a workaround?

Completely loudly to whomever wrote that SQL. It's completely
non-standard.

(The implication I'm trying to make is that there's no way to make
PostgreSQL accept that statement. Adding this as an extension has

been

rejected in the past.)

I'm now wondering why it was rejected. I couldn't try this last

nite

so I just tried it now. Here's with Sybase 11.0.3.3 :

1> create table foo(a int)
2> go
1> insert into foo(a) values(1)
2> go
(1 row affected)
1> insert into foo(foo.a) values(2)
2> go
(1 row affected)
1>

And I suspect more than just mysql and sybase accept either syntax.
Right now I'm modifying postnuke but that's only a short term

solution,

and I wouldn't want to add it to PostgreSQL either 'cuze if it

remains

rejected that would hamper upgrades. ROCK --> ME <-- HARD PLACE

:)

There are really no other decent CMSs available that support

PostgreSQL.

Vince.
--

======================================================================
====

Vince Vielhaber -- KA8CSH email: vev@michvhf.com

http://www.pop4.net

56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com

======================================================================
====

---------------------------(end of

broadcast)---------------------------

Show quoted text

TIP 6: Have you searched our list archives?

http://archives.postgresql.org

#6Vince Vielhaber
vev@michvhf.com
In reply to: Rod Taylor (#5)
Re: insert statements

On Thu, 14 Mar 2002, Rod Taylor wrote:

Why not send in your changes to PostNuke along with the appropriate
section from the SQL specs?

Surely they'll apply a reasoned patch which improves conformance to
the SQL standard and doesn't break anything in the process. I'd
suspect both SyBase, and MySQL can also take insert into foo (a) as
well.

Look below, I showed both syntaxes with Sybase. Since I don't have a
copy of the SQL specs I can't send them the appropriate section or I
would have already. Care to forward that appropriate section?

--
Rod Taylor

This message represents the official view of the voices in my head

----- Original Message -----
From: "Vince Vielhaber" <vev@michvhf.com>
To: "Peter Eisentraut" <peter_e@gmx.net>
Cc: <pgsql-hackers@postgreSQL.org>
Sent: Thursday, March 14, 2002 8:29 AM
Subject: Re: [HACKERS] insert statements

On Wed, 13 Mar 2002, Peter Eisentraut wrote:

Vince Vielhaber writes:

For example:

insert into foo(foo.a) values(1);

fails because the table name is used. Update statements also

include the

table name. Both fail. Does anyone know of a workaround?

Completely loudly to whomever wrote that SQL. It's completely
non-standard.

(The implication I'm trying to make is that there's no way to make
PostgreSQL accept that statement. Adding this as an extension has

been

rejected in the past.)

I'm now wondering why it was rejected. I couldn't try this last

nite

so I just tried it now. Here's with Sybase 11.0.3.3 :

1> create table foo(a int)
2> go
1> insert into foo(a) values(1)
2> go
(1 row affected)
1> insert into foo(foo.a) values(2)
2> go
(1 row affected)
1>

And I suspect more than just mysql and sybase accept either syntax.
Right now I'm modifying postnuke but that's only a short term

solution,

and I wouldn't want to add it to PostgreSQL either 'cuze if it

remains

rejected that would hamper upgrades. ROCK --> ME <-- HARD PLACE

:)

There are really no other decent CMSs available that support

PostgreSQL.

Vince.
--

======================================================================
====

Vince Vielhaber -- KA8CSH email: vev@michvhf.com

http://www.pop4.net

56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com

======================================================================
====

---------------------------(end of

broadcast)---------------------------

TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com http://www.pop4.net
56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================

#7Rod Taylor
rbt@zort.ca
In reply to: Vince Vielhaber (#6)
Re: insert statements

As snipped from:
http://archives.postgresql.org/pgsql-bugs/2000-10/msg00030.php (All
my stuff is in paper form)
What's your definition of "other dbs"? The above statement is quite
clearly in violation of the SQL92 and SQL99 specifications:

<insert statement> ::=
INSERT INTO <table name>
<insert columns and source>

<insert columns and source> ::=
[ <left paren> <insert column list> <right paren> ]
<query expression>
| DEFAULT VALUES

<insert column list> ::= <column name list>

<column name list> ::=
<column name> [ { <comma> <column name> }... ]

<column name> ::= <identifier>

I'm not particularly excited about supporting non-SQL variant syntaxes
that add no functionality.

regards, tom lane
--
Rod Taylor

This message represents the official view of the voices in my head

----- Original Message -----
From: "Vince Vielhaber" <vev@michvhf.com>
To: "Rod Taylor" <rbt@zort.ca>
Cc: "Peter Eisentraut" <peter_e@gmx.net>;
<pgsql-hackers@postgreSQL.org>
Sent: Thursday, March 14, 2002 9:08 AM
Subject: Re: [HACKERS] insert statements

On Thu, 14 Mar 2002, Rod Taylor wrote:

Why not send in your changes to PostNuke along with the

appropriate

section from the SQL specs?

Surely they'll apply a reasoned patch which improves conformance

to

the SQL standard and doesn't break anything in the process. I'd
suspect both SyBase, and MySQL can also take insert into foo (a)

as

well.

Look below, I showed both syntaxes with Sybase. Since I don't have

a

copy of the SQL specs I can't send them the appropriate section or I
would have already. Care to forward that appropriate section?

--
Rod Taylor

This message represents the official view of the voices in my head

----- Original Message -----
From: "Vince Vielhaber" <vev@michvhf.com>
To: "Peter Eisentraut" <peter_e@gmx.net>
Cc: <pgsql-hackers@postgreSQL.org>
Sent: Thursday, March 14, 2002 8:29 AM
Subject: Re: [HACKERS] insert statements

On Wed, 13 Mar 2002, Peter Eisentraut wrote:

Vince Vielhaber writes:

For example:

insert into foo(foo.a) values(1);

fails because the table name is used. Update statements

also

include the

table name. Both fail. Does anyone know of a workaround?

Completely loudly to whomever wrote that SQL. It's completely
non-standard.

(The implication I'm trying to make is that there's no way to

make

PostgreSQL accept that statement. Adding this as an extension

has

been

rejected in the past.)

I'm now wondering why it was rejected. I couldn't try this last

nite

so I just tried it now. Here's with Sybase 11.0.3.3 :

1> create table foo(a int)
2> go
1> insert into foo(a) values(1)
2> go
(1 row affected)
1> insert into foo(foo.a) values(2)
2> go
(1 row affected)
1>

And I suspect more than just mysql and sybase accept either

syntax.

Right now I'm modifying postnuke but that's only a short term

solution,

and I wouldn't want to add it to PostgreSQL either 'cuze if it

remains

rejected that would hamper upgrades. ROCK --> ME <-- HARD PLACE

:)

There are really no other decent CMSs available that support

PostgreSQL.

Vince.
--

======================================================================

====

Vince Vielhaber -- KA8CSH email: vev@michvhf.com

http://www.pop4.net

56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory

http://www.camping-usa.com

Online Giftshop Superstore

http://www.cloudninegifts.com

======================================================================

====

---------------------------(end of

broadcast)---------------------------

TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Vince.
--

======================================================================
====

Vince Vielhaber -- KA8CSH email: vev@michvhf.com

http://www.pop4.net

56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com

======================================================================
====

Show quoted text
#8Vince Vielhaber
vev@michvhf.com
In reply to: Rod Taylor (#7)
Re: insert statements

On Thu, 14 Mar 2002, Rod Taylor wrote:

As snipped from:
http://archives.postgresql.org/pgsql-bugs/2000-10/msg00030.php (All
my stuff is in paper form)
What's your definition of "other dbs"? The above statement is quite
clearly in violation of the SQL92 and SQL99 specifications:

And nowhere does it say that <column name> cannot be qualified with
the table name in front of it. Looking at the entire message noted
above the list of other dbs that support it is now Oracle, Sybase,
MS-SQL and mysql. If "other dbs" ends up the equivilent of "everything
but PostgreSQL" then which one is non-standard?

<insert statement> ::=
INSERT INTO <table name>
<insert columns and source>

<insert columns and source> ::=
[ <left paren> <insert column list> <right paren> ]
<query expression>
| DEFAULT VALUES

<insert column list> ::= <column name list>

<column name list> ::=
<column name> [ { <comma> <column name> }... ]

<column name> ::= <identifier>

I'm not particularly excited about supporting non-SQL variant syntaxes
that add no functionality.

regards, tom lane
--
Rod Taylor

This message represents the official view of the voices in my head

----- Original Message -----
From: "Vince Vielhaber" <vev@michvhf.com>
To: "Rod Taylor" <rbt@zort.ca>
Cc: "Peter Eisentraut" <peter_e@gmx.net>;
<pgsql-hackers@postgreSQL.org>
Sent: Thursday, March 14, 2002 9:08 AM
Subject: Re: [HACKERS] insert statements

On Thu, 14 Mar 2002, Rod Taylor wrote:

Why not send in your changes to PostNuke along with the

appropriate

section from the SQL specs?

Surely they'll apply a reasoned patch which improves conformance

to

the SQL standard and doesn't break anything in the process. I'd
suspect both SyBase, and MySQL can also take insert into foo (a)

as

well.

Look below, I showed both syntaxes with Sybase. Since I don't have

a

copy of the SQL specs I can't send them the appropriate section or I
would have already. Care to forward that appropriate section?

--
Rod Taylor

This message represents the official view of the voices in my head

----- Original Message -----
From: "Vince Vielhaber" <vev@michvhf.com>
To: "Peter Eisentraut" <peter_e@gmx.net>
Cc: <pgsql-hackers@postgreSQL.org>
Sent: Thursday, March 14, 2002 8:29 AM
Subject: Re: [HACKERS] insert statements

On Wed, 13 Mar 2002, Peter Eisentraut wrote:

Vince Vielhaber writes:

For example:

insert into foo(foo.a) values(1);

fails because the table name is used. Update statements

also

include the

table name. Both fail. Does anyone know of a workaround?

Completely loudly to whomever wrote that SQL. It's completely
non-standard.

(The implication I'm trying to make is that there's no way to

make

PostgreSQL accept that statement. Adding this as an extension

has

been

rejected in the past.)

I'm now wondering why it was rejected. I couldn't try this last

nite

so I just tried it now. Here's with Sybase 11.0.3.3 :

1> create table foo(a int)
2> go
1> insert into foo(a) values(1)
2> go
(1 row affected)
1> insert into foo(foo.a) values(2)
2> go
(1 row affected)
1>

And I suspect more than just mysql and sybase accept either

syntax.

Right now I'm modifying postnuke but that's only a short term

solution,

and I wouldn't want to add it to PostgreSQL either 'cuze if it

remains

rejected that would hamper upgrades. ROCK --> ME <-- HARD PLACE

:)

There are really no other decent CMSs available that support

PostgreSQL.

Vince.
--

======================================================================

====

Vince Vielhaber -- KA8CSH email: vev@michvhf.com

http://www.pop4.net

56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory

http://www.camping-usa.com

Online Giftshop Superstore

http://www.cloudninegifts.com

======================================================================

====

---------------------------(end of

broadcast)---------------------------

TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Vince.
--

======================================================================
====

Vince Vielhaber -- KA8CSH email: vev@michvhf.com

http://www.pop4.net

56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com

======================================================================
====

Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com http://www.pop4.net
56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================

#9Rod Taylor
rbt@zort.ca
In reply to: Vince Vielhaber (#8)
Re: insert statements

Out of curiosity, does SyBase allow you to qualify it with
schema.table.column?
--
Rod Taylor

This message represents the official view of the voices in my head

----- Original Message -----
From: "Vince Vielhaber" <vev@michvhf.com>
To: "Rod Taylor" <rbt@zort.ca>
Cc: "Peter Eisentraut" <peter_e@gmx.net>;
<pgsql-hackers@postgreSQL.org>
Sent: Thursday, March 14, 2002 9:39 AM
Subject: Re: [HACKERS] insert statements

On Thu, 14 Mar 2002, Rod Taylor wrote:

As snipped from:
http://archives.postgresql.org/pgsql-bugs/2000-10/msg00030.php

(All

my stuff is in paper form)
What's your definition of "other dbs"? The above statement is

quite

clearly in violation of the SQL92 and SQL99 specifications:

And nowhere does it say that <column name> cannot be qualified with
the table name in front of it. Looking at the entire message noted
above the list of other dbs that support it is now Oracle, Sybase,
MS-SQL and mysql. If "other dbs" ends up the equivilent of

"everything

but PostgreSQL" then which one is non-standard?

<insert statement> ::=
INSERT INTO <table name>
<insert columns and source>

<insert columns and source> ::=
[ <left paren> <insert column list> <right

paren> ]

<query expression>
| DEFAULT VALUES

<insert column list> ::= <column name list>

<column name list> ::=
<column name> [ { <comma> <column name> }... ]

<column name> ::= <identifier>

I'm not particularly excited about supporting non-SQL variant

syntaxes

that add no functionality.

regards, tom lane
--
Rod Taylor

This message represents the official view of the voices in my head

----- Original Message -----
From: "Vince Vielhaber" <vev@michvhf.com>
To: "Rod Taylor" <rbt@zort.ca>
Cc: "Peter Eisentraut" <peter_e@gmx.net>;
<pgsql-hackers@postgreSQL.org>
Sent: Thursday, March 14, 2002 9:08 AM
Subject: Re: [HACKERS] insert statements

On Thu, 14 Mar 2002, Rod Taylor wrote:

Why not send in your changes to PostNuke along with the

appropriate

section from the SQL specs?

Surely they'll apply a reasoned patch which improves

conformance

to

the SQL standard and doesn't break anything in the process.

I'd

suspect both SyBase, and MySQL can also take insert into foo

(a)

as

well.

Look below, I showed both syntaxes with Sybase. Since I don't

have

a

copy of the SQL specs I can't send them the appropriate section

or I

would have already. Care to forward that appropriate section?

--
Rod Taylor

This message represents the official view of the voices in my

head

----- Original Message -----
From: "Vince Vielhaber" <vev@michvhf.com>
To: "Peter Eisentraut" <peter_e@gmx.net>
Cc: <pgsql-hackers@postgreSQL.org>
Sent: Thursday, March 14, 2002 8:29 AM
Subject: Re: [HACKERS] insert statements

On Wed, 13 Mar 2002, Peter Eisentraut wrote:

Vince Vielhaber writes:

For example:

insert into foo(foo.a) values(1);

fails because the table name is used. Update statements

also

include the

table name. Both fail. Does anyone know of a

workaround?

Completely loudly to whomever wrote that SQL. It's

completely

non-standard.

(The implication I'm trying to make is that there's no way

to

make

PostgreSQL accept that statement. Adding this as an

extension

has

been

rejected in the past.)

I'm now wondering why it was rejected. I couldn't try this

last

nite

so I just tried it now. Here's with Sybase 11.0.3.3 :

1> create table foo(a int)
2> go
1> insert into foo(a) values(1)
2> go
(1 row affected)
1> insert into foo(foo.a) values(2)
2> go
(1 row affected)
1>

And I suspect more than just mysql and sybase accept either

syntax.

Right now I'm modifying postnuke but that's only a short

term

solution,

and I wouldn't want to add it to PostgreSQL either 'cuze if

it

remains

rejected that would hamper upgrades. ROCK --> ME <-- HARD

PLACE

:)

There are really no other decent CMSs available that support

PostgreSQL.

Vince.
--

======================================================================

====

Vince Vielhaber -- KA8CSH email: vev@michvhf.com

http://www.pop4.net

56K Nationwide Dialup from $16.00/mo at Pop4

Networking

Online Campground Directory

http://www.camping-usa.com

Online Giftshop Superstore

http://www.cloudninegifts.com

======================================================================

====

---------------------------(end of

broadcast)---------------------------

TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Vince.
--

======================================================================

====

Vince Vielhaber -- KA8CSH email: vev@michvhf.com

http://www.pop4.net

56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory

http://www.camping-usa.com

Online Giftshop Superstore

http://www.cloudninegifts.com

======================================================================

====

Vince.
--

======================================================================
====

Vince Vielhaber -- KA8CSH email: vev@michvhf.com

http://www.pop4.net

56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com

======================================================================
====

Show quoted text
#10Vince Vielhaber
vev@michvhf.com
In reply to: Rod Taylor (#9)
Re: insert statements

On Thu, 14 Mar 2002, Rod Taylor wrote:

Out of curiosity, does SyBase allow you to qualify it with
schema.table.column?

Just tried it... Yes.

Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com http://www.pop4.net
56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================

#11Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Vince Vielhaber (#8)
Re: insert statements

On Thu, 14 Mar 2002, Vince Vielhaber wrote:

On Thu, 14 Mar 2002, Rod Taylor wrote:

As snipped from:
http://archives.postgresql.org/pgsql-bugs/2000-10/msg00030.php (All
my stuff is in paper form)
What's your definition of "other dbs"? The above statement is quite
clearly in violation of the SQL92 and SQL99 specifications:

And nowhere does it say that <column name> cannot be qualified with
the table name in front of it. Looking at the entire message noted

AFAICS periods are not valid in identifiers that are not double
quoted (section 5.2 has the rules on regular identifiers and delimited
ones)

<regular identifier> ::= <identifier body>

<identifier body> ::=
<identifier start> [ { <underscore> | <identifier part> }... ]

<identifier start> ::= !! See the Syntax Rules

<identifier part> ::=
<identifier start>
| <digit>
identifier start is a simple latin letter, a letter in the character
repertoire that's in use, a syllable in the repertoire or an ideograph in
the repertoire.

identifier is defined as either a regular identifier or a delimited one
(ie double quoted). So column name cannot contain periods.

That being said, is this something that's worth adding due to general
usage by other systems?

#12Vince Vielhaber
vev@michvhf.com
In reply to: Stephan Szabo (#11)
Re: insert statements

On Thu, 14 Mar 2002, Stephan Szabo wrote:

<identifier start> ::= !! See the Syntax Rules

<identifier part> ::=
<identifier start>
| <digit>
identifier start is a simple latin letter, a letter in the character
repertoire that's in use, a syllable in the repertoire or an ideograph in
the repertoire.

identifier is defined as either a regular identifier or a delimited one
(ie double quoted). So column name cannot contain periods.

That being said, is this something that's worth adding due to general
usage by other systems?

In an odd way, I guess that's what I'm asking. At what point is it us
that's non-standard?

Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com http://www.pop4.net
56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================

#13Tom Lane
tgl@sss.pgh.pa.us
In reply to: Vince Vielhaber (#8)
Re: insert statements

Vince Vielhaber <vev@michvhf.com> writes:

What's your definition of "other dbs"? The above statement is quite
clearly in violation of the SQL92 and SQL99 specifications:

And nowhere does it say that <column name> cannot be qualified with
the table name in front of it.

Au contraire, that is EXACTLY what that bit of BNF is saying. If
they'd meant to allow this construction then the BNF would refer to
<qualified name>, not just <identifier>.

Looking at the entire message noted
above the list of other dbs that support it is now Oracle, Sybase,
MS-SQL and mysql. If "other dbs" ends up the equivilent of "everything
but PostgreSQL" then which one is non-standard?

Out of curiosity, what do these guys do if I try the obvious

insert into foo (bar.col) ...

regards, tom lane

#14Vince Vielhaber
vev@michvhf.com
In reply to: Tom Lane (#13)
Re: insert statements

On Thu, 14 Mar 2002, Tom Lane wrote:

Vince Vielhaber <vev@michvhf.com> writes:

What's your definition of "other dbs"? The above statement is quite
clearly in violation of the SQL92 and SQL99 specifications:

And nowhere does it say that <column name> cannot be qualified with
the table name in front of it.

Au contraire, that is EXACTLY what that bit of BNF is saying. If
they'd meant to allow this construction then the BNF would refer to
<qualified name>, not just <identifier>.

Looking at the entire message noted
above the list of other dbs that support it is now Oracle, Sybase,
MS-SQL and mysql. If "other dbs" ends up the equivilent of "everything
but PostgreSQL" then which one is non-standard?

Out of curiosity, what do these guys do if I try the obvious

insert into foo (bar.col) ...

Looks like Sybase ignores the bar:

1> create table foo(a int)
2> go
1> insert into foo(bar.a) values(1)
2> go
(1 row affected)
1> select * from foo
2> go
a
-----------
1

(1 row affected)
1>

Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com http://www.pop4.net
56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================

#15Michael Alan Dorman
mdorman@debian.org
In reply to: Vince Vielhaber (#4)
Re: insert statements

Vince Vielhaber <vev@michvhf.com> writes:

There are really no other decent CMSs available that support
PostgreSQL.

bricolage.thepirtgroup.com/

Mike.

#16Thomas Lockhart
thomas@fourpalms.org
In reply to: Vince Vielhaber (#14)
Re: insert statements

Looking at the entire message noted
above the list of other dbs that support it is now Oracle, Sybase,
MS-SQL and mysql. If "other dbs" ends up the equivilent of "everything
but PostgreSQL" then which one is non-standard?

The one(s) that intentionally violate or gratuitously extend published
language standards? ;)

Looks like Sybase ignores the bar:

:)

So would you like to write the specification for this "standard
behavior"? We'll submit it for SQL200x :)

- Thomas

#17Thomas Lockhart
thomas@fourpalms.org
In reply to: Vince Vielhaber (#14)
Re: insert statements

Sorry for the previous sarcastic response.

But I *really* don't see the benefit of that <table>(<table>.<col>)
syntax. Especially when it cannot (?? we need a counterexample) lead to
any additional interesting beneficial behavior.

- Thomas

#18Tom Lane
tgl@sss.pgh.pa.us
In reply to: Thomas Lockhart (#17)
Re: insert statements

Vince Vielhaber <vev@michvhf.com> writes:

On Fri, 15 Mar 2002, Thomas Lockhart wrote:

But I *really* don't see the benefit of that <table>(<table>.<col>)
syntax. Especially when it cannot (?? we need a counterexample) lead to
any additional interesting beneficial behavior.

The only benefit I can come up with is existing stuff written under
the impression that it's acceptable.

That's the only benefit I can see either --- but it's not negligible.
Especially not if the majority of other DBMSes will take this syntax.

I was originally against adding any such thing, but I'm starting to
lean in the other direction.

I'd want it to error out on "INSERT foo (bar.col)", though ;-)

regards, tom lane

#19Vince Vielhaber
vev@michvhf.com
In reply to: Tom Lane (#18)
Re: insert statements

On Fri, 15 Mar 2002, Tom Lane wrote:

Vince Vielhaber <vev@michvhf.com> writes:

On Fri, 15 Mar 2002, Thomas Lockhart wrote:

But I *really* don't see the benefit of that <table>(<table>.<col>)
syntax. Especially when it cannot (?? we need a counterexample) lead to
any additional interesting beneficial behavior.

The only benefit I can come up with is existing stuff written under
the impression that it's acceptable.

That's the only benefit I can see either --- but it's not negligible.
Especially not if the majority of other DBMSes will take this syntax.

I was originally against adding any such thing, but I'm starting to
lean in the other direction.

I'd want it to error out on "INSERT foo (bar.col)", though ;-)

So would I.

Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com http://www.pop4.net
56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================

#20Fernando Nasser
fnasser@redhat.com
In reply to: Vince Vielhaber (#14)
Re: insert statements

Vince Vielhaber wrote:

Looks like Sybase ignores the bar:

1> create table foo(a int)
2> go
1> insert into foo(bar.a) values(1)
2> go
(1 row affected)
1> select * from foo
2> go
a
-----------
1

(1 row affected)
1>

This looks like a parser error to me. It probably only takes the
last bit of the name and ignores all the qualifiers...

--
Fernando Nasser
Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario M4P 2C9

#21Fernando Nasser
fnasser@redhat.com
In reply to: Tom Lane (#18)
Re: insert statements

Tom Lane wrote:

I'd want it to error out on "INSERT foo (bar.col)", though ;-)

And on "INSERT foo (bar.foo.col)" as well.

This means we will have to take this check down to the analyze
phase (where the schema where foo is located is finally known,
if it was not specified explicitly).

We could easily take "INSERT bar.foo (bar.foo.col)" but the
above one is trouble.

--
Fernando Nasser
Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario M4P 2C9

#22Fernando Nasser
fnasser@redhat.com
In reply to: Vince Vielhaber (#10)
Re: insert statements

Vince Vielhaber wrote:

On Thu, 14 Mar 2002, Rod Taylor wrote:

Out of curiosity, does SyBase allow you to qualify it with
schema.table.column?

Just tried it... Yes.

What if you give it a bogus schema name? Does it error out or just
ignore it?

--
Fernando Nasser
Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario M4P 2C9

#23Vince Vielhaber
vev@michvhf.com
In reply to: Fernando Nasser (#22)
Re: insert statements

On Mon, 18 Mar 2002, Fernando Nasser wrote:

Vince Vielhaber wrote:

On Thu, 14 Mar 2002, Rod Taylor wrote:

Out of curiosity, does SyBase allow you to qualify it with
schema.table.column?

Just tried it... Yes.

What if you give it a bogus schema name? Does it error out or just
ignore it?

If I get a few mins before I leave I'll try it, but I would guess
that it ignores it because when I tried INSERT INTO foo(bar.a), bar
didn't exist and Sybase still accepted it.

Vince.
--
==========================================================================
Vince Vielhaber -- KA8CSH email: vev@michvhf.com http://www.pop4.net
56K Nationwide Dialup from $16.00/mo at Pop4 Networking
Online Campground Directory http://www.camping-usa.com
Online Giftshop Superstore http://www.cloudninegifts.com
==========================================================================

#24Zeugswetter Andreas SB SD
ZeugswetterA@spardat.at
In reply to: Vince Vielhaber (#23)
Re: insert statements

I'd want it to error out on "INSERT foo (bar.col)", though ;-)

And on "INSERT foo (bar.foo.col)" as well.

Why accept above at all ? Seems much too error prone, I would eighter
accept table with schema or without schema, mixing both cases seems
unnecessarily confusing and error prone to me.

If at all, I would allow:
INSERT bar.foo (bar.foo.col)
INSERT foo (foo.col)

Would that be enough for the initial problem case ?

Andreas