box: implement persistent sequences
This patch implements a new object type, persistent sequences. Sequences are created with function box.schema.sequence.create(name, options). Options include min/max, start value, increment, cache size, just like in Postgresql, although 'cache' is ignored for now. All sequences can be accessed via box.sequence.<name>, similarly to spaces. To generate a sequence value, use seq:next() method. To retrieve the last generated value, use seq:get(). A sequence value can also be reset to the start value or to any other value using seq:reset() and seq:set() methods. Needed for #389
Showing
- src/box/CMakeLists.txt 2 additions, 0 deletionssrc/box/CMakeLists.txt
- src/box/alter.cc 181 additions, 2 deletionssrc/box/alter.cc
- src/box/alter.h 2 additions, 0 deletionssrc/box/alter.h
- src/box/bootstrap.snap 0 additions, 0 deletionssrc/box/bootstrap.snap
- src/box/box.cc 84 additions, 0 deletionssrc/box/box.cc
- src/box/box.h 46 additions, 0 deletionssrc/box/box.h
- src/box/errcode.h 7 additions, 0 deletionssrc/box/errcode.h
- src/box/lua/init.c 2 additions, 0 deletionssrc/box/lua/init.c
- src/box/lua/load_cfg.lua 1 addition, 0 deletionssrc/box/lua/load_cfg.lua
- src/box/lua/schema.lua 181 additions, 3 deletionssrc/box/lua/schema.lua
- src/box/lua/sequence.c 119 additions, 0 deletionssrc/box/lua/sequence.c
- src/box/lua/sequence.h 47 additions, 0 deletionssrc/box/lua/sequence.h
- src/box/lua/space.cc 4 additions, 0 deletionssrc/box/lua/space.cc
- src/box/lua/upgrade.lua 36 additions, 1 deletionsrc/box/lua/upgrade.lua
- src/box/schema.cc 74 additions, 0 deletionssrc/box/schema.cc
- src/box/schema.h 33 additions, 1 deletionsrc/box/schema.h
- src/box/schema_def.h 23 additions, 0 deletionssrc/box/schema_def.h
- src/box/sequence.c 95 additions, 0 deletionssrc/box/sequence.c
- src/box/sequence.h 128 additions, 0 deletionssrc/box/sequence.h
- src/box/tuple.h 66 additions, 0 deletionssrc/box/tuple.h
Loading
Please register or sign in to comment