Re: [HACKERS] Advice needed,
От | Chris Bitmead |
---|---|
Тема | Re: [HACKERS] Advice needed, |
Дата | |
Msg-id | 389E5D19.337D23DE@nimrod.itg.telecom.com.au обсуждение исходный текст |
Ответ на | Advice needed, (Chris <chris@bitmead.com>) |
Список | pgsql-hackers |
Tom Lane wrote: > > The change I made was basicly to add an "inh" parameter to > > setTargetTable which I pass on down to addRangeTableEntry. From there I > > expect it to be passed on to the executor and as I said it seems to work > > ok without a where clause. > > Hm. I do not believe that the executor is currently prepared to cope > with more than one target table for an UPDATE or DELETE. You'll > probably need to do some work in execMain.c and related files. Not > sure why it seemed to work at all... Been doing more tracing. The flow of code seems to be going the way one might expect. Here is the strange thing. If I have CREATE TABLE a (aa text); CREATE TABLE b (bb text) inherits (a); If I have a WHERE clause that updates at least one tuple in both a AND b. For example... SELECT oid,* from ONLY a; 1234 | abcd SELECT oid,* from ONLY b; 5678 | defg | NULL Now if I have... UPDATE a SET aa='zzzz' WHERE oid=1234 or oid=5678 it works ok. or... UPDATE a SET aa='zzzz'; it works ok. But if I have a WHERE clause that only touches "a" table or only touches "b" table, it just updates the wrong stuff, but appears to work. From then on it doesn't work at all. Is there any function to print out a tuple?? I'm not sure how to do this in the debugger. Why can't pprint do it?
В списке pgsql-hackers по дате отправления: