Thread: Issue with UPDATE statement on v8

Issue with UPDATE statement on v8

From
"Kenneth Hutchinson"
Date:
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.  


Re: Issue with UPDATE statement on v8

From
Tom Lane
Date:
"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


Re: Issue with UPDATE statement on v8

From
Rajesh Kumar Mallah
Date:
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
>