An error occurred fetching the project authors.
  1. 09 Sep, 2019 1 commit
  2. 03 Sep, 2019 1 commit
    • Alexander Barkov's avatar
      MDEV-18156 Assertion `0' failed or `btr_validate_index(index, 0, false)' in... · dc719597
      Alexander Barkov authored
      MDEV-18156 Assertion `0' failed or `btr_validate_index(index, 0, false)' in row_upd_sec_index_entry or error code 126: Index is corrupted upon DELETE with PAD_CHAR_TO_FULL_LENGTH
      
      This change takes into account a column's GENERATED ALWAYS AS
      expression dependcy on sql_mode's PAD_CHAR_TO_FULL_LENGTH and
      NO_UNSIGNED_SUBTRACTION flags.
      
      Indexed virtual columns as well as persistent generated columns are
      now not allowed to have such dependencies to avoid inconsistent data
      or index files on sql_mode changes.
      So an error is now returned in cases like this:
      
        CREATE OR REPLACE TABLE t1
        (
          a CHAR(5),
          v VARCHAR(5) AS (a) PERSISTENT -- CHAR->VARCHAR or CHAR->TEXT = ERROR
        );
      
      Functions RPAD() and RTRIM() can now remove dependency on
      PAD_CHAR_TO_FULL_LENGTH. So this can be used instead:
      
        CREATE OR REPLACE TABLE t1
        (
          a CHAR(5),
          v VARCHAR(5) AS (RTRIM(a)) PERSISTENT
        );
      
      Note, unlike CHAR->VARCHAR and CHAR->TEXT this still works,
      not RPAD(a) is needed:
      
        CREATE OR REPLACE TABLE t1
        (
          a CHAR(5),
          v CHAR(5) AS (a) PERSISTENT -- CHAR->CHAR is OK
        );
      
      More sql_mode flags may affect values of generated columns.
      They will be addressed separately.
      
      See comments in sql_mode.h for implementation details.
      dc719597
  3. 11 May, 2019 1 commit
  4. 11 Jan, 2019 1 commit
  5. 15 Nov, 2018 1 commit
  6. 19 Oct, 2018 1 commit
  7. 21 Sep, 2018 2 commits
  8. 12 Aug, 2018 2 commits
  9. 09 Jul, 2018 1 commit
  10. 08 Jun, 2018 1 commit
  11. 30 Apr, 2018 1 commit
    • Sergey Vojtovich's avatar
      MDEV-12645 - mysql_install_db: no install test db option · 9a849806
      Sergey Vojtovich authored
      Added --skip-test-db option to mysql_install_db. If specified, no test
      database created and relevant grants issued.
      
      Removed --skip-auth-anonymous-user option of mysql_install_db. Now it is
      covered by --skip-test-db.
      
      Dropped some Debian patches that did the same.
      
      Removed unused make_win_bin_dist.1, make_win_bin_dist and
      mysql_install_db.pl.in.
      9a849806
  12. 10 Apr, 2018 1 commit
  13. 30 Jan, 2018 1 commit
    • Monty's avatar
      Changed database, tablename and alias to be LEX_CSTRING · a7e352b5
      Monty authored
      This was done in, among other things:
      - thd->db and thd->db_length
      - TABLE_LIST tablename, db, alias and schema_name
      - Audit plugin database name
      - lex->db
      - All db and table names in Alter_table_ctx
      - st_select_lex db
      
      Other things:
      - Changed a lot of functions to take const LEX_CSTRING* as argument
        for db, table_name and alias. See init_one_table() as an example.
      - Changed some function arguments from LEX_CSTRING to const LEX_CSTRING
      - Changed some lists from LEX_STRING to LEX_CSTRING
      - threads_mysql.result changed because process list_db wasn't always
        correctly updated
      - New append_identifier() function that takes LEX_CSTRING* as arguments
      - Added new element tmp_buff to Alter_table_ctx to separate temp name
        handling from temporary space
      - Ensure we store the length after my_casedn_str() of table/db names
      - Removed not used version of rename_table_in_stat_tables()
      - Changed Natural_join_column::table_name and db_name() to never return
        NULL (used for print)
      - thd->get_db() now returns db as a printable string (thd->db.str or "")
      a7e352b5
  14. 30 Dec, 2017 1 commit
  15. 18 Dec, 2017 3 commits
    • Andrei Elkin's avatar
      MDEV-13073. This part patch weeds out RUN_HOOK from the server as semisync · 74b35b68
      Andrei Elkin authored
      is defined statically. Consequently the observer interfaces are removed
      as well.
      74b35b68
    • Andrei Elkin's avatar
      MDEV-13073 This part merges the Ali semisync related changes · e972125f
      Andrei Elkin authored
      and specifically the ack receiving functionality.
      Semisync is turned to be static instead of plugin so its functions
      are invoked at the same points as RUN_HOOKS.
      The RUN_HOOKS and the observer interface remain to be removed by later
      patch.
      
      Todo:
        React on killed status by repl_semisync_master.wait_after_sync(). Currently
        Repl_semi_sync_master::commit_trx does not check the killed status.
      
        There were few bugfixes found that are present in mysql and its unclear
        whether/how they are covered. Those include:
      
        Bug#15985893: GTID SKIPPED EVENTS ON MASTER CAUSE SEMI SYNC TIME-OUTS
        Bug#17932935 CALLING IS_SEMI_SYNC_SLAVE() IN EACH FUNCTION CALL
                       HAS BAD PERFORMANCE
        Bug#20574628: SEMI-SYNC REPLICATION PERFORMANCE DEGRADES WITH A HIGH NUMBER OF THREADS
      e972125f
    • Monty's avatar
      Moved semisync from a plugin to normal server · 2e53b96a
      Monty authored
      Part of MDEV-13073 AliSQL Optimize performance of semisync
      
      Did the following renames to match other similar variables
      key_ss_mutex_LOCK_binlog_       > key_LOCK_bing
      key_ss_cond_COND_binlog_send_  -> key_COND_binlog_send
      COND_binlog_send_              -> COND_binlog_send
      LOCK_binlog_                   -> LOCK_binlog
      
      debian/mariadb-server-10.2.install does not install semisync libs.
      2e53b96a
  16. 02 Dec, 2017 1 commit
    • Shishir Jaiswal's avatar
      Bug#26585560 - MYSQL DAEMON SHOULD CREATE ITS PID FILE AS · ecc5a078
      Shishir Jaiswal authored
                     ROOT
      
      DESCRIPTION
      ===========
      If the .pid file is created at a world-writable location,
      it can be compromised by replacing the server's pid with
      another running server's (or some other non-mysql process)
      PID causing abnormal behaviour.
      
      ANALYSIS
      ========
      In such a case, user should be warned that .pid file is
      being created at a world-writable location.
      
      FIX
      ===
      A new function is_file_or_dir_world_writable() is defined
      and it is called in create_pid_file() before .pid file
      creation. If the location is world-writable, a relevant
      warning is thrown.
      
      NOTE
      ====
      1. PID file is always created with permission bit 0664, so
      for outside world its read-only.
      2. Ignoring the case when permission is denied to get the
      dir stats since the .pid file creation would fail anyway in
      such a case.
      ecc5a078
  17. 09 Oct, 2017 1 commit
    • Tor Didriksen's avatar
      Backport patch for Bug#16877045 5.6-CLUSTER-7.3 WIN32 SQL_YACC.CC BUILD PROBLEM · aa6e69db
      Tor Didriksen authored
      Building with ninja shows the problem:
      cmake .. -G Ninja
      ninja
      ninja: error: dependency cycle: sql/GenServerSource -> sql/CMakeFiles/GenServerSource -> sql/sql_builtin.cc -> cmake_order_depends_target_sq
       sql/GenServerSource
      
      Bug#16877045 5.6-CLUSTER-7.3 WIN32 SQL_YACC.CC BUILD PROBLEM
       - Somewhat circular dependency caused by the configured files sql_builtin.cc  being included as
          part of the files to generate in sql/
       - Move sql_builtin.cc out of GEN_SOURCES variable.
       - Create new variable CONF_SOURCES to be used for configured files.
      aa6e69db
  18. 28 Sep, 2017 1 commit
  19. 23 Sep, 2017 1 commit
  20. 08 Sep, 2017 1 commit
    • Vladislav Vaintroub's avatar
      Build improvements and cleanups. · a46679dc
      Vladislav Vaintroub authored
      - the probably ultimate fix for dependencies on VS
      - remove some GET_TARGET_PROPERTY(LOCATION ...), they are deprecated in
      cmake 3.9
      - simplify signing targets on Windows.
      - remove INSTALL_DEBUG_TARGET, we do not mix binaries from different builds
      in the same package
      a46679dc
  21. 31 Aug, 2017 1 commit
    • Sergey Vojtovich's avatar
      MDEV-11371 - column compression · fdc47792
      Sergey Vojtovich authored
      Storage engine independent support for column compression.
      
      TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT,
      VARCHAR and VARBINARY columns can be compressed.
      
      New COMPRESSED column attribute added:
      COMPRESSED[=<compression_method>]
      
      System variables added:
      column_compression_threshold
      column_compression_zlib_level
      column_compression_zlib_strategy
      column_compression_zlib_wrap
      
      Status variables added:
      Column_compressions
      Column_decompressions
      
      Limitations:
      - the only supported method currently is zlib
      - CSV storage engine stores data uncompressed on-disk even if COMPRESSED
        attribute is present
      - it is not possible to create indexes over compressed columns.
      fdc47792
  22. 30 Aug, 2017 1 commit
  23. 22 Aug, 2017 1 commit
  24. 14 Aug, 2017 1 commit
  25. 29 Jun, 2017 1 commit
  26. 19 Jun, 2017 1 commit
    • Aleksey Midenkov's avatar
      SQL, IB: (0.10) VTMD tracking [closes #124] · 448374a2
      Aleksey Midenkov authored
      IB: Fixes in logic when to do versioned or usual row updates. Now it is
      able to do unversioned updates for versioned tables just by disabling
      `TABLE_SHARE::versioned` flag.
      
      SQL: DDL tracking for:
      * RENAME TABLE, ALTER TABLE .. RENAME TO;
      * DROP TABLE;
      * data-modifying operations (f.ex. ALTER TABLE .. ADD/DROP COLUMN).
      448374a2
  27. 23 May, 2017 1 commit
  28. 05 May, 2017 2 commits
  29. 03 May, 2017 1 commit
  30. 27 Apr, 2017 1 commit
  31. 07 Apr, 2017 2 commits
    • Monty's avatar
      MDEV-10139 Support for SEQUENCE objects · 17a87d60
      Monty authored
      Working features:
      CREATE OR REPLACE [TEMPORARY] SEQUENCE [IF NOT EXISTS] name
          [ INCREMENT [ BY | = ] increment ]
          [ MINVALUE [=] minvalue | NO MINVALUE ]
          [ MAXVALUE [=] maxvalue | NO MAXVALUE ]
          [ START [ WITH | = ] start ] [ CACHE [=] cache ] [ [ NO ] CYCLE ]
          ENGINE=xxx COMMENT=".."
      SELECT NEXT VALUE FOR sequence_name;
      SELECT NEXTVAL(sequence_name);
      SELECT PREVIOUS VALUE FOR sequence_name;
      SELECT LASTVAL(sequence_name);
      
      SHOW CREATE SEQUENCE sequence_name;
      SHOW CREATE TABLE sequence_name;
      CREATE TABLE sequence-structure ... SEQUENCE=1
      ALTER TABLE sequence RENAME TO sequence2;
      RENAME TABLE sequence TO sequence2;
      DROP [TEMPORARY] SEQUENCE  [IF EXISTS] sequence_names
      
      Missing features
      - SETVAL(value,sequence_name), to be used with replication.
      - Check replication, including checking that sequence tables are marked
        not transactional.
      - Check that a commit happens for NEXT VALUE that changes table data (may
        already work)
      - ALTER SEQUENCE. ANSI SQL version of setval.
      - Share identical sequence entries to not add things twice to table list.
      - testing insert/delete/update/truncate/load data
      - Run and fix Alibaba sequence tests (part of mysql-test/suite/sql_sequence)
      - Write documentation for NEXT VALUE / PREVIOUS_VALUE
      - NEXTVAL in DEFAULT
        - Ensure that NEXTVAL in DEFAULT uses database from base table
      - Two NEXTVAL for same row should give same answer.
      - Oracle syntax sequence_table.nextval, without any FOR or FROM.
      - Sequence tables are treated as 'not read constant tables' by SELECT; Would
        be better if we would have a separate list for sequence tables so that
        select doesn't know about them, except if refereed to with FROM.
      
      Other things done:
      - Improved output for safemalloc backtrack
      - frm_type_enum changed to Table_type
      - Removed lex->is_view and replaced with lex->table_type. This allows
        use to more easy check if item is view, sequence or table.
      - Added table flag HA_CAN_TABLES_WITHOUT_ROLLBACK, needed for handlers
        that want's to support sequences
      - Added handler calls:
       - engine_name(), to simplify getting engine name for partition and sequences
       - update_first_row(), to be able to do efficient sequence implementations.
       - Made binlog_log_row() global to be able to call it from ha_sequence.cc
      - Added handler variable: row_already_logged, to be able to flag that the
        changed row is already logging to replication log.
      - Added CF_DB_CHANGE and CF_SCHEMA_CHANGE flags to simplify
        deny_updates_if_read_only_option()
      - Added sp_add_cfetch() to avoid new conflicts in sql_yacc.yy
      - Moved code for add_table_options() out from sql_show.cc::show_create_table()
      - Added String::append_longlong() and used it in sql_show.cc to simplify code.
      - Added extra option to dd_frm_type() and ha_table_exists to indicate if
        the table is a sequence. Needed by DROP SQUENCE to not drop a table.
      17a87d60
    • Alexander Barkov's avatar
      Using the -t command line to bison instead of %name-prefix · 75d1962a
      Alexander Barkov authored
      Needed to compile on machines with older bison versions.
      Adding a new parameter "name_prefix" to RUN_BISON() cmake macro.
      75d1962a
  32. 06 Apr, 2017 1 commit
  33. 05 Apr, 2017 1 commit
    • Alexander Barkov's avatar
      Adding an alternative grammar file sql_yacc_ora.yy for sql_mode=ORACLE · 9f6aca19
      Alexander Barkov authored
      - Adding a new grammar file sql_yacc_ora.yy, which is currently
        almost a full copy of sql_yacc.yy.
      
        Note, it's now assumed that sql_yacc.yy and sql_yacc_ora.yy
        use the same set of %token directives and exactly the same
        %union directive.
        These declarations should eventually be moved into a shared
        included file, to make sure that sql_yacc.h and sql_yacc_ora.h
        are compatible.
      
      - Removing the "-p MYSQL" flag from cmake/bison.cmake, using
        the %name-prefix directive inside sql_yacc.yy and sql_yacc_ora.yy instead
      
      - Adding other CMake related changes to build sql_yacc_ora.o
        form sql_yacc_ora.yy
      
      - Adding NUMBER(M,N) as a synonym to DECIMAL(M,N) as the first
        Oracle compatibility syntax understood in sql_mode=ORACLE.
      
      - Adding prototypes to functions add_virtual_expression()
        and handle_sql2003_note184_exception(), so they can be used
        in both sql_yacc.yy and sql_yacc_ora.yy.
      
      - Adding a new test suite compat/oracle, with the first test "type_number".
        Use this:
         ./mtr compat/oracle.type_number   # to run a single test
         ./mtr --suite=compat/oracle       # to run the entire new suite
      
      - Adding compat/oracle into the list of default suites,
        so BuildBot can run it automatically on pushes.
      9f6aca19
  34. 03 Apr, 2017 1 commit
    • Vladislav Vaintroub's avatar
      Compiling, Windows . Avoid unnecessary rebuilds with MSVC. · f2dc04ab
      Vladislav Vaintroub authored
      To export symbols from the mysqld.exe, use lib.exe with /DEF, rather than
      pre-link step when building mysqld.exe.
      
      This helps to avoid relinking all plugins, if mysqld.exe was recompiled
      but the list of its exports has not changed.
      
      Also removed unnecessary DEPENDS in some ADD_CUSTOM_COMMAND (gen_lex_token,
      gen_lex_hash etc). They confuse VS generator which tends to
      recreate headers and do unnecessary recompilations.
      f2dc04ab