Skip to content
Snippets Groups Projects
  1. Dec 09, 2011
  2. Nov 29, 2011
  3. Nov 22, 2011
  4. Nov 18, 2011
  5. Nov 14, 2011
  6. Nov 12, 2011
  7. Nov 09, 2011
  8. Nov 03, 2011
  9. Nov 01, 2011
  10. Oct 13, 2011
    • Konstantin Osipov's avatar
      Lua: update the protocol description. · 64667ec0
      Konstantin Osipov authored
      Update ER_NO_SUCH_PROC, if the procedure doesn't exist,
      quote the procedure name, since it can be empty.
      64667ec0
    • Konstantin Osipov's avatar
      A fix and a test case for Bug#750658 · 58c6dd36
      Konstantin Osipov authored
      A fix and a test case for
      https://bugs.launchpad.net/tarantool/+bug/750658
      
      --background neither closes nor redirects stdin/stdout/stderr
      
      --background option didn't work properly, since stdin/stdout/
      stderr streams were left open and pointing to a terminal.
      
      This lead to a hang when tarantool was started from a
      shell script or over ssh.
      
      If --background option is given, we need to fork,
      try to create a pid file, close stdin/stdout/stderr
      and then initialize the logging
      subsystem.
      58c6dd36
  11. Sep 19, 2011
  12. Sep 15, 2011
  13. Sep 02, 2011
  14. Aug 31, 2011
  15. Aug 29, 2011
  16. Aug 25, 2011
    • Konstantin Osipov's avatar
      Lua: mature the implementation CALL command in the binary protocol. · 58f5c07e
      Konstantin Osipov authored
      Fix a bug when Lua transaction was rolled back
      twice when Lua procedure was invoked from CALL.
      
      Change the way arguments to and from CALL
      statement in the binary protocol are passed:
      we used to pass everything from the wire as a single
      binary blob. Now every field of the received
      tuple is passed in as a separate string argument.
      
      Everything passed back from Lua is converted to a tuple. This
      makes CALL response similar to one of SELECT.
      
      Improve box.pack() to convert its argument to integer when
      necessary. Add an argument count check to box.pack().
      Additionally, now box.pack() can be used to pack
      operations of 'UPDATE'.
      
      Use tarantool_lua_tostring() in iov_add_ret():
      this function is now used to convert return values to
      the binary protocol in box_lua.m. This is necessary
      if we try to send boolean or nil over the
      binary wire, since Lua C API lua_tostring()
      does not convert them.
      
      Add box.lua - a system Lua script
      compiled into Tarantool and containing a bunch
      of Lua code preloaded at startup.
      
      Populate box.lua with implementation
      of basic Lua functions:
      box.select(), box.update(), box.replace(),
      box.insert() (currently an alias for box.replace()),
      box.delete(). They are all wrappers around box.process().
      
      Move box_lua_init() to the beginning of mod_init(),
      since Lua in future can be used in recover().
      
      Fix a wrong assumption about the contents
      of Lua stack in iov_add_multret().
      
      Update sql.g Python SQL grammar to allow
      an empty argumeent list for procedure in CALL
      statement.
      
      Add initial documentation on Lua procedures.
      
      Add more Lua tests.
      
      Unrelated: rename INSERT to REPLACE, and UPDATE_FIELDS to
      UPDATE.
      Remove SELECT_LIMIT, which is not used any more.
      58f5c07e
  17. Jul 27, 2011
    • Konstantin Osipov's avatar
      Lua: add CALL command to the binary protocol. · 25be21ff
      Konstantin Osipov authored
      CALL accepts flags and a tuple (list of fields).
      
      Add CALL support to the sql.g parser (Python
      testing environment).
      
      Add two new error codes: ER_PROC_LUA (an
      error inside Lua procedure) and ER_NO_SUCH_PROC.
      
      Since so far there is no way to create a stored
      procedure (one needs to rebuild Tarantool to pre-load it),
      this addition has little practical use.
      25be21ff
  18. Jul 25, 2011
    • Konstantin Osipov's avatar
      Lua: code review. Add rudimentary Lua support. · 70f14ca3
      Konstantin Osipov authored
      Implement rudimentary Lua support in the administrative console.
      Remove exec module command, it's not used and we now
      have Lua for similar purposes.
      
      Add a first Lua module, "box", which
      has only one function -- "pack", and test it.
      'pack' is derived from box.tbuf module in the
      original Lua patch.
      
      Fix a bug in box-protocol.txt, tuple format
      description.
      
      Add a copyright header to include/errcode.h (unrelated).
      
      Implement a prototype for Lua initialization
      procedure: there is a function tarantool_lua_init(),
      which any code, core or modules, can call.
      tarantool_lua_init() calls mod_lua_init() to
      add module-specific Lua extentions.
      
      Fix a bug in mod/CMakeLists.txt, generate_admin_c
      CMake target didn't exist, so admin.m wasn't
      re-generated correctly when admin.rl was changed.
      70f14ca3
  19. Jul 14, 2011
    • Konstantin Osipov's avatar
      Implement blueprint delete-box-return-tuple · 07ec8166
      Konstantin Osipov authored
      In DELETE, support flag BOX_RETURN_TUPLE.
      
      A community request from Alexandre Kalendarev.
      
      In the new DELETE (21) command, one can specify
      delete flags. If BOX_RETURN_TUPLE is set, return
      the old (deleted) tuple to the client.
      
      Update doc/box-protocol.txt to reflect the new
      (21) DELETE and its extended response format.
      07ec8166
  20. Jul 13, 2011
    • Konstantin Osipov's avatar
      Various fixes: documentation, gitignore · b6b3c22b
      Konstantin Osipov authored
      Update the user guide with new links to configuration file,
      and changes to replication configuration parameters, now that
      feeder-in-core has been pushed.
      
      Add lua generated files to .gitignore
      b6b3c22b
  21. Jun 28, 2011
  22. Jun 27, 2011
  23. Jun 24, 2011
    • Konstantin Osipov's avatar
      https://blueprints.launchpad.net/tarantool/+spec/client-error · 9b3d0a76
      Konstantin Osipov authored
      Send error messages to the client.
      
      Before this patch, Tarantool would only send an error
      code to the client, but record all the details in its error log.
      
      This patch extends the client/server protocol and adds
      error text to it. This text can now contain not only
      a staple message that corresponds to the error, but
      problem-related additional information, such as namespace id,
      field number, etc.
      
      All errors still can be logged in the error log, but
      not all of them need to be. For errors, which are only
      sent to the client, this patch uses ClientError exception
      class. Errors which also need to be logged in the error log
      must use LoggedError exception class.
      
      To choose between the two, the following rule of thumb is applied:
      - client application errors, which, generally, can be non-errors at all,
        such as access to a non-existing namespace, index or field, or
        access to a locked tuple are not logged
      - execution and protocol errors, such as an error writing to disk,
      an message that doesn't follow the protocol format, is logged.
      
      For the most common error, ER_TUPLE_IS_RO, we do not use
      string template to reduce CPU cycles necessary to produce this error
      (on my machine one can raise ~200 000 exceptions per second, which is not
      too much).
      
      An addition to the above, this patch renames error codes, to
      make them shorter (ERR_CODE_* -> ER_*) and rewrites the iproto.m
      client connection loop to make it a trifle more efficient.
      
      This patch also fixes a couple of bugs:
      - in exception.m, [tnt_Exception alloc]
      when we reused the old exception class, we did
      not reset its 'isa' pointer, which could lead to a crash
      when a message with a different signature was sent to
      it.
      
      - in box_dispatch (renamed from box_dispach),
      when logging for slow commands was done, txn->op could
      already be overwritten by txn_commit()/txn_abort().
      
      A comment on the naming scheme: prefixing every Tarantool
      piece of method/data structure with tnt_ would lead
      to very bloated code. So in this patch
      I decided to reduce the use this
      prefix to the client library code and some very
      generic names only.
      9b3d0a76
  24. Jun 15, 2011
  25. Jun 10, 2011
  26. Jun 09, 2011
  27. Jun 08, 2011
    • Konstantin Osipov's avatar
      User guide: start pruning tarantool.wiki · 05de3503
      Konstantin Osipov authored
      Start pruning Tarantool wiki on github, and add documentation
      on Tarantool process title to the user guide, since
      it is present on the wiki but not in the user guide.
      
      While at it, make the process title more lookalike on Linux
      and FreeBSD, and rename some of the (what looks to me as) unclear
      process titles.
      The documentation reflects the new naming scheme already.
      05de3503
  28. Jun 07, 2011
  29. Jun 06, 2011
Loading