Skip to content
Snippets Groups Projects
  1. Mar 09, 2023
    • Denis Smirnov's avatar
      fix: MR review · fbe57a71
      Denis Smirnov authored
      fbe57a71
    • Denis Smirnov's avatar
    • Denis Smirnov's avatar
      refactoring: insert redistribution · a216d170
      Denis Smirnov authored
      Previosly we had a very complicated logic for INSERT operator:
      we always generated a motion node under INSERT and generated
      bucket_id with a special motion command in this virtual table.
      As a side effect we made motions even for those INSERTs that was
      possible to execute locally.
      
      Another problem was caused by the column type derivation in
      INSERT .. VALUES .. expressions. If any column in the first row
      contained NULL it confuses Tarantool and it returns scalar (or
      even boolean!) type instead. And there is no projection type cast
      in Tarantool's insertion. As a result we often had type mismatch
      errors in INSERT .. VALUES .. queries.
      
      The solution is to rewrite this weird logic from the scratch.
      Now we rewrite the tree somehow like this:
      
      insert into t1 (a, b) values (1, 2)
      
      =>
      
      insert into t1 (a, b, bucket_id)
      select
        COL_1,
        COL_2,
        bucket_id(
          coalesce(cast(COL_2 as string), '')
          || coalesce(cast(COL_1 as string), '')
        )
      from (
        select
          cast(COLUMN_1 as integer) as COL_1,
          cast(COLUMN_2 as unsigned) as COL_2
        from (values (1, 2))
      )
      a216d170
    • ms.evilhat's avatar
      chore: actualize license · 09c2374b
      ms.evilhat authored
      09c2374b
    • Alexander Tolstoy's avatar
      docs: add railroad diagrams (eBNF) for Sbroad queries · 093ddb52
      Alexander Tolstoy authored and Denis Smirnov's avatar Denis Smirnov committed
      093ddb52
    • Alexander Tolstoy's avatar
      doc: update Readme docs · ca630799
      Alexander Tolstoy authored and Denis Smirnov's avatar Denis Smirnov committed
      ca630799
  2. Feb 28, 2023
  3. Feb 27, 2023
  4. Feb 20, 2023
  5. Feb 15, 2023
  6. Feb 14, 2023
  7. Feb 08, 2023
  8. Feb 07, 2023
    • ms.evilhat's avatar
      feat: add arithmetic expressions to projection · 38262373
      ms.evilhat authored
      we need to support arbitrary expressions consisting of logical, comparison and arithmetic operations and as sub-expression of aggregates. previously we added arithmetic exprs to selection ans join. this commit supports arithmetic (and only arithmetic) as a part of projection
      38262373
  9. Feb 03, 2023
  10. Feb 02, 2023
  11. Jan 31, 2023
  12. Jan 30, 2023
  13. Jan 25, 2023
    • Denis Smirnov's avatar
      fix: parameter binding · 87b26fe2
      Denis Smirnov authored
      
      We had a problem with the queries like:
      
      select * from t1 where (a, b) in (select c, d from ...)
      
      The root of the problem was that in a case of multiple references
      to the subquery ((a, b) in (ref_c_sq, ref_d_sq)) we tried to bind
      parameters multiple times that caused subtraction overflow and UB.
      As a fix we stop binding parameters more than once.
      
      Co-authored-by: default avatarms.evilhat <ms.evilhat@gmail.com>
      87b26fe2
  14. Jan 24, 2023
    • Denis Smirnov's avatar
      fix: trasaction already started error · 1befa37f
      Denis Smirnov authored
      Remove redundant transaction start from the open telemetry's spans
      in the code. There is no sense in it at the moment (seems like it
      was added while prototyping tarantool space as a storage for the
      per-fiber traces... but we gave this idea up and switched to the
      custom Rust implementation). But if we start a transaction manually
      and call sbroad execute() method, we end up with transaction already
      started error. So, remove the transaction start wrappers and make
      nested transactions work.
      1befa37f
  15. Jan 23, 2023
  16. Jan 20, 2023
Loading