Fix handling of transactions with large results
If transaction replaying was enabled and a result was returned in more than one call to clientReply, a NULL value would be added to the statement which in turn would trigger a debug assertion. Similarly any following statements in the transaction would be executed regardless of whether the result was complete. Renamed the statement execution function to better describe what it does. Extended the basic functional test case to cover this.
This commit is contained in:
@ -60,6 +60,19 @@ int main(int argc, char** argv)
|
||||
{
|
||||
}
|
||||
},
|
||||
{
|
||||
"Large result",
|
||||
{
|
||||
bind(ok, "BEGIN"),
|
||||
bind(ok, "SELECT REPEAT('a', 100000)"),
|
||||
},
|
||||
{
|
||||
bind(ok, "SELECT REPEAT('a', 100000)"),
|
||||
bind(ok, "COMMIT"),
|
||||
},
|
||||
{
|
||||
}
|
||||
},
|
||||
{
|
||||
"Transaction with a write",
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user