An error occurred fetching the project authors.
  1. 30 Aug, 2018 1 commit
  2. 22 Oct, 2017 1 commit
  3. 03 Jun, 2017 1 commit
  4. 23 May, 2017 1 commit
    • Monty's avatar
      Make SEQUENCE working with replication · 6a779a6d
      Monty authored
      - Old sequence code forced row based replication for any statements that
        refered to a sequence table. What is new is that row based replication
        is now sequence aware:
         - NEXT VALUE is now generating a short row based event with only
           next_value and round being replicated.
         - Short row based events are now on the slave updated as trough
           SET_VALUE(sequence_name)
         - Full row based events are on the slave updated with a full insert,
           which is practically same as ALTER SEQUENCE.
      - INSERT on a SEQUENCE table does now a EXCLUSIVE LOCK to ensure that
        it is logged in binary log before any following NEXT VALUE calls.
      - Enable all sequence tests and fixed found bugs
      - ALTER SEQUENCE doesn't anymore allow changes that makes the next_value
        outside of allowed range
      - SEQUENCE changes are done with TL_WRITE_ALLOW_WRITE. Because of this
        one can generate a statement for MyISAM with both
        TL_WRITE_CONCURRENT_INSERT and TL_WRITE_ALLOW_WRITE. To fix a warning
        I had to add an extra test in thr_lock.c for this.
      - Removed UPDATE of SEQUENCE (no need to support this as we
        have ALTER SEQUENCE, which takes the EXCLUSIVE lock properly.
      - Removed DBUG_ASSERT() in MDL_context::upgrade_shared_lock. This was
        removed upstream in MySQL 5.6 in 72f823de453.
      - Simplified test in decided_logging_format() by using sql_command_flags()
      - Fix that we log DROP SEQUENCE correctly.
      - Fixed that Aria works with SEQUENCE
      6a779a6d
  5. 20 May, 2017 1 commit
  6. 07 May, 2017 1 commit
    • Monty's avatar
      MDEV-10139 Support for SEQUENCE objects · 71fa413c
      Monty authored
      - SETVAL(sequence_name, next_value, is_used, round)
      - ALTER SEQUENCE, including RESTART WITH
      
      Other things:
      - Added handler::extra() option HA_EXTRA_PREPARE_FOR_ALTER_TABLE to signal
        ha_sequence() that it should allow write_row statments.
      - ALTER ONLINE TABLE now works with SEQUENCE:s
      71fa413c
  7. 07 Apr, 2017 1 commit
    • 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