insert with multiple targetLists - Mailing list pgsql-hackers

From Neil Conway
Subject insert with multiple targetLists
Date
Msg-id 20020501191656.3b2d651b.nconway@klamath.dyndns.org
Whole thread Raw
Responses Re: insert with multiple targetLists  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Hi all,

I've been taking a look at fixing the TODO item:
   o Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..)

My first plan of attack was to replace the current list of ResTargets
in InsertStmt with a list of lists. The problem with that approach is
that:
   (a) the InsertStmt is converted to a Query. I could also change Query       to use a list of lists (instead of a
list)for holding TargetEntry       items, but that would be ugly (since Query is generic, and this       would only be
neededfor Inserts)
 
   (b) modifying Query would mean a lot of work (e.g. in the rewriter),       adapting all the places that expect
targetListto be a list to       instead use a list of lists. Once again, this would be messy.
 

So, that seems like a bad idea.

ISTM that a better way to do this would be to parse the InsertStmt,
and then execute an INSERT for every targetList in the query.
For example:
   INSERT INTO t1 (c1) VALUES (1), (2);
   would be executed in a similar fashion to:
   INSERT INTO t1 (c1) VALUES (1);   INSERT INTO t1 (c1) VALUES (2);

Does this sound reasonable?

Any suggestions would be welcome.

Cheers,

Neil

-- 
Neil Conway <neilconway@rogers.com>
PGP Key ID: DB3C29FC


pgsql-hackers by date:

Previous
From: cbbrowne@cbbrowne.com
Date:
Subject: Re: mV database tools
Next
From: cbbrowne@cbbrowne.com
Date:
Subject: Re: PostgreSQL mission statement?