1. 24 Apr, 2017 11 commits
  2. 23 Apr, 2017 1 commit
  3. 21 Apr, 2017 8 commits
    • Igor Babaev's avatar
      Fixed the bug mdev-12519. · 54a995cd
      Igor Babaev authored
      This patch fixed some problems that occurred with subqueries that
      contained directly or indirectly recursive references to recursive CTEs.
      
      1. A [NOT] IN predicate with a constant left operand and a non-correlated
      subquery as the right operand used in the specification of a recursive CTE
      was considered as a constant predicate and was evaluated only once.
      Now such a predicate is re-evaluated after every iteration of the process
      that produces the records of the recursive CTE.
      2. The Exists-To-IN transformation could be applied to [NOT] IN predicates
      with recursive references. This opened a possibility of materialization
      for the subqueries used as right operands. Yet, materialization
      is prohibited for the subqueries if they contain a recursive reference.
      Now the Exists-To-IN transformation cannot be applied for subquery
      predicates with recursive references.
      
      The function st_select_lex::check_subqueries_with_recursive_references()
      is called now only for the first execution of the SELECT.
      54a995cd
    • Marko Mäkelä's avatar
      Fix a crash when page_compression fails during IMPORT TABLESPACE · 14d12488
      Marko Mäkelä authored
      fil_compress_page(): Check for space==NULL.
      14d12488
    • Marko Mäkelä's avatar
      11f772fa
    • Marko Mäkelä's avatar
      MDEV-12545 Reduce the amount of fil_space_t lookups · 0871a00a
      Marko Mäkelä authored
      buf_flush_write_block_low(): Acquire the tablespace reference once,
      and pass it to lower-level functions. This is only a start; further
      calls may be removed.
      
      fil_decompress_page(): Remove unsafe use of fil_space_get_by_id().
      0871a00a
    • Marko Mäkelä's avatar
      MDEV-12467 encryption.create_or_replace hangs during DROP TABLE · b66e15ec
      Marko Mäkelä authored
      fil_crypt_thread(): Do invoke fil_crypt_complete_rotate_space()
      when the tablespace is about to be dropped. Also, remove a redundant
      check whether rotate_thread_t::space is NULL. It can only become
      NULL when fil_crypt_find_space_to_rotate() returns false, and in
      that case we would already have terminated the loop.
      
      fil_crypt_find_page_to_rotate(): Remove a redundant check for
      space->crypt_data == NULL. Once encryption metadata has been
      created for a tablespace, it cannot be removed without dropping
      the entire tablespace.
      b66e15ec
    • Marko Mäkelä's avatar
      Fix some InnoDB type mismatch · 47141c9d
      Marko Mäkelä authored
      On 64-bit Windows, sizeof(ulint)!=sizeof(ulong).
      47141c9d
    • Marko Mäkelä's avatar
      MDEV-12488 Remove type mismatch in InnoDB printf-like calls · 5684aa22
      Marko Mäkelä authored
      Alias the InnoDB ulint and lint data types to size_t and ssize_t,
      which are the standard names for the machine-word-width data types.
      
      Correspondingly, define ULINTPF as "%zu" and introduce ULINTPFx as "%zx".
      In this way, better compiler warnings for type mismatch are possible.
      
      Furthermore, use PRIu64 for that 64-bit format, and define
      the feature macro __STDC_FORMAT_MACROS to enable it on Red Hat systems.
      
      Fix some errors in error messages, and replace some error messages
      with assertions.
      Most notably, an IMPORT TABLESPACE error message in InnoDB was
      displaying the number of columns instead of the mismatching flags.
      5684aa22
    • Marko Mäkelä's avatar
      MDEV-12534 Use atomic operations whenever available · 039a299b
      Marko Mäkelä authored
      Define UNIV_WORD_SIZE as a simple alias to SIZEOF_SIZE_T.
      In MariaDB 10.0 and 10.1, it was incorrectly defined as 4 on
      64-bit Windows.
      
      MONITOR_OS_PENDING_READS, MONITOR_OS_PENDING_WRITES: Enable by default.
      
      os_n_pending_reads, os_n_pending_writes: Remove.
      Use the monitor counters instead.
      039a299b
  4. 20 Apr, 2017 1 commit
  5. 19 Apr, 2017 4 commits
    • Daniel Black's avatar
      MDEV-12453: AWS SDK version failed to build on OSX · 9a91d743
      Daniel Black authored
      Update AWS SDK version from 1.0.8 to 1.0.100
      
      Commit b64910ce (MDEV-12453)
      enabled AWS_SDK to build correctly on buildbot.
      
      Travis still had build faults like below despite many common elements
      between the builds;
      
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cstring:79:9: error: no member named 'strcoll' in the global namespace; did you mean 'strtoll'?
      [ 24%] Building CXX object storage/rocksdb/CMakeFiles/rocksdblib.dir/rocksdb/db/internal_stats.cc.o
      using ::strcoll;
            ~~^
      /usr/include/stdlib.h:169:3: note: 'strtoll' declared here
               strtoll(const char *__str, char **__endptr, int __base);
               ^
      9a91d743
    • Marko Mäkelä's avatar
    • Marko Mäkelä's avatar
      MDEV-12123 Page contains nonzero PAGE_MAX_TRX_ID · d0ef1aaf
      Marko Mäkelä authored
      When MDEV-6076 repurposed the field PAGE_MAX_TRX_ID, it was assumed
      that the field always was 0 in the clustered index of old data files.
      This was not the case in IMPORT TABLESPACE (introduced in MySQL 5.6
      and MariaDB 10.0), which is writing the transaction ID to all index
      pages, including clustered index pages.
      
      This means that on a data file that was at some point of its life
      IMPORTed to an InnoDB instance, MariaDB 10.2.4 or later could interpret
      the transaction ID as a persistent AUTO_INCREMENT value.
      
      This also means that future changes that repurpose PAGE_MAX_TRX_ID
      in the clustered index may cause trouble with files that were imported
      at some point of their life.
      
      There is a separate minor issue that InnoDB is writing PAGE_MAX_TRX_ID
      to every secondary index page, even though it is only needed on leaf
      pages. From now on we will write PAGE_MAX_TRX_ID as 0 to non-leaf pages,
      just to be able to keep stricter debug assertions.
      
      btr_root_raise_and_insert(): Reset the PAGE_MAX_TRX_ID field on non-root
      pages of the clustered index, and on the no-longer-leaf root page of
      secondary indexes.
      
      AbstractCallback::is_root_page(): Remove. Use page_is_root() instead.
      
      PageConverter::update_index_page(): Reset the PAGE_MAX_TRX_ID to 0
      on other pages than the clustered index root page or secondary index
      leaf pages.
      d0ef1aaf
    • Jacob Mathew's avatar
      MDEV-10355 Weird error message upon CREATE TABLE with DEFAULT · 0b52b28b
      Jacob Mathew authored
      Fixed handling of default values with cached temporal functions so that the
      CREATE TABLE statement now succeeds.
      Fixed virtual column session cleanup.
      Fixed the error message.
      Added quoting of date/time values in cases when this was omitted.
      Added a test case in default.test.
      Updated test result files.
      0b52b28b
  6. 17 Apr, 2017 6 commits
  7. 11 Apr, 2017 1 commit
    • Daniel Black's avatar
      Travis: Test more suites, latest OSX · eecce3d7
      Daniel Black authored
      Remove clang-3.8 which doesn't have a repository on apt.llvm.org any
      more.
      
      For OSX, xcode8.3 is explicitly specified.
      
      /usr/local/Cellar is used as a cache repository to save brew install
      time on OSX (and /usr/local was too big).
      
      Debian autobake.sh is moved to a matrix include.
      
      Other branches of the matrix build test other test suites.
      An Ubuntu galera is downloaded and used in the test suite.
      
      TYPE=RelWithDebInfo used with the test to provide backtraces with line
      numbers when crashes occur.
      
      Build of PLUGIN_AWS_KEY_MANAGEMENT enabled in build.
      
      Code supporting TYPE=Debug and -DWITH_ASAN=ON included by not enabled
      due to large numbers of errors.
      
      Running more tests in parallel (6) as container based builds seem to
      support them. The test case timeout has been set to 2 minutes as large
      stalls will put test cases over 50 minute interval.
      
      ccache enabled where possible. Linux clang builds don't use them as the
      minimum CMake version isn't there.
      eecce3d7
  8. 09 Apr, 2017 1 commit
  9. 07 Apr, 2017 7 commits