Re: [HACKERS] COPY view
Zoltan Boszormenyi <zboszor@dunaweb.hu>
From: Zoltan Boszormenyi <zboszor@dunaweb.hu>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgresql.org, pgsql-patches@postgresql.org
Date: 2006-08-24T09:53:31Z
Lists: pgsql-hackers
Attachments
- pgsql-copyselect-4.patch.gz (application/x-tar) patch
Tom Lane írta: > Zoltan Boszormenyi <zboszor@dunaweb.hu> writes: > >> How about the callback solution for the SELECT case >> that was copied from the original? Should I consider >> open-coding in copy.c what ExecutorRun() does >> to avoid the callback? >> > > Adding a DestReceiver type is a good solution ... although that static > variable is not. Instead define a DestReceiver extension struct that > can carry the CopyState pointer for you. Done. > You could also consider > putting the copy-from-view-specific state fields into DestReceiver > instead of CopyState, though this is a bit asymmetric with the relation > case so maybe it's not really cleaner. > Left it alone for now. > BTW, lose the tuple_to_values function --- it's an extremely bad > reimplementation of heap_deform_tuple. Done. > copy_dest_printtup also seems > coded without regard for the TupleTableSlot access API (read printtup() > to see what to do instead). I am still interpreting it. Can you give me some hints besides using slot_getallattrs(slot)? > And what's the point of factoring out the > heap_getnext loop as CopyRelationTo? It's not like that lets you share > any more code. The inside of the loop, ie what you've called > CopyValuesTo, is the sharable part. > Done. The option parsing and error checking is now common. I also changed it to use transformStmt() in analyze.c. However, both the UNION and sunselect cases give me something like this: ERROR: could not open relation 1663/16384/16723: No such file or directory What else can I do with it? Best regards, Zoltán Böszörményi