- Jul 11, 2017
-
-
Konstantin Osipov authored
* better messages * fold sql_prepare() * rewrite the message decode
-
Konstantin Osipov authored
-
Vladislav Shpilevoy authored
Add iproto_execute command to get not only sql rows as the result, but also sql meta data about each result column. Make SQLITE_LIMIT_VARIABLE_NUMBER be static SQLITE_LIMIT_VARIABLE_NUMBER is the run time limit of the variable count in the query. The Tarantool doesn't support dynamic limits for such things. Let's make this limit be enum instead of value in the limits array (struct sqlite3.aLimit). Part of #2285.
-
Vladislav Shpilevoy authored
Raise syntax error in a case of empty requests. Update sql-tokenizer to support exising tests.
-
khatskevich authored
Test alias.test.lua is fully disabled, see #2582 Part of #2381
-
- Jul 10, 2017
-
-
Georgy Kirichenko authored
Iconv is a library to convert a sequence of characters in one character encoding to a sequence of characters in another character encoding. Example below converts utf-16 big endian string into utf-8 string: convertor = require('iconv').new('UTF-16BE', 'UTF-8') converted_string = convertor(source_string) Closes #2587
-
- Jul 09, 2017
-
-
Vladimir Davydov authored
It belongs there, really.
-
- Jul 08, 2017
-
-
Georgy Kirichenko authored
Before this patch, the new space, created by alter specification, would be put into space cache only after successful WAL write. This behaviour is not linearizable: on a replica, the WAL is played sequentially, and the order of events could differ from the master. Besides, it could crash, as demonstrated in gh-2074 test case. Since we use a cascading rollback for all transactions on WAL write error, it's OK to put a space into space cache before WAL write, so that the new transactions apply to the new space. This patch does exactly that. All subsequent requests are executed against the new space. This patch also removes on_replace trigger in the old space, since all checks against the new tuple format are performed using the new space. Fixes #2074.
-
- Jul 07, 2017
-
-
Bulat Niatshin authored
* UTF-16 support removed * Tests with UTF-16* cases removed Closes #2295
-
Eugine Blikh authored
closes gh-2576
-
- Jul 06, 2017
-
-
Konstantin Osipov authored
* update comments * add a test case for altering a primary key on the fly * rename AddIndex to CreateIndex * factor out common code into a function
-
Georgy Kirichenko authored
Non destructive swap_index_def function sould be used because memtx_tree stores a pointer to an index_def used while tree creation. Fixed #2570
-
Kirill Yukhin authored
Use `net.box` instead of `console`.
-
Kirill Yukhin authored
LLVM is more eager for frame size than GCC Current maximal call chain length may corrupt stack then. Reduce maximal call chain length to 30. Related to #2550
-
Kirill Yukhin authored
If after recovery first client to invoke SQL differs from ADMIN, then initialization of SQL subsystem will fail due to insufficient access rights. Problem is that SQL invokes create_from_tuple() to fill space_def structure, which in turn verifies access right. As far as SQL is a static part of Tarantool, there's no sense to initialize the system by demand. Change performs data dictionary initialization upon config completion. Regression test added as well. Closes #2483
-
- Jul 04, 2017
-
-
Vladislav Shpilevoy authored
Needed for #2285
-
- Jul 03, 2017
-
-
Kirill Yukhin authored
* Right now Tarantool runs compilation of a query on top of fiber's stack so, so number of triggeres compilation of which was triggered by chain should be limited. Introduce dedicated global variable which decreases each time new compilation in back track is initiated. Error if zero is reached. Set it to limit @ parser * Add test for verious cases * Fix out of order build for maintainer mode * Regenerate parser Closes #2550
-
Kirill Yukhin authored
Right now SQL query compiler is run on top of fiber's stack, which is limited to 64KB by default, so maximum number of entities in compound SELECT statement should be less than 50 (verified by experiment) or stack guard will be triggered. In future we'll introduce heuristic which should understand that query is 'complex' and run compilation in separate thread with larger stack. This will also allow us not to block Tarantool while compiling the query. Closes #2548
-
khatskevich authored
This is a first implentation of box.internal.sql_create_function It works properly on limited set of cases. The main purpose for this feature by now is tests. Some test cases relaying on this feature were enabled. Part of #2233
-
- Jun 29, 2017
-
-
Vladimir Davydov authored
If a vylog record doesn't get flushed to disk due to an error, objects it refers to (index->key_def, range->begin and range->end) may get destroyed, resulting in a crash. To avoid that, we must copy those objects to vylog buffer. Closes #2532
-
Vladimir Davydov authored
- Remove tx and cursor latencies as they are useless - they actually account how long a tx/cursor was open, not latencies. - Remove vy_stat->get_latency as it doesn't account latency of select, besides we now have per index read latency. - Remove vy_stat->dumped_statements and dump_total as these statistics are reported per index as well. - VY_STAT_TX_OPS is currently unused (always 0). Let's use it for accounting the total number of statements committed in tx instead of vy_stat->write_count.
-
Vladimir Davydov authored
index.info() is supposed to show index stats, not options. box.space.<space_name>.index.<index_name>.options looks like a better place for reporting index options. Needed for #1662
-
Vladimir Davydov authored
Replace box.info.vinyl().performance.upsert_{squashed,applied} with per index index.info().upsert.{squashed,applied}. Needed for #1662
-
Eugine Blikh authored
closes gh-2516
-
- Jun 28, 2017
-
-
khatskevich authored
* Changes to sqltester: - Change lsearch to be closer to tcl implementation: return index of first match or return -1 - Make execsql2 work with multistatements * Converted tests include cases for large (64b) integers Part of #2381
-
- Jun 27, 2017
-
-
Konstantin Osipov authored
-
Vladimir Davydov authored
Replace box.info.vinyl().performance.iterator.{run,mem} global counters with the following per index counters: memory iterator lookup # number of lookups in the memory tree get # number of statements returned by mem iterator rows bytes disk iterator lookup # number of lookups in the page index get # number of statements returned by run iterator rows bytes bloom # number of times bloom filter hit # allowed to avoid a disk read miss # failed to prevent a disk read read # number of statements actually read from disk rows bytes bytes_compressed pages Needed for #1662
-
Vladimir Davydov authored
It's useless - it only checks that certain counters are present, but doesn't give a damn about what they show. At the same time, I have to update its output every time I modify vinyl statistics, which I'm doing pretty often these days. So let's ditch it - I'll rewrite it from scratch after I'm done reworking vinyl statistics.
-
Konstantin Osipov authored
gh-2520: add comments explaining the test case for gh-2520 (upsert caching).
-
Vladislav Shpilevoy authored
Use a tuple cache to turn an UPSERT in the PREPARE, if the cache contains a tuple with the exact same key. The UPSERT can be applied to the cached tuples, because 1. The cache always contains only REPLACE statements; 2. The cache always contains only newest statements. Closes #2520
-
Vladislav Shpilevoy authored
When an UPSERT is prepared, it can use a cached statement to be turned into REPLACE. But now it doesn't use the cache. Test for #2520
-
- Jun 26, 2017
-
-
Vladimir Davydov authored
-
- Jun 23, 2017
-
-
Roman Tsisyk authored
Malformed MessagePack can cause `int k` counter overflow inside mp_check()/mp_next(). See https://github.com/tarantool/nginx_upstream_module/issues/79 See https://github.com/rtsisyk/msgpuck/issues/16 Closes #2540
-
- Jun 22, 2017
-
-
Konstantin Osipov authored
-
Vladislav Shpilevoy authored
-
- Jun 21, 2017
-
-
Roman Tsisyk authored
Follow up 15a9af26
-
Roman Tsisyk authored
exp2(64) <= UINT64_MAX is true due to type conversion. Use exp2(64) instead of UINT64_MAX (optimized out even on -O0). Fixes buggy box/indices_any_type.test.lua on x86_64 Closes #2472
-
Roman Tsisyk authored
ffi.new('long', x) and ffi.new('unsigned long', x) uses arbitratry user-defined ctypeid instead of built-in CTID_INT32 and CTID_UINT32. Our tonumber64() implementation is not ready for that. Remove these two test cases and move forward. Nobody cares. Fixes box/misc.test.lua on i386 and armhf Follow up #2459
-
Vladimir Davydov authored
It is unsafe, because system spaces use triggers to keep records in sync with internal objects while space truncation doesn't invoke triggers. Closes #2523
-
Vladimir Davydov authored
Currently, space.create must insert an entry into 'truncate' system space - if it does not, space.truncate won't work. This is incontinent, as it makes it impossible to create spaces by simply inserting a tuple into the 'space' system space via iproto API. So let's insert entries into truncate space lazily, on the first space truncation. Closes #2524
-