Re: [PATCHES] COPY view
От | Zoltan Boszormenyi |
---|---|
Тема | Re: [PATCHES] COPY view |
Дата | |
Msg-id | 44ED771B.6070501@dunaweb.hu обсуждение исходный текст |
Ответ на | Re: [PATCHES] COPY view (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [PATCHES] COPY view
|
Список | pgsql-hackers |
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
Вложения
В списке pgsql-hackers по дате отправления: