Skip to content
Snippets Groups Projects
user avatar
AKhatskevich authored
The function `OP_NextIdEphemeral` do not produce unique ids.
The new way to get rowid is to create sequential a counter.
One of registers initializes with int64_t = 0 and increases after each
insert. There are similar cases in `select.c` file, however, they are not as
straight-forward and would be fixed in future commits.

In case of error in `tarantoolSqlite3EphemeralGetMaxId` it was creating
diag string and silently continue working. It was a huge luck that
non-valid output of the function did not lead to crashes.

After the fix, it was found that some opcodes in `select.c` were using
wrong registers. These were fixed too, but they still have bugs. For
more information see #3297.

Also, fixed a memory leak.

Related to #3297
d02286c2
History
Name Last commit Last update