AW: Inserting a select statement result into another ta ble

Started by Zeugswetter Andreas SBover 25 years ago4 messageshackers
Jump to latest
#1Zeugswetter Andreas SB
ZeugswetterA@wien.spardat.at

He does ask a legitimate question though. If you are

going to have a

LIMIT feature (which of course is not pure SQL), there

seems no reason

you shouldn't be able to insert the result into a table.

This is an interesting idea. We don't allow ORDER BY in
INSERT INTO ...
SELECT because it doesn't make any sense, but it does make sense if
LIMIT is used:

An "order by" also makes sense if you want to create a presorted table
for faster access. I don't see why we should disallow it.

Andreas

#2Bruce Momjian
bruce@momjian.us
In reply to: Zeugswetter Andreas SB (#1)
Re: AW: Inserting a select statement result into another ta ble

[ Charset ISO-8859-1 unsupported, converting... ]

He does ask a legitimate question though. If you are

going to have a

LIMIT feature (which of course is not pure SQL), there

seems no reason

you shouldn't be able to insert the result into a table.

This is an interesting idea. We don't allow ORDER BY in
INSERT INTO ...
SELECT because it doesn't make any sense, but it does make sense if
LIMIT is used:

An "order by" also makes sense if you want to create a presorted table
for faster access. I don't see why we should disallow it.

Like CLUSTER. I see.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  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, Pennsylvania 19026
#3Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Zeugswetter Andreas SB (#1)
Re: AW: Inserting a select statement result into another ta ble

With how we do things right now, does it actually gain us anything
to have a presorted table? Do we know not to do a seek on an index scan
if we're already at the right location in the heap file? We can't assume
the table is sorted (unless it hasn't been modified), so it's not like we
can sequence scan and stop when the bounds are met. If we don't do the
seek though, this could definately be good for mostly static data since
that might allow us to mostly not do seeks on normal conditions.

On Fri, 13 Oct 2000, Zeugswetter Andreas SB wrote:

Show quoted text

He does ask a legitimate question though. If you are

going to have a

LIMIT feature (which of course is not pure SQL), there

seems no reason

you shouldn't be able to insert the result into a table.

This is an interesting idea. We don't allow ORDER BY in
INSERT INTO ...
SELECT because it doesn't make any sense, but it does make sense if
LIMIT is used:

An "order by" also makes sense if you want to create a presorted table
for faster access. I don't see why we should disallow it.

Andreas

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Zeugswetter Andreas SB (#1)
Re: AW: Inserting a select statement result into another ta ble

Zeugswetter Andreas SB <ZeugswetterA@wien.spardat.at> writes:

This is an interesting idea. We don't allow ORDER BY in
INSERT INTO ...
SELECT because it doesn't make any sense, but it does make sense if
LIMIT is used:

An "order by" also makes sense if you want to create a presorted table
for faster access. I don't see why we should disallow it.

In current sources:

regression=# insert into int4_tbl select * from int4_tbl order by f1;
INSERT 0 5
regression=# select * from int4_tbl;
f1
-------------
0
123456
-123456
2147483647
-2147483647
-2147483647 <<= insertion starts here
-123456
0
123456
2147483647
(10 rows)

LIMIT won't work without some further code-rejiggering, but I think
it should be made to work eventually.

regards, tom lane