I'm having a problem with queries (inserts, actually) which
appear to be failing. The situation is:
- Application does a fair amount of work with the database,
inserting several rows into a particular table, all
apparently successful. This is with auto-commit on.
- A later update on that row in the table fails because it
isn't in the database.
- Manually fiddling with the table using psql shows that
some of the rows were inserted, but one hasn't.
- I can insert new rows, but can't insert a row containing
the same index value as the failed row. If I try to,
the process hangs.
- If I kill child postgres processes (leaving the main one
alone), I can then insert the problematic row.
Looking at my logfile (redirected from stderr when postmaster
is started with -d 3 flag), the original insert statement
is recorded as:
StartTransactionCommand
query: INSERT INTO Attrib_Def ( prompt, name, category_id, type, deleted,
attribute_id ) VALUES ( 'Do you drink?'
, 'drinking', 67, 3, 0, 59 )
ProcessQuery
CommitTransactionCommand
This looks like a successfully inserted and committed operation
to me.
Any suggestions on what might be going on, and/or how to
figure out more?
I'm using Postgres 6.5.3 on Solaris 7, using the JDBC driver that
came with postgres, for Java 1.1
Thanks for any help.