postgresql-interfaces / psqlodbc

Other
16 stars 15 forks source link

While executing more than 2 queries in single transaction giving MSG: internal SAVEPOINT failed #31

Open ajayn249 opened 4 months ago

ajayn249 commented 4 months ago

1865:[7f750f6af500]statement.[ParseAndDescribeWithLibpq]2948: entering plan_name=_PLAN0x243f340 query=SAVEPOINT PIPECMD 1868:[7f750f6af500]statement.[ParseWithLibpq]2809: entering plan_name=_PLAN0x243f340 query=SAVEPOINT PIPECMD 1912:[7f750f6af500]connection[CC_send_query_append]1809: conn=0x24253d0, query='DEALLOCATE "_PLAN0x243f340"' 1969:[7f750f6af500]connection[CC_send_query_append]1809: conn=0x24253d0, query='SAVEPOINT _EXEC_SVP_0x24253d0' 1995:[7f750f6af500]statement.[ParseAndDescribeWithLibpq]2948: entering plan_name=_PLAN0x243f340 query=select count() from carrier 1998:[7f750f6af500]statement.[ParseWithLibpq]2809: entering plan_name=_PLAN0x243f340 query=select count() from carrier 2051:[7f750f6af500]connection[CC_send_query_append]1809: conn=0x24253d0, query='DEALLOCATE "_PLAN0x243f340"' 2118:[7f750f6af500]statement.[ParseAndDescribeWithLibpq]2948: entering plan_name=_PLAN0x243f340 query=ROLLBACK TO PIPECMD 2121:[7f750f6af500]statement.[ParseWithLibpq]2809: entering plan_name=_PLAN0x243f340 query=ROLLBACK TO PIPECMD 2165:[7f750f6af500]connection[CC_send_query_append]1809: conn=0x24253d0, query='DEALLOCATE "_PLAN0x243f340"' 2231:[7f750f6af500]statement.[ParseAndDescribeWithLibpq]2948: entering plan_name=_PLAN0x243f340 query=RELEASE SAVEPOINT PIPECMD 2234:[7f750f6af500]statement.[ParseWithLibpq]2809: entering plan_name=_PLAN0x243f340 query=RELEASE SAVEPOINT PIPECMD 2278:[7f750f6af500]connection[CC_send_query_append]1809: conn=0x24253d0, query='DEALLOCATE "_PLAN0x243f340"' 2343:[7f750f6af500]statement.[ParseAndDescribeWithLibpq]2948: entering plan_name=_PLAN0x243f340 query=SAVEPOINT PIPECMD 2346:[7f750f6af500]statement.[ParseWithLibpq]2809: entering plan_name=_PLAN0x243f340 query=SAVEPOINT PIPECMD 2390:[7f750f6af500]connection[CC_send_query_append]1809: conn=0x24253d0, query='DEALLOCATE "_PLAN0x243f340"' 2447:[7f750f6af500]connection[CC_send_query_append]1809: conn=0x24253d0, query='RELEASE _EXEC_SVP_0x24253d0;SAVEPOINT _EXEC_SVP_0x24253d0' 2467:[7f750f6af500]connection[CC_send_query_append]1809: conn=0x24253d0, query='ROLLBACK' 2548:[7f750f6af500]connection[CC_send_query_append]1809: conn=0x24253d0, query='BEGIN 2572:[7f750f6af500]statement.[ParseAndDescribeWithLibpq]2948: entering plan_name=_PLAN0x243f340 query=ROLLBACK TO PIPECMD 2575:[7f750f6af500]statement.[ParseWithLibpq]2809: entering plan_name=_PLAN0x243f340 query=ROLLBACK TO PIPECMD

While executing 3rd query 'RELEASE _EXEC_SVP_0x24253d0;SAVEPOINT _EXEC_SVP_0x24253d0' is coming and letting it to ROLLBACK and because of this SAVEPOINT _EXEC_SVP_0x24253d0 is giving error for MSG: internal SAVEPOINT failed.

In code i have observed in file execute.c #ifdef _RELEASE_INTERNAL_SAVEPOINT is defined which is actually responsible for RELEASE _EXEC_SVP_0x24253d0 command to execute. Macro is defined in connection.h file. If i dont want to use RELEASE query or undefined that macro how i can do that.???? Is there any alternative way i can avoid this.

davecramer commented 4 months ago

What is the code you are trying to execute ?

ajayn249 commented 4 months ago

TestBaseMain.txt

This is the code where we are simply creating savepoint executing query rolling back

savepoint executing query rolling back

savepoint executing query rolling back

Also find the attached logs mylog_TestBaseMain_ssuser1668331.log This is odbc logs