Thread: Issue with UPDATE statement on v8
Hello, I'm sorry if this has been sent to the community multiple times. I am not able to determine whether my posts have gotten through. If you have rec'd this multiple times, please let me know. We have recently migrated to Postgres 8 (not sure of exactly which build). We have noticed that a few functions that were working previously are no longer behaving as expected. One function in particular is giving me a strange result. The function giving us the problem is much more complicated, but for simplicity I've included one that is easier to read and results in the same behavior. UPDATE t_summary SET availability = 7 WHERE oid = 28245084 When this query is executed (within a function or without) the database will simply hang. If the UPDATE is turned into a SELECT, the query works just fine. For some reason, the UPDATE is just not working. This same function/query works fines in Postgres 7.2. The schema for the targeted table is shown below. CREATE TABLE t_summary ( id varchar(20) NULL, availability int4 NULL DEFAULT0, ) Has anyone else experienced a similar issue? If more information is needed to determine the problem, please let me know. I've trimmed down the function's query and table's schema for this posting. Thanks in advance! kh This message is intended only for the use of the individual(s) or entity to which it is addressed and may contain informationthat is privileged, confidential, and/or proprietary to RealPage and its affiliated companies. If the reader ofthis message is not the intended recipient, you are hereby notified that any dissemination, distribution, forwarding orcopying of this communication is prohibited without the express permission of the sender. If you have received this communicationin error, please notify the sender immediately and delete the original message.
"Kenneth Hutchinson" <kenneth.hutchinson@mpfyieldstar.com> writes: > UPDATE t_summary > SET availability = 7 > WHERE oid = 28245084 > When this query is executed (within a function or without) the database > will simply hang. Is it really hung, or just taking an awfully long time? If the backend is consuming no CPU or I/O then I'd agree it's the former; please look into the pg_locks view to see if you can find out what it's waiting for. If it's the latter, maybe you neglected to create an index on OID? > Has anyone else experienced a similar issue? We'd certainly have heard about it if so. But you haven't provided enough info to let anyone reproduce the problem for investigation. regards, tom lane
On 9/23/05, Kenneth Hutchinson <kenneth.hutchinson@mpfyieldstar.com> wrote: > Hello, > > I'm sorry if this has been sent to the community multiple times. I am > not able to determine whether my posts have gotten through. If you have > rec'd this multiple times, please let me know. > > We have recently migrated to Postgres 8 (not sure of exactly which > build). We have noticed that a few functions that were working > previously are no longer behaving as expected. One function in > particular is giving me a strange result. > > The function giving us the problem is much more complicated, but for > simplicity I've included one that is easier to read and results in the > same behavior. > > UPDATE t_summary > SET availability = 7 > WHERE oid = 28245084 > > When this query is executed (within a function or without) the database > will simply hang. see if the update statement is being blocked by some other statement by running following SQL stmt from another session while the first session is hung SELECT h.pid AS blocker, w.pid AS blockee FROM ONLY pg_locks h, ONLY pg_locks w WHERE h.granted AND NOT w.granted AND (h.relation= w.relation AND h."database" = w."database" OR h."transaction" = w."transaction"); (sql above was posted by mr. Tom Lane in a particular reply) But You have to enable command string in statictics part of postgresql.conf file to know which pid corresponds to which sql. http://www.postgresql.org/docs/8.0/interactive/monitoring-stats.html#MONITORING-STATS-SETUP Hope it helps regds mallah. If the UPDATE is turned into a SELECT, the query > works just fine. For some reason, the UPDATE is just not working. This > same function/query works fines in Postgres 7.2. > > The schema for the targeted table is shown below. > > CREATE TABLE t_summary ( > id varchar(20) NULL, > availability int4 NULL DEFAULT 0, > ) > > Has anyone else experienced a similar issue? If more information is > needed to determine the problem, please let me know. I've trimmed down > the function's query and table's schema for this posting. > > Thanks in advance! > > kh > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings >