Re: RETURNING clause: how to specifiy column indexes?
От | Ken Johanson |
---|---|
Тема | Re: RETURNING clause: how to specifiy column indexes? |
Дата | |
Msg-id | 475F954C.707@kensystem.com обсуждение исходный текст |
Ответ на | Re: RETURNING clause: how to specifiy column indexes? (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-general |
Tom Lane wrote: > Kris Jurka <books@ejurka.com> writes: >> I think the expectation is that: > >> CREATE TABLE t(a int, b int); >> INSERT INTO t(b,a) VALUES (1,2) RETURNING *; > >> will return 1,2 instead of 2,1 as it does now. > > Hmm ... I see your point, but on what grounds could one argue that > a "*" targetlist here should return something different from what > "SELECT * FROM t" would return? > > I'd say that an app that wants that should write > > INSERT INTO t(b,a) VALUES (1,2) RETURNING b,a; > > which is surely not that hard if you've got the code to produce > the "(b,a)" part. > > In any case it's not clear this is the same thing Ken is complaining > about ... > I am only seeking to have the columns returned in the order they appear naturally. JDBC says "This array contains the indexes of the columns in the target table that contain the auto-generated keys that should be made available." For the record I was not "complaining", only citing in advance the fact that while some consider selecting the keys by index to be dubious, it nonetheless must be done because an API requires it. Casting my question into a complaint is another topic.
В списке pgsql-general по дате отправления: