Repository navigation
fix: Fix errors on transaction status - #464
Conversation
|
Thanks, good catch. I wonder if we should rather fail issues downstream and release nevertheless. Calling |
|
I can conceive some reasonable use cases using Thinking out loud, maybe a this point replacing the error by a message/warning is a compromise solution and lends them some time to make the necessary changes. |
|
A warning sounds about right to me. Thanks! |
This sounded quite weird for me, and I decided to take a deeper look at their code. Let me think a bit more about this to try to find an alternative implementation. |
So, I just completely reworked this. Now we're asking for the transaction status directly to the backend instead of trying to maintain a counter of open transactions. It is much more simple and should also be way more robust. |
krlmlr
left a comment
There was a problem hiding this comment.
Thanks. I wonder if we should test for autocommit mode instead:
As far as I can see this has the major advantage of not delaying flagging a transaction until a read/write is attempted. Let me take a look at the code, it should not be hard to change the logic to look for autocomnit=off instead of transaction=on. |
b475cf1 to
ccf4027
Compare
A transaction is not reported until some I/O is actually attempted after dbBegin (or equivalent command).
Delayed flagging of transaction starting is no longer to be expected.
ccf4027 to
36072e0
Compare
|
I sent RSQLite 2.3.2 to CRAN, without the new functions. Took me four months to come up with that path of action... Anyway, once released, we can figure out what to do here, and submit an update. |
|
Hello. I'm really sorry and sad the initial implementation didn't quite work as intended and the additional workload it might have caused to you. Please let me know if there is something I can do about it. |
|
Thanks, no worries. I like the new approach. We can release the update on November 4, the advantage is that we have a CRAN version with SQLite 3.43. I'll run revdepchecks just to be sure. |
Some packages dependant on RSQLite are applying commit/rollback when no open transactions exist. Raising this error seems to be breaking some of them.