Skip to content
Snippets Groups Projects
  1. Sep 09, 2011
  2. Sep 06, 2011
  3. Sep 02, 2011
  4. Aug 31, 2011
  5. Aug 30, 2011
  6. Aug 29, 2011
  7. Aug 27, 2011
  8. Aug 25, 2011
    • Konstantin Osipov's avatar
    • 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
  9. Aug 22, 2011
  10. Aug 19, 2011
    • Konstantin Osipov's avatar
      Lua: improve the way Lua procedures return results. · 6df557bb
      Konstantin Osipov authored
      Instead of using "print" and fiber->iov
      to return results to the client, change the Lua procedures
      implementation to simply send to the client all return values
      of a procedure. A procedure, in turn, can return tuples, integers
      (and, in future, strings, Lua tables or whatever).
      
      This allows nicely to call one procedure from another, and use its
      results in Lua, and call the very same procedure from the binary
      protocol, and still be able to process its results on the client.
      6df557bb
    • Konstantin Shulgin's avatar
      feature 'master-valgrind': · ef1938db
      Konstantin Shulgin authored
      Test enviroment:
        - old valgrind.sup file was deleted (not needed any more).
        - unused options in suite.ini files was removed.
      ef1938db
    • Konstantin Shulgin's avatar
      feature 'master-valgrind': · a19ffe48
      Konstantin Shulgin authored
      Test enviroment:
        - checking empty tests list was added =;
        - valgrind suppressions routine was updated.
      a19ffe48
    • Konstantin Osipov's avatar
      Lua: prepare to intercept box.process results into Lua. · ccd61773
      Konstantin Osipov authored
      Remove dead code from txn_cleanup(), which
      would check that txn_cleanup() is not called twice:
      this code is from the time when we used
      
      Rename txn_abort() to txn_rollback().
      Rename txn_alloc() to txn_begin().
      
      Introduce box_out interface, used to
      send box results to the client. Lua uses
      this interface to intercept returned tuples
      and push as return values to Lua stack.
      
      Make iov_add/iov_dup inline, as they used
      to be. They are now mostly used from within
      callbacks.
      
      Make txn_commit()/txn_rollback() non-static
      as they are now used in memcached.m.
      
      Introduce memcached_get(): implementation
      of Memcached GET statement. Wrap memcached_get()
      in proper txn_begin()/txn_commit()/txn_rollback(),
      and handle failure of memcached_get() by
      rolling back the transaction.
      Split BOX_QUIET to two flags: BOX_GC_TXN and
      BOX_QUIET.
      BOX_QUIET had a side-effect that txn_cleanup()
      was done immediately, rather than by fiber_gc().
      This had the side effect that txn_commit() could
      not be used in memcached_get(), because in
      memcached_get() we need both BOX_QUIET and txn_cleanup()
      called from fiber_gc().
      
      Now that we have box_out interface, eliminate
      BOX_QUIET flag completely, and use box_out_quiet
      set of callbacks instead.
      ccd61773
    • Konstantin Shulgin's avatar
      feature 'master-valgrind': · 73072a32
      Konstantin Shulgin authored
      Test enviroment:
        - start/stop server routine was updated.
      Tests:
        - fix double start srvers.
      73072a32
    • Dmitry Simonenko's avatar
      Merge branch 'master-valgrind' of github.com:mailru/tarantool into master-valgrind · 7802fb52
      Dmitry Simonenko authored
      Conflicts:
      	test/box/valgrind.sup
      
      valgrind.sup path updated
      7802fb52
    • Dmitry Simonenko's avatar
      * valgrind.sup path updated · abdef70e
      Dmitry Simonenko authored
      abdef70e
    • Dmitry Simonenko's avatar
      * cfg leaks fix · 57c8e975
      Dmitry Simonenko authored
      * valgrind suppresions update
      57c8e975
  11. Aug 18, 2011
    • Konstantin Shulgin's avatar
      feature 'master-valgrind': · b0ff80bf
      Konstantin Shulgin authored
      Test envirment:
       - stop server routine was updated;
       - valgring start options was updated.
      Valgrind:
       - suppressions was updated.
      b0ff80bf
    • Konstantin Shulgin's avatar
      feature 'master-valgrind': · b029a92a
      Konstantin Shulgin authored
      * process handle routines in test enviroment was updated.
      b029a92a
    • Konstantin Osipov's avatar
      Update libcoro to 6.06. Fix a bug with error propagation in Lua. · dc334a0c
      Konstantin Osipov authored
      Fix a bug when Tarantool exceptions were intercepted
      by Lua in lua_pcall(), and converted to Lua errors.
      Let Tarantool exceptions pass freely through Lua, by using
      lua_call() instead of lua_pcall().
      
      In case of any Lua error lua_call() aborts execution of the
      entire process. Register lua_atpanic that converts
      lua errors to Tarantool exception ER_PROC_LUA.
      
      Unwinding the stack in this manner didn't work properly
      with libcoro 6.0, which we were using. Update
      libcoro library to version 6.06 to fix this problem.
      dc334a0c
  12. Aug 17, 2011
Loading