Andrew Dunstan wrote:
Christopher Kings-Lynne wrote:

The major downside is that somewhere between 9000 and 10000 VALUES-targetlists produces "ERROR: stack depth limit exceeded". Perhaps for the typical use-case this is sufficient though.

I'm open to better ideas, comments, objections...

If the use case is people running MySQL dumps, then there will be millions of values-targetlists in MySQL dumps.

Yeah. The fabricated select hack does feel wrong to me. Taking a quick 2 minute look at the grammar it looks like a better bet would be to make InsertStmt.targetList a list of lists of values rather than just a list of values. Of course, that would make the changes more invasive. Even with that we'd still be reading the whole thing into memory ... is there a sane way to cache the inline data before statement execution?

I started down the path of making InsertStmt.targetList a list of targetlists. The problem is finding a reasonable way to make that available to the executor. Back to the drawing board I guess.

I have similar concerns with the millions of values-targetlists comment that Chris made. But I don't see how we can cache the data easily short of inventing a List alternative that spills to disk.

I guess we can just say that for true bulk load our supported mechanism is still just COPY, but it would be a pity to restrict a feature that is in the standard that way.

True

Joe

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

              http://archives.postgresql.org

Reply via email to