sql: reset values to be bound after execution
Before this patch prepared statements didn't reset bound values after its execution. As a result, if during next execution cycle not all parameters were provided, cached values would appear. For instance: prep = box.prepare('select :a, :b, :c') prep:execute({{[':a'] = 1}, {[':b'] = 2}, {[':c'] = 3}} -- [1, 2, 3] prep:execute({{[':a'] = 1}, {[':b'] = 2}}) -- [1, 2, 3] However, expected result for the last query should be [1, 2, NULL]. Let's fix it and always reset all binding values before next execution. Closes #4825
Showing
- src/box/execute.c 5 additions, 0 deletionssrc/box/execute.c
- src/box/sql/sqlInt.h 4 additions, 0 deletionssrc/box/sql/sqlInt.h
- src/box/sql/vdbeapi.c 17 additions, 0 deletionssrc/box/sql/vdbeapi.c
- test/sql/prepared.result 48 additions, 0 deletionstest/sql/prepared.result
- test/sql/prepared.test.lua 10 additions, 0 deletionstest/sql/prepared.test.lua
Loading
Please register or sign in to comment