1. 23 Oct, 2006 1 commit
    • unknown's avatar
      Fix for bug#23037 Bug in field "Default" of query "SHOW COLUMNS FROM table" · 6acfa1cd
      unknown authored
        
      To the documentor: The DEFAULT value in SHOW COLUMNS/SELECT FROM I_S.COLUMNS
      was truncated to NAME_LEN (which effectively is 64) characters.
      
      
      mysql-test/r/information_schema.result:
        Update result
        
        Because the length of I_S.COLUMNS.COLUMN_DEFAULT was increased to
        65535 the column changed it's type from varchar(64) to longtext
        The type is longtext if the length is > 65532 (the max varchar len)
      mysql-test/t/information_schema.test:
        test case for bug#23037: Bug in field "Default" of
        query "SHOW COLUMNS FROM table"
        
        Both SHOW COLUMNS and I_S.COLUMNS is TESTED as well the
        value returned by both. Using --replace_regex is unfeasible
        as the repetition value cannot be > 255.
        --replace_regex /A{256}/VALUE/ doesn't work, not to talk about
          /A{65532}/VALUE/
        /(A{255}){255}/VALUE/ is awfully slow. Thus, simple function with
        cursor is used to extract the value.
      sql/sql_show.cc:
        Default value can have TIMESTAMP, CHAR, VARCHAR, ENUM
        VARCHAR can have the longest value, up to 65535. However, because
        of table handler limitations the actual limit is 65532 characters,
        latin1 charset. However, here is used MAX_FIELD_VARCHARLENGTH macro,
        because there could be a storage engine without such limitation.
      6acfa1cd
  2. 08 Aug, 2006 1 commit
    • unknown's avatar
      bug #20910 (NOT NULL reported as NULL for TIMESTAMP) · 431db226
      unknown authored
      we intentionally reported that for TIMESTAMPS, which isn't right
      
      
      mysql-test/r/type_timestamp.result:
        result fixed
      mysql-test/t/type_timestamp.test:
        testcase added
      sql/sql_show.cc:
        remove the check for TIMESTAMP type -
        all types will report 'NO' if they're defined as NOT NULL
      431db226
  3. 28 Jul, 2006 1 commit
    • unknown's avatar
      Bug#16581: deadlock: server and client both read from connection in · c0396709
      unknown authored
                 'conc_sys' test
      
      Concurrent execution of SELECT involing at least two INFORMATION_SCHEMA
      tables, DROP DATABASE statement and DROP TABLE statement could have
      resulted in stalled connection for this SELECT statement.
      
      The problem was that for the first query of a join there was a race
      between select from I_S.TABLES and DROP DATABASE, and the error (no
      such database) was prepared to be send to the client, but the join
      processing was continued.  On second query to I_S.COLUMNS there was a
      race with DROP TABLE, but this error (no such table) was downgraded to
      warning, and thd->net.report_error was reset.  And so neither result
      nor error was sent to the client.
      
      The solution is to stop join processing once it is clear we are going
      to report a error, and also to downgrade to warnings file system errors
      like 'no such database' (unless we are in the 'SHOW' command), because
      I_S is designed not to use locks and the query to I_S should not abort
      if something is dropped in the middle.
      
      No test case is provided since this bug is a result of a race, and is
      timing dependant.  But we test that plain SHOW TABLES and SHOW COLUMNS
      give a error if there is no such database or a table respectively.
      
      
      mysql-test/r/show_check.result:
        Add result for the test that SHOW TABLES and SHOW COLUMNS give a error
        if there is no such database or a table respectively.
      mysql-test/t/show_check.test:
        Add test case that SHOW TABLES and SHOW COLUMNS give a error
        if there is no such database or a table respectively.
      sql/mysql_priv.h:
        Remove prototype of mysql_find_files(), which is made static under
        find_files() name.
      sql/sql_show.cc:
        Rename mysql_find_files() to find_files() and make it static.
        Return FIND_FILES_OK for success, FIND_FILES_OOM for out of memory,
        and FIND_FILES_DIR for directory reading error.
        Downgrade error to warning in get_all_tables() if it is a
        FIND_FILES_DIR error, and we are not in the 'SHOW' command.
        Once 'result' is set to 1 in get_schema_tables_result(), there's no
        need in continuing iterations, as we are about to return a error.
      c0396709
  4. 27 Jul, 2006 1 commit
    • unknown's avatar
      Fix for BUG#16211: Stored function return type for strings is ignored. · 51ce3a0e
      unknown authored
      Fix for BUG#16676: Database CHARSET not used for stored procedures
      
      The problem in BUG#16211 is that CHARSET-clause of the return type for
      stored functions is just ignored.
      
      The problem in BUG#16676 is that if character set is not explicitly
      specified for sp-variable, the server character set is used instead
      of the database one.
      
      The fix has two parts:
      
        - always store CHARSET-clause of the return type along with the
          type definition in mysql.proc.returns column. "Always" means that
          CHARSET-clause is appended even if it has not been explicitly
          specified in CREATE FUNCTION statement (this affects BUG#16211 only).
      
          Storing CHARSET-clause if it is not specified is essential to avoid
          changing character set if the database character set is altered in
          the future.
      
          NOTE: this change is not backward compatible with the previous releases.
      
        - use database default character set if CHARSET-clause is not explicitly
          specified (this affects both BUG#16211 and BUG#16676).
      
          NOTE: this also breaks backward compatibility.
      
      
      mysql-test/r/mysqldump.result:
        Updated result file.
      mysql-test/r/sp.result:
        Updated result file.
      mysql-test/t/sp.test:
        Provided test cases for BUG#16211, BUG#16676.
      sql/mysql_priv.h:
        Added two convenient functions for work with databases.
      sql/sp.cc:
        1. Add CHARSET-clause to CREATE-statement if it has been explicitly specified.
        2. Polishing -- provided some comments.
      sql/sp_head.cc:
        Use database charset as default charset of sp-variable.
      sql/sp_head.h:
        Move init_sp_name() out of init_strings().
      sql/sql_db.cc:
        Two new functions created:
          - load_db_opt_by_name();
          - check_db_dir_existence();
      sql/sql_show.cc:
        Eliminate duplicated code by using
        check_db_dir_existence() and load_db_opt_by_name()
      sql/sql_table.cc:
        Eliminate duplicated code by using
        check_db_dir_existence() and load_db_opt_by_name()
      sql/sql_yacc.yy:
        Call sp_head::init_sp_name() to initialize stored routine name.
      51ce3a0e
  5. 25 Jul, 2006 2 commits
    • unknown's avatar
      Bug#20543 select on information_schema strange warnings, view, different schemas/users · eaf279df
      unknown authored
      The fix is: if user has privileges to view fields and user has any
      (insert,select,delete,update) privileges on underlying view 
      then 'show fields' and select from I_S.COLUMNS table are sucsessful.
      
      
      mysql-test/r/information_schema_db.result:
        Bug#20543 select on information_schema strange warnings, view, different schemas/users
        test result
      mysql-test/t/information_schema_db.test:
        Bug#20543 select on information_schema strange warnings, view, different schemas/users
        test case
      sql/sql_acl.cc:
        Bug#20543 select on information_schema strange warnings, view, different schemas/users
        checked that user has privileges on underlying view and if it's true
        set allowed_show to true for top view.
      sql/sql_show.cc:
        Bug#20543 select on information_schema strange warnings, view, different schemas/users
        removed unnecessary rights check.'tables->allowed_show' check is used instead
      sql/sql_view.cc:
        Bug#20543 select on information_schema strange warnings, view, different schemas/users
        skip the check of SHOW_VIEW_ACL privilege on underlying view. It is done later during
        execution of find_field_in_table_ref function.
      sql/table.h:
        Bug#20543 select on information_schema strange warnings, view, different schemas/users
        'allowed_show' is set during rights check for view. If true then user has privileges 
        for 'show create view', etc
      eaf279df
    • unknown's avatar
      Fixed bug #21231: wrong results for a simple query with a · 29e9526c
      unknown authored
      a non-correlated single-row subquery over information schema.
      
      The function get_all_tables filling all information schema
      tables reset lex->sql_command to SQLCOM_SHOW_FIELDS. After
      this the function could evaluate partial conditions related to
      some columns. If these conditions contained a subquery over
      information schema it led to a wrong evaluation and a wrong 
      result set.
      This bug was already fixed in 5.1.
      This patch follows the way how it was done in 5.1 where
      the value of lex->sql_command is set to SQLCOM_SHOW_FIELDS
      in get_all_tables only for the calls of the function 
      open_normal_and_derived_tables and is restored after these
      calls.
      
      
      mysql-test/r/information_schema.result:
        Added a test case for bug #21231.
      mysql-test/t/information_schema.test:
        Added a test case for bug #21231.
      29e9526c
  6. 22 Jul, 2006 1 commit
    • unknown's avatar
      Fixed bug #18925: wrong results for queries with · 3b3be5e2
      unknown authored
      subqueries on information schema that use MIN/MAX aggregation.
      
      Execution of some correlated subqueries may set the value
      of null_row to 1 for tables used in the subquery.
      If the the subquery is on information schema it causes
      rejection of any row for the following executions of
      the subquery in the case when an optimization filtering
      by some condition is applied.
      
      The fix restores the value of the null_row flag for 
      each execution of a subquery on information schema.
      
      
      mysql-test/r/information_schema.result:
        Added a test case for bug #18925.
      mysql-test/t/information_schema.test:
        Added a test case for bug #18925.
      sql/sql_show.cc:
        Fixed bug #18925.
        Execution of some correlated subqueries may set the value
        of null_row to 1 for tables used in the subquery.
        If the the subquery is on information schema it causes
        rejection of any row for the following execitions of
        the subquery in the case when an optimization filtering
        by some condition is applied.
        
        The fix restores the value of the null_row flag for 
        each execution of a subquery on information schema.
      3b3be5e2
  7. 29 Jun, 2006 3 commits
    • unknown's avatar
      Bug#20230: routine_definition is not null · 1e38eefa
      unknown authored
      SHOW CREATE PROCEDURE and SHOW CREATE FUNCTION are fixed as well as
      INFORMATION_SCHEMA.ROUTINES.ROUTINE_NAME.
      
      
      mysql-test/r/information_schema.result:
        Add result for bug#20230.
      mysql-test/t/information_schema.test:
        Add test case for bug#20230.
      sql/sp_head.cc:
        Return NULL for routine definition if the user doesn't have enough
        privilege to see it.
      sql/sql_show.cc:
        Make INFORMATION_SCHEMA.ROUTINES.ROUTINE_NAME NULL-able.  Return
        NULL if the user doesn't have enough privilege to see routine
        definition.
      1e38eefa
    • unknown's avatar
      Fix for bug#13934 Silent truncation of table comments · bf36ba49
      unknown authored
      Table comment: issue a warning(error in traditional mode) if length of comment > 60 symbols
      Column comment: issue a warning(error in traditional mode) if length of comment > 255 symbols
      Table 'comment' is changed from char* to LEX_STRING
      
      
      mysql-test/r/strict.result:
        test case
      mysql-test/t/strict.test:
        test case
      sql/handler.h:
        Table 'comment' is changed from char* to LEX_STRING
      sql/sql_show.cc:
        Table 'comment' is changed from char* to LEX_STRING
      sql/sql_table.cc:
        Table 'comment' is changed from char* to LEX_STRING
      sql/sql_yacc.yy:
        Table 'comment' is changed from char* to LEX_STRING
      sql/table.cc:
        Table 'comment' is changed from char* to LEX_STRING
      sql/table.h:
        Table 'comment' is changed from char* to LEX_STRING
      sql/unireg.cc:
        Fix for bug#13934 Silent truncation of table comments
        Table comment: issue a warning(error in traditional mode) if length of comment > 60 symbols
        Column comment: issue a warning(error in traditional mode) if length of comment > 255 symbols
      bf36ba49
    • unknown's avatar
      Bug#19671 mysql_list_fields returns incorrect table name for VIEWs · bffd7752
      unknown authored
      After view onening real view db name and table name are placed
      into table_list->view_db & table_list->view_name.
      Item_field class does not handle these names properly during 
      intialization of Send_field.
      The fix is to use new class 'Item_ident_for_show' 
      which sets correct view db name and table name for Send_field.
      
      
      sql/item.cc:
        Bug#19671 mysql_list_fields returns incorrect table name for VIEWs
        new Item_ident_for_show class which correctly sets view db and table names
        for Send_field.
      sql/item.h:
        Bug#19671 mysql_list_fields returns incorrect table name for VIEWs
        new Item_ident_for_show class which correctly sets view db and table names
        for Send_field.
      sql/sql_show.cc:
        Bug#19671 mysql_list_fields returns incorrect table name for VIEWs
        new Item_ident_for_show is used for views
      tests/mysql_client_test.c:
        Bug#19671 mysql_list_fields returns incorrect table name for VIEWs
        test case
      bffd7752
  8. 13 Jun, 2006 1 commit
  9. 06 Jun, 2006 1 commit
    • unknown's avatar
      Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1 · 105f1cee
      unknown authored
      fix: return db name for I_S.TABLES(and others) in original letter case.
      if mysql starts with lower_case_table_names=1 | 2 then original db name is converted
      to lower case(for I_S tables). It happens when we perform add_table_to_list. 
      to avoid this we make a copy of original db name and use the copy hereafter.
      
      
      mysql-test/r/lowercase_table2.result:
        Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1
        test case
      mysql-test/t/lowercase_table2.test:
        Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1
        test case
      105f1cee
  10. 30 May, 2006 1 commit
    • unknown's avatar
      Bug#17204 "second CALL to procedure crashes Server" · 0838a57e
      unknown authored
      Bug#18282 "INFORMATION_SCHEMA.TABLES provides inconsistent info about invalid views"
      This bug caused crashes or resulted in wrong data being returned
      when one tried to obtain information from I_S tables about views
      using stored functions.
      
      It was caused by the fact that we were using LEX representing
      statement which were doing select from I_S tables as active LEX
      when contents of I_S table were built. So state of this LEX both
      affected and was affected by open_tables() calls which happened
      during this process. This resulted in wrong behavior and in
      violations of some of invariants which caused crashes.
      
      This fix tries to solve this problem by properly saving/resetting
      and restoring part of LEX which affects and is affected by the
      process of opening tables and views in get_all_tables() routine.
      To simplify things we separated this part of LEX in a new class
      and made LEX its descendant.
      
      
      mysql-test/r/information_schema_db.result:
        test case
      mysql-test/t/information_schema_db.test:
        test case
      sql/sql_lex.cc:
        To simplify saving/resetting and restoring part of LEX which
        affects and is affected by the process of opening tables and
        views we moved it to new class Query_tables_list and made LEX
        descendant of this class. Also introduced two LEX methods 
        which can be used to save and reset or to restore this state.
      sql/sql_lex.h:
        To simplify saving/resetting and restoring part of LEX which
        affects and is affected by the process of opening tables and
        views we moved it to new class Query_tables_list and made LEX
        descendant of this class. Also introduced two LEX methods 
        which can be used to save and reset or to restore this state.
      sql/sql_show.cc:
        Now in get_all_tables() routine we properly save/reset and
        restore part of LEX (statement table list and information
        about routines used) which affects and is affected by the
        process of opening tables and views.
      sql/sql_table.cc:
        Now we clean-up LEX after opening table (view) in two stages.
        In the first stage we call LEX::cleanup_after_one_table_open()
        to clean-up selects lists and derived tables state. In the
        second stage which happens after close_thread_tables() is
        invoked we call Query_tables_list::reset_query_tables_list(FALSE)
        to rollback changes in Query_tables_list.
      0838a57e
  11. 23 May, 2006 1 commit
    • unknown's avatar
      Bug#16681 information_schema shows forbidden VIEW details · 78b7b85d
      unknown authored
      show view definition to users that have the needed privilleges
      
      
      mysql-test/r/information_schema.result:
        Bug#16681 information_schema shows forbidden VIEW details
        test case
      mysql-test/t/information_schema.test:
        Bug#16681 information_schema shows forbidden VIEW details
        test case
      78b7b85d
  12. 12 May, 2006 2 commits
    • unknown's avatar
      Fix for bug#18177 any access to INFORMATION_SCHEMA.ROUTINES crashes · dc42ab6d
      unknown authored
      replaced get_field(MEM_ROOT *mem, Field *field) with 
      get_field(MEM_ROOT *mem, Field *field, String *res).
      It allows to avoid strlen().
      
      
      mysql-test/r/information_schema.result:
        Fix for bug#18177 any access to INFORMATION_SCHEMA.ROUTINES crashes
        test case
      mysql-test/t/information_schema.test:
        Fix for bug#18177 any access to INFORMATION_SCHEMA.ROUTINES crashes
        test case
      dc42ab6d
    • unknown's avatar
      Fix for bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH · fd0f0ca1
      unknown authored
      mysql-test/r/information_schema.result:
        Fix for bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH
        test case
      mysql-test/r/join.result:
        Fix for bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH
        result fix
      mysql-test/t/information_schema.test:
        Fix for bug#19236 bad COLUMNS.CHARACTER_MAXIMUM_LENGHT and CHARACTER_OCTET_LENGTH
        test case
      fd0f0ca1
  13. 04 May, 2006 1 commit
    • unknown's avatar
      Bug#19025 4.1 mysqldump doesn't correctly dump "auto_increment = [int]" · 64828eeb
      unknown authored
      mysqldump / SHOW CREATE TABLE will show the NEXT available value for
      the PK, rather than the *first* one that was available (that named in
      the original CREATE TABLE ... AUTO_INCREMENT = ... statement).
      
      This should produce correct and robust behaviour for the obvious use
      cases -- when no data were inserted, then we'll produce a statement
      featuring the same value the original CREATE TABLE had; if we dump
      with values, INSERTing the values on the target machine should set the
      correct next_ID anyway (and if not, we'll still have our AUTO_INCREMENT =
      ... to do that). Lastly, just the CREATE statement (with no data) for
      a table that saw inserts would still result in a table that new values
      could safely be inserted to).
      
      There seems to be no robust way however to see whether the next_ID
      field is > 1 because it was set to something else with CREATE TABLE
      ... AUTO_INCREMENT = ..., or because there is an AUTO_INCREMENT column
      in  the table (but no initial value was set with AUTO_INCREMENT = ...)
      and then one or more rows were INSERTed, counting up next_ID. This
      means that in both cases, we'll generate an AUTO_INCREMENT =
      ... clause in SHOW CREATE TABLE / mysqldump.  As we also show info on,
      say, charsets even if the user did not explicitly give that info in
      their own CREATE TABLE, this shouldn't be an issue.
      
      As per above, the next_ID will be affected by any INSERTs that have
      taken place, though.  This /should/ result in correct and robust
      behaviour, but it may look non-intuitive to some users if they CREATE
      TABLE ... AUTO_INCREMENT = 1000 and later (after some INSERTs) have
      SHOW CREATE TABLE give them a different value (say, CREATE TABLE
      ... AUTO_INCREMENT = 1006), so the docs should possibly feature a
      caveat to that effect.
      
      It's not very intuitive the way it works now (with the fix), but it's
      *correct*.  We're not storing the original value anyway, if we wanted
      that, we'd have to change on-disk representation?
      
      If we do dump/load cycles with empty DBs, nothing will change.  This
      changeset includes an additional test case that proves that tables
      with rows will create the same next_ID for AUTO_INCREMENT = ... across
      dump/restore cycles.
      
      Confirmed by support as likely solution for client's problem.
      
      
      mysql-test/r/auto_increment.result:
        test for creation of AUTO_INCREMENT=... clause
      mysql-test/r/gis-rtree.result:
        Add AUTO_INCREMENT=... clauses where appropriate
      mysql-test/r/mysqldump.result:
        show that AUTO_INCREMENT=... will survive dump/restore cycles
      mysql-test/r/symlink.result:
        Add AUTO_INCREMENT=... clauses where appropriate
      mysql-test/t/auto_increment.test:
        test for creation of AUTO_INCREMENT=... clause
      mysql-test/t/mysqldump.test:
        show that AUTO_INCREMENT=... will survive dump/restore cycles
      sql/sql_show.cc:
        Add AUTO_INCREMENT=... to output of SHOW CREATE TABLE if there is an
        AUTO_INCREMENT column, and NEXT_ID > 1 (the default).  We must not print
        the clause for engines that do not support this as it would break the
        import of dumps, but as of this writing, the test for whether
        AUTO_INCREMENT columns are allowed and wether AUTO_INCREMENT=...
        is supported is identical, !(file->table_flags() & HA_NO_AUTO_INCREMENT))
        Because of that, we do not explicitly test for the feature,
        but may extrapolate its existence from that of an AUTO_INCREMENT column.
      64828eeb
  14. 30 Apr, 2006 1 commit
    • unknown's avatar
      Fix for Bug#14515. · 46508e22
      unknown authored
      sql/set_var.cc:
        Fix for Bug#14515. These modes do not need restrictions, they're handled
        separately in sql_show.cc
      46508e22
  15. 20 Mar, 2006 2 commits
    • unknown's avatar
      Fix for bug#18224 VIEW on information_schema crashes the server · e10ec04a
      unknown authored
        additional check for subselect
      
      
      mysql-test/r/information_schema.result:
        Fix for bug#18224 VIEW on information_schema crashes the server
          test case
      mysql-test/t/information_schema.test:
        Fix for bug#18224 VIEW on information_schema crashes the server
          test case
      e10ec04a
    • unknown's avatar
      Fix for bug #18113 "SELECT * FROM information_schema.xxx crashes server" · 2f0459df
      unknown authored
      Crash happened when one selected data from one of INFORMATION_SCHEMA
      tables and in order to build its contents server had to open view which
      used stored function and table or view on which one had not global or
      database-level privileges (e.g. had only table-level or had no
      privileges at all).
      
      The crash was caused by usage of check_grant() function, which assumes
      that either number of tables to be inspected by it is limited explicitly
      or table list used and thd->lex->query_tables_own_last value correspond
      to each other (the latter should be either 0 or point to next_global
      member of one of elements of this table list), in conditions when
      above assumptions were not true. This fix just explicitly limits
      number of tables to be inspected. Other negative effects which are
      caused by the fact that thd->lex->query_tables_own_last might not
      be set properly during processing of I_S tables are less disastrous
      and will be reported and fixed separetely.
      
      
      
      mysql-test/r/information_schema_db.result:
        Fix for bug #18113 "SELECT * FROM information_schema.xxx crashes server"
          test case
      mysql-test/t/information_schema_db.test:
        Fix for bug #18113 "SELECT * FROM information_schema.xxx crashes server"
          test case
      sql/sql_acl.cc:
          added note
      2f0459df
  16. 10 Mar, 2006 1 commit
    • unknown's avatar
      Additional fix for BUG#16777: Can not create trigger nor view · 8947b799
      unknown authored
      w/o definer if --skip-grant-tables specified.
        
      The previous patch does not allow to specify empty host name in
      DEFINER-clause explicitly.
      
      
      mysql-test/r/skip_grants.result:
        Updated the result file.
      mysql-test/r/view_grant.result:
        Updated the result file.
      mysql-test/t/skip_grants.test:
        Added test cases for BUG#16777; re-organized tests.
      mysql-test/t/view_grant.test:
        Updated after final fix of BUG#16777.
      sql/sql_parse.cc:
        The final part of fixing BUG#16777: allow empty host name in explicitly
        specified DEFINER-clause.
      sql/sql_show.cc:
        Quote an identifier if it is empty.
      8947b799
  17. 09 Mar, 2006 1 commit
  18. 27 Feb, 2006 1 commit
  19. 13 Feb, 2006 1 commit
  20. 29 Jan, 2006 1 commit
    • unknown's avatar
      information_schema_db.result, information_schema.result: · 5c142d36
      unknown authored
        Fix test result.
      table.h, sql_show.cc:
        Put I_S tables in lexical order.
      
      
      sql/sql_show.cc:
        Put I_S tables in lexical order.
      sql/table.h:
        Put I_S tables in lexical order.
      mysql-test/r/information_schema.result:
        Fix test result.
      mysql-test/r/information_schema_db.result:
        Fix test result.
      5c142d36
  21. 24 Jan, 2006 1 commit
  22. 12 Jan, 2006 1 commit
    • unknown's avatar
      sql_show.cc: · ac2ac086
      unknown authored
        after-merge fix for
        bug#15581 COALESCE function truncates mutli-byte TINYTEXT values
      
      
      sql/sql_show.cc:
        after-merge fix for bug#15581 COALESCE function truncates mutli-byte TINYTEXT values
        ,
      ac2ac086
  23. 10 Jan, 2006 1 commit
    • unknown's avatar
      Fix for BUG#15110: mysqldump --triggers: does not include DEFINER clause · fffe9d4f
      unknown authored
      There are two main idea of this fix:
        - introduce a common function for server and client to split user value
          (<user name>@<host name>) into user name and host name parts;
        - dump DEFINER clause in correct format in mysqldump.
      
      
      BitKeeper/etc/ignore:
        added client/my_user.c libmysqld/my_user.c sql/my_user.c
      client/Makefile.am:
        Use my_user.c in linking of mysqldump executable.
      client/mysqldump.c:
        Fix for BUG#15110(mysqldump --triggers: does not include DEFINER clause)
      include/Makefile.am:
        Add my_user.c
      include/mysql_com.h:
        Introduce a constant for max user length.
      libmysqld/Makefile.am:
        Add my_user.c
      mysql-test/r/mysqldump.result:
        Update result file.
      sql-common/Makefile.am:
        Add my_user.c
      sql/Makefile.am:
        Add my_user.c
      sql/sp.cc:
        Use constant for max user length.
      sql/sp_head.cc:
        Use common function to parse user value.
      sql/sql_acl.cc:
        Use constant for max user length.
      sql/sql_parse.cc:
        Use constant for ma...
      fffe9d4f
  24. 03 Jan, 2006 2 commits
    • unknown's avatar
      many warnings (practically safe but annoying) corrected · 12e22065
      unknown authored
      client/mysqladmin.cc:
        don't use the handler after it's closed
      client/mysqlbinlog.cc:
        memory leak
      client/mysqldump.c:
        many "ignore return value" warnings, one "NULL dereference"
      cmd-line-utils/libedit/history.c:
        memory leak
      include/my_base.h:
        cleanup
      libmysql/libmysql.c:
        "return value ignored" warning
      myisam/mi_delete.c:
        "return value ignored" warning
      myisam/myisampack.c:
        "out-of-bound access" warning
      myisam/sort.c:
        "double free" warning
      mysys/default_modify.c:
        "double free" warning
      mysys/mf_iocache2.c:
        "return value ignored" warnings
      mysys/my_bitmap.c:
        s/return/DBUG_RETURN/
      mysys/my_error.c:
        memory leak
      server-tools/instance-manager/parse.cc:
        "NULL dereference" warning
      sql-common/client.c:
        "NULL dereference" warning
      sql/field.cc:
        deadcode, "NULL dereference", "uninitialized" warnings
      sql/field.h:
        unused parameters removed from constructor
      sql/ha_myisam.cc:
        "return value ignored" warnings
      sql/item.cc:
        "return val...
      12e22065
    • unknown's avatar
      Fix for bug#15533 crash, information_schema, function, view · 22c97333
      unknown authored
        enable view prepared mode during getting metedata for I_S table
      
      
      mysql-test/r/information_schema.result:
        Fix for bug#15533 crash, information_schema, function, view
          test case
      mysql-test/t/information_schema.test:
        Fix for bug#15533 crash, information_schema, function, view
          test case
      22c97333
  25. 19 Dec, 2005 2 commits
    • unknown's avatar
      Fix for bug#14271 I_S: columns has no size for (var)binary columns · bc66ca62
      unknown authored
        set character_octet_length, character_maximum_length for
        binary and varbinary field types
      
      
      mysql-test/r/information_schema.result:
        Fix for bug#14271 I_S: columns has no size for (var)binary columns
          test case
      mysql-test/t/information_schema.test:
        Fix for bug#14271 I_S: columns has no size for (var)binary columns
          test case
      bc66ca62
    • unknown's avatar
      Bug#12770 DESC cannot display the info. about temporary table · 959ce241
      unknown authored
      Bug#14387 SHOW COLUMNS doesn't work on temporary tables.
      Bug#15224 SHOW INDEX from temporary table doesn't work.
        Restore thd->temporary_tables to be able to process
        temporary tables(only for 'show index' & 'show columns').
        This should be changed when processing of temporary tables for
        I_S tables will be done.
      
      
      mysql-test/r/information_schema.result:
        Bug#12770 DESC cannot display the info. about temporary table
        Bug#14387 SHOW COLUMNS doesn't work on temporary tables.
        Bug#15224 SHOW INDEX from temporary table doesn't work.
          test case
      mysql-test/t/information_schema.test:
        Bug#12770 DESC cannot display the info. about temporary table
        Bug#14387 SHOW COLUMNS doesn't work on temporary tables.
        Bug#15224 SHOW INDEX from temporary table doesn't work.
          test case
      959ce241
  26. 01 Dec, 2005 1 commit
    • unknown's avatar
      Fix for bug#14476 `information_schema`.`TABLES`.`TABLE_TYPE` with empty value · 65f8e2ab
      unknown authored
        store TABLES.TABLE_TYPE in case of error during table opening
      
      
      mysql-test/r/information_schema.result:
        Fix for bug#14476 `information_schema`.`TABLES`.`TABLE_TYPE` with empty value
          test case
      mysql-test/t/information_schema.test:
        Fix for bug#14476 `information_schema`.`TABLES`.`TABLE_TYPE` with empty value
          test case
      65f8e2ab
  27. 24 Nov, 2005 1 commit
  28. 20 Nov, 2005 1 commit
    • unknown's avatar
      Inefficient usage of String::append() fixed. · 5e047f6b
      unknown authored
      Bad examples of usage of a string with its length fixed.
      The incorrect length in the trigger file configuration descriptor
        fixed (BUG#14090).
      A hook for unknown keys added to the parser to support old .TRG files.
      
      
      sql/field.cc:
        Inefficient usage of String::append() fixed.
        Bad examples of usage of a string with its length fixed.
      sql/ha_berkeley.cc:
        A bad example of usage of a string with its length fixed.
      sql/ha_federated.cc:
        Inefficient usage of String::append() fixed.
      sql/ha_myisammrg.cc:
        Bad examples of usage of a string with its length fixed.
      sql/handler.cc:
        Inefficient usage of String::append() fixed.
      sql/item.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item.h:
        A bad example of usage of a string with its length fixed.
      sql/item_cmpfunc.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_func.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_strfunc.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_subselect.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_sum.cc:
        Bad examples of usage of a string with its length fixed.
        Inefficient usage of String::append() fixed.
      sql/item_timefunc.cc:
        Inefficient using of String::append() fixed.
        Bad examples of usage of a string with its length fixed.
      sql/item_uniq.h:
        Bad examples of usage of a string with its length fixed.
      sql/key.cc:
        Bad examples of usage of a string with its length fixed.
      sql/log.cc:
        Bad examples of usage of a string with its length fixed.
      sql/log_event.cc:
        Bad examples of usage of a string with its length fixed.
      sql/mysqld.cc:
        The dummy parser hook allocated.
      sql/opt_range.cc:
        Inefficient usage of String::append() fixed.
      sql/parse_file.cc:
        Bad examples of usage of a string with its length fixed.
        A hook for unknown keys added to the parser.
      sql/parse_file.h:
        A hook for unknown keys added to the parser.
      sql/protocol.cc:
        A bad example of usage of a string with its length fixed.
      sql/repl_failsafe.cc:
        Bad examples of usage of a string with its length fixed.
      sql/share/errmsg.txt:
        A warning for old format config file.
      sql/slave.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sp.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sp_head.cc:
        Bad examples of usage of a string with its length fixed.
      sql/spatial.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_acl.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_analyse.cc:
        Bad examples of usage of a string with its length fixed.
        Inefficient usage of String::append() fixed.
      sql/sql_lex.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_load.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_parse.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_prepare.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_select.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_show.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_string.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_string.h:
        The macro definition moved to sql_string.h to
          be accessible in all parts of server.
      sql/sql_table.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_trigger.cc:
        Bad examples of usage of a string with its length fixed.
        The incorrect length in the trigger file configuration descriptor
          fixed (BUG#14090).
        The hook for processing incorrect sql_mode record added.
      sql/sql_view.cc:
        A dummy  hook used for parsing views.
      sql/structs.h:
        The macro definition moved to sql_string.h to be
          accessible in all parts of server.
      sql/table.cc:
        A bad example of usage of a string with its length fixed.
      sql/tztime.cc:
        A bad example of usage of a string with its length fixed.
      5e047f6b
  29. 11 Nov, 2005 1 commit
    • unknown's avatar
      Fix for bug#13818 SHOW CREATE VIEW / TABLE and information_schema.views fail · d2205238
      unknown authored
                        for invalid view
       Permit SHOW CREATE VIEW, SHOW CREATE TABLE, and retrieval of metadata from
       information_schema for invalid views
      
      
      mysql-test/r/information_schema.result:
        Fix for bug#13818 SHOW CREATE VIEW / TABLE and information_schema.views fail 
                          for invalid view
         test case
      mysql-test/t/information_schema.test:
        Fix for bug#13818 SHOW CREATE VIEW / TABLE and information_schema.views fail 
                          for invalid view
         test case
      d2205238
  30. 10 Nov, 2005 2 commits
    • unknown's avatar
      WL#2818 (Add creator to the trigger definition for privilege · 9da2ba78
      unknown authored
      checks on trigger activation)
      
      
      mysql-test/r/information_schema.result:
        Update result file: a new column DEFINER has been added to
        INFORMATION_SCHEMA.TRIGGERS.
      mysql-test/r/mysqldump.result:
        Update result file: a new column DEFINER has been added to
        INFORMATION_SCHEMA.TRIGGERS.
      mysql-test/r/rpl_ddl.result:
        Update result file: a new column DEFINER has been added to
        INFORMATION_SCHEMA.TRIGGERS.
      mysql-test/r/rpl_sp.result:
        Update result file: a new clause DEFINER has been added to
        CREATE TRIGGER statement.
      mysql-test/r/rpl_trigger.result:
        Results for new test cases were added.
      mysql-test/r/skip_grants.result:
        Error message has been changed.
      mysql-test/r/trigger.result:
        Added DEFINER column.
      mysql-test/r/view.result:
        Error messages have been changed.
      mysql-test/r/view_grant.result:
        Error messages have been changed.
      mysql-test/t/mysqldump.test:
        Drop created procedure to not affect further tests.
      mysql-test/t/rpl_trigger.test:
        Add tests for new column in information schema.
      mysql-test/t/skip_grants.test:
        Error tag has been renamed.
      mysql-test/t/view.test:
        Error tag has been renamed.
      mysql-test/t/view_grant.test:
        Error tag has been changed.
      sql/item_func.cc:
        Fix typo in comments.
      sql/mysql_priv.h:
        A try to minimize copy&paste:
          - introduce operations to be used from sql_yacc.yy;
          - introduce an operation to be used from trigger and
            view processing code.
      sql/share/errmsg.txt:
        - Rename ER_NO_VIEW_USER to ER_MALFORMED_DEFINER in order to
          be shared for view and trigger implementations;
        - Fix a typo;
        - Add a new error code for trigger warning.
      sql/sp.cc:
        set_info() was split into set_info() and set_definer().
      sql/sp_head.cc:
        set_info() was split into set_info() and set_definer().
      sql/sp_head.h:
        set_info() was split into set_info() and set_definer().
      sql/sql_acl.cc:
        Add a new check: exit from the cycle if the table is NULL.
      sql/sql_lex.h:
        - Rename create_view_definer to definer, since it is used for views
          and triggers;
        - Change st_lex_user to LEX_USER, since st_lex_user is a structure.
          So, formally, it should be "struct st_lex_user", which is longer
          than just LEX_USER;
        - Add trigger_definition_begin.
      sql/sql_parse.cc:
        - Add a new check: exit from the cycle if the table is NULL;
        - Implement definer-related functions.
      sql/sql_show.cc:
        Add DEFINER column.
      sql/sql_trigger.cc:
        Add DEFINER support for triggers.
      sql/sql_trigger.h:
        Add DEFINER support for triggers.
      sql/sql_view.cc:
        Rename create_view_definer to definer.
      sql/sql_yacc.yy:
        Add support for DEFINER-clause in CREATE TRIGGER statement.
        
        Since CREATE TRIGGER and CREATE VIEW can be similar at the start,
        yacc is unable to distinguish between them. So, had to modify both
        statements in order to make it parsable by yacc.
      mysql-test/r/trigger-compat.result:
        Result file for triggers backward compatibility test.
      mysql-test/r/trigger-grant.result:
        Result file of the test for WL#2818.
      mysql-test/t/trigger-compat.test:
        Triggers backward compatibility test: check that the server
        still can load triggers w/o definer attribute and modify
        tables with such triggers (add a new trigger, etc).
      mysql-test/t/trigger-grant.test:
        Test for WL#2818 -- check that DEFINER support in triggers
        works properly
      9da2ba78
    • unknown's avatar
      Added handlerton flag to make storage engines invisable via flag. · b816696e
      unknown authored
      mysql-test/r/ps_1general.result:
        Remove binlog from visable engine list.
      sql/handler.h:
        Added documentation to HTON's
      sql/log.cc:
        binlog now has hidden flag show that it does now show up in show storage engine list.
      sql/sql_show.cc:
        Flag removes engines from view in show storage engines
      b816696e
  31. 03 Nov, 2005 1 commit
    • unknown's avatar
      Changes in get_table_type() and mysql_frm_type(). The main problem was · 2ca2aecd
      unknown authored
      that in mysql_rm_table_part2_with_lock() previously we needed to open
      same file twice. Now once is enough.
      
      
      sql/mysql_priv.h:
        Merged functions get_table_type() and mysql_frm_type() into one,
        using the name from latter one.
      sql/sql_base.cc:
        Changed get_table_type() to mysql_frm_type()
      sql/sql_delete.cc:
        Changed get_table_type() to mysql_frm_type()
      sql/sql_rename.cc:
        Changed get_table_type() to mysql_frm_type()
      sql/sql_show.cc:
        Changed get_table_type() to mysql_frm_type()
      sql/sql_table.cc:
        Changed get_table_type() to mysql_frm_type()
      sql/sql_view.cc:
        Merged code from get_table_type() and mysql_frm_type() into the latter one.
      sql/sql_view.h:
        Function prototype changes.
      sql/table.cc:
        No longer needed.
      2ca2aecd
  32. 01 Nov, 2005 1 commit