1. 26 Jun, 2016 1 commit
  2. 23 Jun, 2016 1 commit
  3. 22 Jun, 2016 4 commits
    • Monty's avatar
      MDEV-10219 rpl.rpl_parallel_temptable failed in buildbot: Assertion `!table ||... · ec38c7e6
      Monty authored
      MDEV-10219 rpl.rpl_parallel_temptable failed in buildbot: Assertion `!table || !table->in_use || table->in_use == _current_thd()' failed
      
      Problem was that table->in_use was not properly set when dropping a temporary for the slave.
      ec38c7e6
    • Monty's avatar
      838205f0
    • Monty's avatar
      MDEV-10138 Support for decimals up to 38 digits · 34eb10e4
      Monty authored
      Decimals with float, double and decimal now works the following way:
      
      - DECIMAL_NOT_SPECIFIED is used when declaring DECIMALS without a firm number
        of decimals.  It's only used in asserts and my_decimal_int_part.
      - FLOATING_POINT_DECIMALS (31) is used to mark that a FLOAT or DOUBLE
        was defined without decimals. This is regarded as a floating point value.
      - Max decimals allowed for FLOAT and DOUBLE is FLOATING_POINT_DECIMALS-1
      - Clients assumes that float and double with decimals >= NOT_FIXED_DEC are
        floating point values (no decimals)
      - In the .frm decimals=FLOATING_POINT_DECIMALS are used to define
        floating point for float and double (31, like before)
      
      To ensure compatibility with old clients we do:
      
      - When storing float and double, we change NOT_FIXED_DEC to
        FLOATING_POINT_DECIMALS.
      - When creating fields from .frm we change for float and double
        FLOATING_POINT_DEC to NOT_FIXED_DEC
      - When sending definition for a float/decimal field without decimals
        to the client as part of a result set we convert NOT_FIXED_DEC to
        FLOATING_POINT_DECIMALS.
      - variance() and std() has changed to limit the decimals to
        FLOATING_POINT_DECIMALS -1 to not get the double converted floating point.
        (This was to preserve compatiblity)
      - FLOAT and DOUBLE still have 30 as max number of decimals.
      
      Bugs fixed:
      
      variance() printed more decimals than we support for double values.
      
      New behaviour:
      - Strings now have 38 decimals instead of 30 when converted to decimal
      - CREATE ... SELECT with a decimal with > 30 decimals will create a column
        with a smaller range than before as we are trying to preserve the number of
        decimals.
      
      
      Other changes
      - We are now using the obsolete bit FIELDFLAG_LEFT_FULLSCREEN to specify
        decimals > 31
      - NOT_FIXED_DEC is now declared in one place
      - For clients, NOT_FIXED_DEC is always 31 (to ensure compatibility).
        On the server NOT_FIXED_DEC is DECIMAL_NOT_SPECIFIED (39)
      - AUTO_SEC_PART_DIGITS is taken from DECIMAL_NOT_SPECIFIED
      - DOUBLE conversion functions are now using DECIMAL_NOT_SPECIFIED instead of
        NOT_FIXED_DEC
      34eb10e4
    • Monty's avatar
      Fixed compiler warnings · e4062d4d
      Monty authored
      Added my_global.h to PerconeFT to avoid "error <my_config.h> MUST be included first"
      e4062d4d
  4. 19 Jun, 2016 1 commit
  5. 14 Jun, 2016 1 commit
  6. 13 Jun, 2016 2 commits
    • Sergei Golubchik's avatar
      MDEV-10098 main.create_delayed fails with ps-protocol: assertion... · 9f9eb682
      Sergei Golubchik authored
      MDEV-10098 main.create_delayed fails with ps-protocol: assertion `global_status_var.global_memory_used >= 0' failed
      
      Remove the assert. We cannot verify that
      global_memory_used value is valid (>=0)
      because some of updates are cached in individual THD's
      (e.g. THD1 can have +300 cached, while the other THD2
      can have -300 cached. If the second THD exists before
      the first one, global_memory_used will be -300
      temporarily).
      
      Instead add the assert just before the exit, when all
      THDs been already destroyed.
      9f9eb682
    • Sergei Golubchik's avatar
      cleanup · e65703c6
      Sergei Golubchik authored
      always update global_status_var.global_memory_used
      through update_global_memory_status()
      e65703c6
  7. 10 Jun, 2016 6 commits
    • Nirbhay Choubey's avatar
      MDEV-5535: Cannot reopen temporary table · b2ae32aa
      Nirbhay Choubey authored
      Since a query can now refer to the same temporary table
      multiple times, find_dup_table()/find_table_in_list()
      have been updated to also consider this new possibility.
      b2ae32aa
    • Nirbhay Choubey's avatar
      MDEV-5535: Cannot reopen temporary table · e2087c6e
      Nirbhay Choubey authored
      Temporary table being created by outer statement
      should not be visible to inner statement. And if
      inner statement creates a table with same name.
      The whole statement should fail with
      ER_TABLE_EXISTS_ERROR.
      
      Implemented by temporarily de-linking the TABLE_SHARE
      being created by outer statement so that it remains
      hidden to the inner statement.
      e2087c6e
    • Nirbhay Choubey's avatar
      MDEV-5535: Cannot reopen temporary table · 7305be2f
      Nirbhay Choubey authored
      mysqld maintains a list of TABLE objects for all temporary
      tables created within a session in THD. Here each table is
      represented by a TABLE object.
      
      A query referencing a particular temporary table for more
      than once, however, failed with ER_CANT_REOPEN_TABLE error
      because a TABLE_SHARE was allocate together with the TABLE,
      so temporary tables always had only one TABLE per TABLE_SHARE.
      
      This patch lift this restriction by separating TABLE and
      TABLE_SHARE objects and storing TABLE_SHAREs for temporary
      tables in a list in THD, and TABLEs in a list within their
      respective TABLE_SHAREs.
      7305be2f
    • Nirbhay Choubey's avatar
      MDEV-5535: Cannot reopen temporary table · 54751115
      Nirbhay Choubey authored
      Add generic temporary table related tests.
      54751115
    • Nirbhay Choubey's avatar
      Some trivial changes. · 78d42767
      Nirbhay Choubey authored
      78d42767
    • Sergey Vojtovich's avatar
      Code cleanups · 7ecb3049
      Sergey Vojtovich authored
      - unused TABLE_SHARE::deleting and TABLE_LIST::deleting flags were removed
      - kill_delayed_threads_for_table() and intern_close_table() are now private
        methods of table cache
      - removed free_share flag of closefrm(): it was never used for temporary
        tables and was rarely useful for regular tables
      7ecb3049
  8. 08 Jun, 2016 3 commits
  9. 07 Jun, 2016 2 commits
    • Sergey Vojtovich's avatar
      MDEV-9857 - CACHE_LINE_SIZE in innodb should be 128 on POWER · 9de67083
      Sergey Vojtovich authored
      Replaced hard-coded cache line size.
      
      Changes based on Daniel Black's work.
      9de67083
    • Alexey Kopytov's avatar
      Few improvements related to CPU cache line size and padding: · 49ad0845
      Alexey Kopytov authored
      Bug #79636: CACHE_LINE_SIZE should be 128 on AArch64
      Bug #79637: Hard-coded cache line size
      Bug #79638: Reconcile CACHE_LINE_SIZE with CPU_LEVEL1_DCACHE_LINESIZE
      Bug #79652: Suspicious padding in srv_conc_t
      
      - changed CPU_LEVEL1_DCACHE_LINESIZE to default to 128 bytes on POWER
        and AArch64 architectures in cases when no value could be detected
        by CMake using getconf
      
      - changed CACHE_LINE_SIZE definition in ut0counter.h to be an alias of
        CPU_LEVEL1_DCACHE_LINESIZE
      
      - changed a number of hard-coded 64-byte cache line size values in the
        InnoDB code
      
      - fixed insufficient padding for srv_conc members in srv0conc.cc
      
      Ported to Mariadb by Daniel Black <daniel.black@au.ibm.com>
      Added s390 cache size of 256 at same time.
      49ad0845
  10. 05 Jun, 2016 1 commit
  11. 04 Jun, 2016 8 commits
    • Sergei Golubchik's avatar
      stop binlog background thread together with others · 4a0612ed
      Sergei Golubchik authored
      that fixes many rpl tests failures
      4a0612ed
    • Sergei Golubchik's avatar
      cleanup: thread_count · 562c1df7
      Sergei Golubchik authored
      move thread_count handling into THD:
      * increment thread_count in THD constructor
      * decrement thread_count in THD destructor
      * never modify thread_count directly!
      562c1df7
    • Sergei Golubchik's avatar
      decrement thead_count *after* THD is destroyed · 7425610c
      Sergei Golubchik authored
      because thread_count means just that: number of THDs
      and shutdown code looks at it to know when to free
      shared data structures that THD uses.
      
      This fixes random crashes in ~THD on shutdown
      7425610c
    • Sergei Golubchik's avatar
      fix the method name · 74aef87c
      Sergei Golubchik authored
      it's always assert_<statement>,
      not <do something>_if_<condition>
      74aef87c
    • Sergei Golubchik's avatar
      THD:: cleanup() must be where it used to · 725ce0fe
      Sergei Golubchik authored
      between net_end() and ha_close_connection()
      
      this fixes lockups in main.locked_temporary-5955 and some
      other innodb tests.
      725ce0fe
    • Sergei Golubchik's avatar
      reset @@TIMESTAMP for COM_CHANGE_USER · 69da361c
      Sergei Golubchik authored
      this also fixes tokudb.type_year failure
      (in ./mtr tokudb.type_timestamp tokudb.type_year)
      69da361c
    • Sergei Golubchik's avatar
      fix XID comparison · 4aacb20d
      Sergei Golubchik authored
      according to the standard, the gtrid/bqual pair must be
      "globally unique", so XIDs are equal if their gtrids and
      bquals are identical, formatID simply tells how
      gtrid/bqual were generated. But if formatID == -1
      (it means "null") gtrid/bqual don't have any value at all.
      
      This fixes main.xa_sync failure in
      ./mtr main.quary_cache_debug main.xa_sync
      4aacb20d
    • Monty's avatar
      Reuse THD for new user connections · 89685d55
      Monty authored
      - To ensure that mallocs are marked for the correct THD, even if it's
        allocated in another thread, I added the thread_id to the THD constructor
      - Added st_my_thread_var to thr_lock_info_init() to avoid a call to my_thread_var
      - Moved things from THD::THD() to THD::init()
      - Moved some things to THD::cleanup()
      - Added THD::free_connection() and THD::reset_for_reuse()
      - Added THD to CONNECT::create_thd()
      - Added THD::thread_dbug_id and st_my_thread_var->dbug_id. These are needed
        to ensure that we have a constant thread_id used for debugging with a THD,
        even if it changes thread_id (=connection_id)
      - Set variables.pseudo_thread_id in constructor. Removed not needed sets.
      89685d55
  12. 02 Jun, 2016 3 commits
  13. 01 Jun, 2016 7 commits