I am using PGAdmin4 with PG 9.4 on Ubuntu 16.04 64 bit. I wanted to do an update, but was unsure of the result, so I unselected autocommit and ran explain. It said only one row was affected, which I didn’t understand, because it should have affected at least 2. Then I inferred that the ‘one row’ being referred to was the plan, not the rows in my data.
Then I ran the update, again no autocommit, and it was not what I expected. So then I added ROLLBACK to the end of the query, ran it again, and got this error:
ERROR: syntax error at or near "ROLLBACK" LINE 1: ...de" SET childof_id = NULL WHERE codelevelsortseq=1 ROLLBACK;
I then did a new query, with just ROLLBACK; as I see it explained with an example in the docs: https://www.postgresql.org/docs/9.4/static/sql-rollback.html
Nevertheless, I got the same error:
ERROR: syntax error at or near "ROLLBACK" LINE 1: ...F, VERBOSE ON, COSTS ON, BUFFERS OFF, TIMING OFF) ROLLBACK;
Note in this case ROLLBACK; is the only thing on Line 1. The error carat (^) is pointing at the R in both cases. No other queries have been run in the interim.
To my surprise, there are very few Google hits for this exact search:
"syntax error at or near 'ROLLBACK'" About 30 results (0.34 seconds)
The first two hits are for a bug report from Nov. of 2006, which was fixed then and there. I don’t think this is the same bug, if it is a bug.
I did find DISCARD in the docs: https://www.postgresql.org/docs/9.4/static/sql-discard.html however, I have not run it because I wanted some clarity here and didn’t want to interfere with my ROLLBACK, if it would even have that effect.
So, my questions:
1. How do I discard this update and get my data back?
2. How do I check to make sure it really isn’t committed without upsetting my ROLLBACK options? (Yes, I do have a backup I can go to, but I would rather understand what is happening and fix it).
4. If it isn’t committed, and this is a bug, can I just close PGAdmin4 and/or PG and discard the changes that way?
5. Is this a new, different bug?
6. What was that 'one row effected' about?