Skip to content
Snippets Groups Projects
  1. Apr 24, 2015
    • Konstantin Osipov's avatar
      gh-812: session.sync() · 490a73ed
      Konstantin Osipov authored
      Provide access to iproto sync via session.sync() binding.
      
      The value is valid only at start of a Lua call before the first yield,
      after which it may be replaced with a sync from another request
      running on the same session.
      490a73ed
  2. Feb 20, 2015
  3. Dec 17, 2014
  4. Oct 03, 2014
  5. Sep 26, 2014
    • Roman Tsisyk's avatar
      Refactor URI usage and remove hard-coded IP addreses from tests · 180f8bf7
      Roman Tsisyk authored
      Tarantool started to use getaddrinfo() to find suitable address for
      binding both for IPROTO and CONSOLE ports. A hostname can be resolved to
      various addresses families, depending on user settings. For example, all
      moderns systems resolve 'localhost' to '::1' by default. This creates a
      problem if one subsystem binds to '127.0.0.1' and some other tries to
      connect '::1'. This patch unify hardcoded names and addresses in entire test
      suite to use the same value. This is pre-requisite for #447, #368 and other
      URI-related patches.
      
      Other changes:
      
        * console.listen() now properly handles address arguments
        * console.listen() re-based on socket.tcp_server() code
      180f8bf7
  6. Aug 26, 2014
  7. Aug 04, 2014
  8. Jul 29, 2014
  9. Jul 17, 2014
  10. Jul 11, 2014
  11. Jun 17, 2014
  12. Jun 02, 2014
    • Roman Tsisyk's avatar
      Remove 'box' prefix from module names · b13e4826
      Roman Tsisyk authored
      All bultin modules can be loaded with require('modulename')
      instead of require('box.modulename')
      
      Other changes:
      
       * _G.box is not initialized from tarantool_lua_init() anymore
       * box.info, box.stat, box.snapshot moved to src/box/lua
       * box.coredump() => coredump()
       * box.xxx = require('box.xxx') removed from tests
      b13e4826
  13. May 22, 2014
    • Roman Tsisyk's avatar
      Lua modularization - wrap built-in modules to require() · 5f5982d6
      Roman Tsisyk authored
      box.ipc         => require('box.ipc')
      box.fiber       => require('box.fiber')
      box.session     => require('box.session')
      box.errno       => require('box.errno')
      box.socket      => require('box.socket')
      box.digest      => require('box.digest')
      box.cjson       => require('box.json'), require('cjson')
      yaml            => require('box.yaml'), require('yaml')
      msgpack         => require('box.msgpack')
      interactive     => require('box.interactive')
      
      Closes #139
      5f5982d6
  14. Mar 11, 2014
    • Konstantin Osipov's avatar
      gh-162, gh-163 Authentication and access control · 6e2cf75f
      Konstantin Osipov authored
      Add new system spaces _user and _priv to store users,
      their passwords and their privileges.
      Implement an authentication request in iproto protocol
      
      Add a system space _func to store presistent information
      about Lua functions. A function is now a subject
      to ownership and privilege control.
      
      Use MySQL-style sha1-double-hashing authentication by default.
      
      Implement new Lua functions:
      
      box.session.su()
      box.session.uid()
      box.schema.user.create()
      box.schema.user.drop()
      box.schema.user.grant()
      box.schema.user.revoke()
      box.schema.func.create()
      box.schema.func.drop()
      
      Store space creator in space definition.
      
      What this patch doesn't implement:
      
      - privilege checks in replication
      - authentication of replication slaves
      - exhaustive test coverage
      6e2cf75f
  15. Feb 27, 2014
    • Roman Tsisyk's avatar
      Implement a new version of select() API · 199c0a22
      Roman Tsisyk authored
      This patch introduces backward-incompatible changes to select()
      and adds couple new methods:
      
        * index:select(key) -> tuple, tuple, ... was changed to
          index:select(key, opts = {}) -> { tuple } where opts can be
      
             - iterator = ALL if key == nil or key == {} | EQ otherwse
             - offset = 0
             - limit = unlimited
      
        * index:get(key) -> tuple | nil | error on more than one tuple
          a wrapper for select() to get the single tuple
      
        * space:put(tuple) -> tuple
          an alias for space:replace() (to provide integrity with get())
      
      Test suite, box.space and box.net.box API were also updated to
      meet changes.
      199c0a22
  16. Jan 23, 2014
    • Konstantin Osipov's avatar
      Remove ellipsis in box Lua API · b1a6f0dd
      Konstantin Osipov authored
      Change:
          box.space.name:insert() to box.space.name:insert{}
          box.space.name:replace() to box.space.name:replace{}
          box.space.name:delete() to box.space.name:delete{}
          box.space.name:auto_increment() to box.space.name:auto_increment{}
          box.space.name:select() to box.space.name:select{}
          box.space.name:update() now requires an explicit key and ops
          table.
      
      Remove ellipsis from wrappers which don't strictly need it.
      Remove backward-compatible next_equal/next/prev_equal/next/prev
      iteration functions.
      Cleanup hot_standby.test
      b1a6f0dd
  17. Jan 22, 2014
  18. Dec 03, 2013
  19. Nov 27, 2013
  20. Nov 13, 2013
    • Roman Tsisyk's avatar
      Replace BER encoding with MsgPack everywhere · 37fef8eb
      Roman Tsisyk authored
      This commit completely changes the data format used by Tarantool.
      A new binary serialization format called MsgPack (http://msgpack.org)
      has been introduced to store tuples, keys, request members, etc.
      MsgPack supports various data types and hierarchical structures. Since
      tuple & keys format has been changed, the binary protocol is no more
      compatible with 1.5 clients.
      
      The list of major changes:
      
       * Add MsgPack library and unit tests as a submodule
       * Add Lua bindings for the library and unit tests for it
       * Update IPROTO to use MsgPack for all kinds of requests
       * Change struct tuple to use MsgPack Array instead of BER-encoded fields
       * Remove fixed offsets from tuples (cannot be supported by MsgPack)
       * Replace const char *key, key_part pairs with MsgPack Arrays
       * Rework comparators and indicies to support MsgPack'ed fields
       * Merge NUM and NUM64 types into the one single type (NUM)
       * Rewrite box_lua.cc functions to support MsgPack instead of BER
       * Rewrite tuple_update to support MsgPack instead of BER
       * Totaly remove varint32 functions from all modules
       * Rework lua_tofield and YAML encoder to properly support Lua tables
       * Modifie bootstrap files and system spaces to use the new format
       * Add MsgPack support to the test system via msgpack-python
       * Update tests to use proper data types and remove unneeded box.packs
      
      Tarantool 1.6 is the world's first MsgPack-based database!
      37fef8eb
  21. Sep 05, 2013
  22. Sep 04, 2013
  23. Sep 03, 2013
  24. Jul 14, 2013
  25. Jan 09, 2013
    • Konstantin Osipov's avatar
      Implement box.session, on_connect and on_disconnect triggers. · db6d2c84
      Konstantin Osipov authored
      Since connect/disconnect events in iproto run outside
      fiber context, queue execution of on_connect/on_disconnect
      triggers through the request queue. Generalize the request
      queue for that purpose.
      
      Implement a framework for on_connect/on_disconnect triggers
      and Lua bindings for it.
      
      Add tests and docs.
      db6d2c84
Loading