Neil Conway <[EMAIL PROTECTED]> writes:
> 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.

If you look at the SQL spec, they actually consider VALUES to be a
<table value constructor> which is one of the base cases for <query
expression>.  Thus for example this is legal SQL (copied and pasted
straight from the spec):

     CONSTRAINT VIEWS_IS_UPDATABLE_CHECK_OPTION_CHECK
         CHECK ( ( IS_UPDATABLE, CHECK_OPTION ) NOT IN
                ( VALUES ( 'NO', 'CASCADED' ), ( 'NO', 'LOCAL' ) ) )

So one should really think of INSERT...VALUES as a form of
INSERT...SELECT rather than a special case of its own.  INSERT...SELECT
is currently extremely klugy (look at the hacks in the rewriter for it)
so I think you will not get very far until you redesign the querytree
structure for INSERT...SELECT.

BTW, all the non-trivial cases for VALUES are Full SQL only, not entry
or even intermediate level.  So I don't see much point in providing a
half-baked implementation.  We've still got lots left to do to cover
all of the entry-SQL spec, and IMHO we ought to focus on that stuff
first...

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to