An error occurred fetching the project authors.
  1. 16 Sep, 2024 2 commits
    • Yuchen Pei's avatar
      MDEV-34716 Allow arbitrary options in CREATE SERVER · 698e8fa3
      Yuchen Pei authored
      The existing syntax for CREATE SERVER
      
      CREATE [OR REPLACE] SERVER [IF NOT EXISTS] server_name
          FOREIGN DATA WRAPPER wrapper_name
          OPTIONS (option [, option] ...)
      
      option:
        { HOST character-literal
        | DATABASE character-literal
        | USER character-literal
        | PASSWORD character-literal
        | SOCKET character-literal
        | OWNER character-literal
        | PORT numeric-literal }
      
      With this change we have:
      
      option:
        { HOST character-literal
        | DATABASE character-literal
        | USER character-literal
        | PASSWORD character-literal
        | SOCKET character-literal
        | OWNER character-literal
        | PORT numeric-literal
        | PORT quoted-numerical-literal
        | identifier character-literal}
      
      We store these options as a JSON field in the mysql.servers system
      table. We retain the restriction that PORT needs to be a number, but
      also allow it to be a quoted number, so that SHOW CREATE SERVER can be
      used for dumping. Without an accompanied implementation of SHOW CREATE
      SERVER, some mysqldump tests will fail. Therefore this commit should
      be immediately followed by the one implementating SHOW CREATE SERVER,
      with testing covering both.
      698e8fa3
    • Yuchen Pei's avatar
      MDEV-34716 Fix mysql.servers socket max length too short · 4feb58e8
      Yuchen Pei authored
      The limit of socket length on unix according to libc is 108, see
      sockaddr_un::sun_path, but in the table it is a string of max length
      64, which results in truncation of socket and failure to connect by
      plugins using servers such as spider.
      4feb58e8
  2. 17 Oct, 2023 1 commit
  3. 22 Sep, 2023 1 commit
  4. 01 Nov, 2022 1 commit
  5. 13 Oct, 2022 1 commit
    • Alexander Barkov's avatar
      MDEV-29776 collation_connection and db_collation are too short in mysql.proc and mysql.event · 14703a4f
      Alexander Barkov authored
      Increasing the data type from char(32) to char(64) for
      the following system columns:
      
      - mysql.event.collation_connection
      - mysql.event.db_collation
      - mysql.proc.collation_connection
      - mysql.proc.db_collation
      
      This change was forgotten during MDEV-27009.
      
      Also fixing the comment "Start/End of 10.9 tests" in ctype_utf8_uca.test
      to "Start/End of 10.10 tests", as MDEV-27009 was actually
      released in 10.10.
      14703a4f
  6. 12 Sep, 2022 1 commit
  7. 10 Aug, 2022 1 commit
  8. 19 Jan, 2022 3 commits
  9. 19 May, 2021 1 commit
    • Rucha Deodhar's avatar
      MDEV-8334: Rename utf8 to utf8mb3 · 2fdb556e
      Rucha Deodhar authored
      This patch changes the main name of 3 byte character set from utf8 to
      utf8mb3. New old_mode UTF8_IS_UTF8MB3 is added and set TRUE by default,
      so that utf8 would mean utf8mb3. If not set, utf8 would mean utf8mb4.
      2fdb556e
  10. 21 Apr, 2021 1 commit
    • Vicențiu Ciorbaru's avatar
      MDEV-23908: Implement SELECT ... OFFSET ... FETCH ... · 299b9353
      Vicențiu Ciorbaru authored
      This commit implements the standard SQL extension
      OFFSET start { ROW | ROWS }
      [FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } { ONLY | WITH TIES }]
      
      To achieve this a reserved keyword OFFSET is introduced.
      
      The general logic for WITH TIES implies:
      1. The number of rows a query returns is no longer known during optimize
         phase. Adjust optimizations to no longer consider this.
      2. During end_send make use of an "order Cached_item"to compare if the
         ORDER BY columns changed. Keep returning rows until there is a
         change. This happens only after we reached the row limit.
      3. Within end_send_group, the order by clause was eliminated. It is
         still possible to keep the optimization of using end_send_group for
         producing the final result set.
      299b9353
  11. 20 Apr, 2021 1 commit
  12. 08 Mar, 2021 1 commit
    • Robert Bindar's avatar
      MDEV-24363 mysql.user password_expired column is incorrect · 363ba107
      Robert Bindar authored
      The mysql.user view password_expired column should display the right
      result, in sync with whether an account has its password expired or not
      
      For mariadb 10.4+ upgrades before this commit, the mysql.user view needs
      to be dropped and recreated to actually make the view display the
      correct value for the password_expired column.
      363ba107
  13. 07 May, 2020 1 commit
    • Oleksandr Byelkin's avatar
      MDEV-19650: Privilege bug on MariaDB 10.4 · 0253ea7f
      Oleksandr Byelkin authored
      Also fixes:
      MDEV-21487: Implement option for mysql_upgrade that allows root@localhost to be replaced
      MDEV-21486: Implement option for mysql_install_db that allows root@localhost to be replaced
      
      Add user mariadb.sys to be definer of user view
      (and has right on underlying table global_priv for
      required operation over global_priv
      (SELECT,UPDATE,DELETE))
      
      Also changed definer of gis functions in case of creation,
      but they work with any definer so upgrade script do not try
      to push this change.
      0253ea7f
  14. 13 Feb, 2020 1 commit
  15. 14 Feb, 2019 1 commit
  16. 11 Dec, 2018 1 commit
  17. 26 Nov, 2018 1 commit
  18. 16 Aug, 2018 1 commit
  19. 14 Aug, 2018 1 commit
    • Michael Widenius's avatar
      MDEV-16421 Make system tables crash safe · d6d63f48
      Michael Widenius authored
      Make all system tables in mysql directory of type
      engine=Aria
      
      Privilege tables are using transactional=1
      Statistical tables are using transactional=0, to allow them
      to be quickly updated with low overhead.
      Help tables are also using transactional=0 as these are only
      updated at init time.
      
      Other changes:
      - Aria store engine is now a required engine
      - Update comment for Aria tables to reflect their new usage
      - Fixed that _ma_reset_trn_for_table() removes unlocked table
        from transaction table list. This was needed to allow one
        to lock and unlock system tables separately from other
        tables, for example when reading a procedure from mysql.proc
      - Don't give a warning when using transactional=1 for engines
        that is using transactions. This is both logical and also
        to avoid warnings/errors when doing an alter of a privilege
        table to InnoDB.
      - Don't abort on warnings from ALTER TABLE for changes that
        would be accepted by CREATE TABLE.
      - New created Aria transactional tables are marked as not movable
        (as they include create_rename_lsn).
      - bootstrap.test was changed to kill orignal server, as one
        can't anymore have two servers started at same time on same
        data directory and data files.
      - Disable maria.small_blocksize as one can't anymore change
        aria block size after system tables are created.
      - Speed up creation of help tables by using lock tables.
      - wsrep_sst_resync now also copies Aria redo logs.
      d6d63f48
  20. 29 Mar, 2018 1 commit
  21. 27 Feb, 2018 1 commit
    • Alexander Barkov's avatar
      MDEV-11952 Oracle-style packages: stage#5 · 5f7c764f
      Alexander Barkov authored
      Backporting from bb-10.2-compatibility to bb-10.2-ext
      
      Version: 2018-01-26
      
      - CREATE PACKAGE [BODY] statements are now
        entirely written to mysql.proc with type='PACKAGE' and type='PACKAGE BODY'.
      - CREATE PACKAGE BODY now supports IF NOT EXISTS
      - DROP PACKAGE BODY now supports IF EXISTS
      - CREATE OR REPLACE PACKAGE [BODY] is now supported
      - CREATE PACKAGE [BODY] now support the DEFINER clause:
      
          CREATE DEFINER user@host PACKAGE pkg ... END;
          CREATE DEFINER user@host PACKAGE BODY pkg ... END;
      
      - CREATE PACKAGE [BODY] now supports SQL SECURITY and COMMENT clauses, e.g.:
      
          CREATE PACKAGE p1 SQL SECURITY INVOKER COMMENT "comment" AS ... END;
      
      - Package routines are now created from the package CREATE PACKAGE BODY
        statement and don't produce individual records in mysql.proc.
      
      - CREATE PACKAGE BODY now supports package-wide variables.
        Package variables can be read and set inside package routines.
        Package variables are stored in a separate sp_rcontext,
        which is cached in THD on the first packate routine call.
      
      - CREATE PACKAGE BODY now supports the initialization section.
      
      - All public routines (i.e. declared in CREATE PACKAGE)
        must have implementations in CREATE PACKAGE BODY
      
      - Only public package routines are available outside of the package
      
      - {CREATE|DROP} PACKAGE [BODY] now respects CREATE ROUTINE and ALTER ROUTINE
        privileges
      
      - "GRANT EXECUTE ON PACKAGE BODY pkg" is now supported
      
      - SHOW CREATE PACKAGE [BODY] is now supported
      
      - SHOW PACKAGE [BODY] STATUS is now supported
      
      - CREATE and DROP for PACKAGE [BODY] now works for non-current databases
      
      - mysqldump now supports packages
      
      - "SHOW {PROCEDURE|FUNCTION) CODE pkg.routine" now works for package routines
      
      - "SHOW PACKAGE BODY CODE pkg" now works (the package initialization section)
      
      - A new package body level MDL was added
      
      - Recursive calls for package procedures are now possible
      
      - Routine forward declarations in CREATE PACKATE BODY are now supported.
      
      - Package body variables now work as SP OUT parameters
      
      - Package body variables now work as SELECT INTO targets
      
      - Package body variables now support ROW, %ROWTYPE, %TYPE
      5f7c764f
  22. 25 Feb, 2018 1 commit
    • Alexander Barkov's avatar
      MDEV-11952 Oracle-style packages: stage#5 · 583eb96c
      Alexander Barkov authored
      - CREATE PACKAGE [BODY] statements are now
        entirely written to mysql.proc with type='PACKAGE' and type='PACKAGE BODY'.
      - CREATE PACKAGE BODY now supports IF NOT EXISTS
      - DROP PACKAGE BODY now supports IF EXISTS
      - CREATE OR REPLACE PACKAGE [BODY] is now supported
      - CREATE PACKAGE [BODY] now support the DEFINER clause:
      
          CREATE DEFINER user@host PACKAGE pkg ... END;
          CREATE DEFINER user@host PACKAGE BODY pkg ... END;
      
      - CREATE PACKAGE [BODY] now supports SQL SECURITY and COMMENT clauses, e.g.:
      
          CREATE PACKAGE p1 SQL SECURITY INVOKER COMMENT "comment" AS ... END;
      
      - Package routines are now created from the package CREATE PACKAGE BODY
        statement and don't produce individual records in mysql.proc.
      
      - CREATE PACKAGE BODY now supports package-wide variables.
        Package variables can be read and set inside package routines.
        Package variables are stored in a separate sp_rcontext,
        which is cached in THD on the first packate routine call.
      
      - CREATE PACKAGE BODY now supports the initialization section.
      
      - All public routines (i.e. declared in CREATE PACKAGE)
        must have implementations in CREATE PACKAGE BODY
      
      - Only public package routines are available outside of the package
      
      - {CREATE|DROP} PACKAGE [BODY] now respects CREATE ROUTINE and ALTER ROUTINE
        privileges
      
      - "GRANT EXECUTE ON PACKAGE BODY pkg" is now supported
      
      - SHOW CREATE PACKAGE [BODY] is now supported
      
      - SHOW PACKAGE [BODY] STATUS is now supported
      
      - CREATE and DROP for PACKAGE [BODY] now works for non-current databases
      
      - mysqldump now supports packages
      
      - "SHOW {PROCEDURE|FUNCTION) CODE pkg.routine" now works for package routines
      
      - "SHOW PACKAGE BODY CODE pkg" now works (the package initialization section)
      
      - A new package body level MDL was added
      
      - Recursive calls for package procedures are now possible
      
      - Routine forward declarations in CREATE PACKATE BODY are now supported.
      
      - Package body variables now work as SP OUT parameters
      
      - Package body variables now work as SELECT INTO targets
      
      - Package body variables now support ROW, %ROWTYPE, %TYPE
      583eb96c
  23. 12 Feb, 2018 2 commits
  24. 07 Feb, 2018 1 commit
  25. 17 Dec, 2017 1 commit
  26. 08 Dec, 2017 1 commit
  27. 04 Dec, 2017 1 commit
    • Varun Gupta's avatar
      MDEV-7773: Aggregate stored functions · 60c44658
      Varun Gupta authored
      This commit implements aggregate stored functions. The basic idea behind
      the feature is:
      
      * Implement a special instruction FETCH GROUP NEXT ROW that will pause
      the execution of the stored function. When the instruction is reached,
      execution of the initial query resumes "as if" the function returned.
      This gives the server the opportunity to advance to the next row in the
      result set.
      
      * Stored aggregates behave like regular aggregate functions. The
      implementation of thus resides in the class Item_sum_sp. Because it is
      an aggregate function, for each new row in the group, the
      Item_sum_sp::add() method will be called. This is when execution resumes
      and the function does another iteration to "add" one extra element to
      the final result.
      
      * When the end of group is reached, val_xxx() method will be called for
      the item. This case is handled by another execute step for the stored
      function, only with a special flag to force a call to the return
      handler. See Item_sum_sp::execute() for details.
      
      To allow this pause and resume semantic, we must preserve the function
      context across executions. This is stored in Item_sp::sp_query_arena only for
      aggregate stored functions, but has no impact for regular functions.
      
      We also enforce aggregate functions to include the "FETCH GROUP NEXT ROW"
      instruction.
      Signed-off-by: default avatarVicențiu Ciorbaru <vicentiu@mariadb.org>
      60c44658
  28. 21 Nov, 2017 1 commit
  29. 14 Oct, 2017 1 commit
  30. 08 Sep, 2017 1 commit
  31. 24 May, 2017 1 commit
  32. 12 Dec, 2016 1 commit
    • Sergei Golubchik's avatar
      store/show vcols as item->print() · a411d7f4
      Sergei Golubchik authored
      otherwise we'd need to store sql_mode *per vcol*
      (consider CREATE INDEX...) and how SHOW CREATE TABLE would
      support that?
      
      Additionally, get rid of vcol::expr_str, just to make sure
      the string is always generated and never leaked in the
      original form.
      a411d7f4
  33. 27 Aug, 2016 1 commit
  34. 30 Jun, 2016 1 commit
    • Michael Widenius's avatar
      Part of MDEV-10134 Add full support for DEFAULT · 6c173324
      Michael Widenius authored
      Print default values for BLOB's.
      This is a part commit for automatic changes to make the real commit smaller.
      All changes here are related to that we now print DEFAULT NULL for blob and
      text fields, like we do for all other fields.
      6c173324
  35. 14 Nov, 2015 1 commit
  36. 03 Nov, 2015 1 commit