An error occurred fetching the project authors.
  1. 06 Sep, 2007 1 commit
    • unknown's avatar
      sp.result: · d0145027
      unknown authored
        Post-merge fix.
      
      
      mysql-test/r/sp.result:
        Post-merge fix.
      d0145027
  2. 05 Sep, 2007 1 commit
    • unknown's avatar
      The test case for Bug#29936 doesn't work with the embedded version, · c6119599
      unknown authored
      the first query is not running while we are doing wait queries on
      a second connection.
      
      
      mysql-test/r/sp.result:
        Remove test case result for Bug#29936, moving to sp_notembedded.result
      mysql-test/r/sp_notembedded.result:
        Test case result for Bug#29936, moved from sp.result
      mysql-test/t/sp.test:
        Remove test case for Bug#29936, moving to sp_notembedded.test
      mysql-test/t/sp_notembedded.test:
        Test case result for Bug#29936, moved from sp.test
      c6119599
  3. 03 Sep, 2007 1 commit
    • unknown's avatar
      Bug#29408 Cannot find view in columns table if the selection contains a function · 3e600534
      unknown authored
      Use view db name as thread default database, in order to ensure
      that the view is parsed and prepared correctly.
      
      
      mysql-test/r/sp.result:
        test result
      mysql-test/t/sp.test:
        test case
      sql/sql_parse.cc:
        copy thd->db_length to table_list->db_length
      sql/sql_view.cc:
        Use view db name as thread default database, in order to ensure
        that the view is parsed and prepared correctly.
      3e600534
  4. 29 Aug, 2007 2 commits
  5. 24 Aug, 2007 1 commit
  6. 03 Aug, 2007 2 commits
    • unknown's avatar
      Cleanup created procedures in sp.test · 1db7d2e2
      unknown authored
      mysql-test/r/sp.result:
        Cleanup created procedures
      mysql-test/t/sp.test:
        Cleanup created procedures
      1db7d2e2
    • unknown's avatar
      Many files: · 8b7f6b8a
      unknown authored
        Post-merge fix.
      
      
      mysql-test/r/binlog_unsafe.result:
        Post-merge fix.
      mysql-test/r/events_bugs.result:
        Post-merge fix.
      mysql-test/r/events_trans.result:
        Post-merge fix.
      mysql-test/r/sp.result:
        Post-merge fix.
      mysql-test/r/sp_gis.result:
        Post-merge fix.
      mysql-test/r/xml.result:
        Post-merge fix.
      8b7f6b8a
  7. 31 Jul, 2007 1 commit
    • unknown's avatar
      sql_yacc.yy, sp.result, disabled.def: · cae1bff7
      unknown authored
        Post-merge fix.
      
      
      mysql-test/t/disabled.def:
        Post-merge fix.
      mysql-test/r/sp.result:
        Post-merge fix.
      sql/sql_yacc.yy:
        Post-merge fix.
      cae1bff7
  8. 29 Jul, 2007 1 commit
    • unknown's avatar
      Fixed bug #30120. · bfea827a
      unknown authored
      SP with local variables with non-ASCII names crashed the server.
      
      The server replaces SP local variable names with NAME_CONST calls
      when putting statements into the binary log. It used UTF8-encoded
      item names as variable names for the replacement inside NAME_CONST
      calls. However, statement string may be encoded by any
      known character set by the SET NAMES statement.
      The server used byte length of UTF8-encoded names to increment
      the position in the query string that led to array index overrun.
      
      
      sql/item.cc:
        Fixed bug #30120.
        The Item_splocal class constructor has been modified to
        accept new parameter `len_in_q': the byte length of
        variable name in the query string.
      sql/item.h:
        Fixed bug #30120.
        The Item_splocal class has been modified to keep new
        field `len_in_query': the byte length of variable name in
        the query string.
      sql/sp_head.cc:
        Fixed bug #30120.
        The subst_spvars function has been modified to increment
        position in the query string by the lengths of not
        encoded variable names instead of byte length of names
        encoded to UTF-8.
      sql/sql_yacc.yy:
        Fixed bug #30120.
        The simple_ident rule action has been modified to
        pass the byte length of the local variable name token
        to the Item_splocal object constructor.
      mysql-test/t/sp.test:
        Updated test case for bug #30120.
      mysql-test/r/sp.result:
        Updated test case for bug #30120.
      bfea827a
  9. 28 Jul, 2007 1 commit
    • unknown's avatar
      Fixed bug #29834. · 6ed4e3dd
      unknown authored
      Using view columns by their names during an execution of
      a prepared SELECT statement or a SELECT statement inside
      a SP caused a memory leak.
      
      
      sql/sql_base.cc:
        Fixed bug #29834.
        The find_field_in_view function has been modified to
        use the execution memory root for the Item_direct_view_ref
        objects allocation at non-first executions of
        a PS/SP instead of the statement memory.
      mysql-test/t/sp.test:
        Updated test case for bug #29834.
      mysql-test/r/sp.result:
        Updated test case for bug #29834.
      6ed4e3dd
  10. 21 Jul, 2007 1 commit
    • unknown's avatar
      sp.test, sp.result: · 8dad5fff
      unknown authored
        Additional test case fix for bug #29338.
      
      
      mysql-test/t/sp.test:
        Additional test case fix for bug #29338.
      mysql-test/r/sp.result:
        Additional test case fix for bug #29338.
      8dad5fff
  11. 19 Jul, 2007 1 commit
    • unknown's avatar
      Fixed bug #29338. · 2ececf4e
      unknown authored
      Optimization of queries with DETERMINISTIC functions in the
      WHERE clause was not effective: sequential scan was always
      used.
      Now a SF with the DETERMINISTIC flags is treated as constant
      when it's arguments are constants (or a SF doesn't has arguments).
      
      
      sql/item_func.h:
        Fixed bug #29338.
        The Item_func_sp::used_tables has been removed
        (virtual Item_func::used_tables function is enough).
        The virtual Item_func_sp::update_used_tables function
        has been added.
      sql/item_func.cc:
        Fixed bug #29338.
        The Item_func_sp::update_used_tables and the
        Item_func_sp::fix_field functions have been modified
        to take into account the DETERMINISTIC flag of SF definition.
      mysql-test/r/sp.result:
        Updated test case for bug #29338.
      mysql-test/t/sp.test:
        Updated test case for bug #29338.
      2ececf4e
  12. 16 Jul, 2007 1 commit
    • unknown's avatar
      Post-merge fixes (merge from the main). · ff0c64f7
      unknown authored
      mysql-test/r/innodb_mysql.result:
        Update test results (merge from the main tree).
      mysql-test/r/query_cache.result:
        Update test results (merge from the main tree).
      mysql-test/r/sp.result:
        Update test results (merge from the main tree).
      mysql-test/t/query_cache.test:
        Use --echo End of to simplify future merges.
      sql/handler.h:
        st_table_list -> TABLE_LIST
      sql/item_create.cc:
        A post-merge fix (this code is in sql_yacc.yy in 5.0)
      sql/rpl_utility.h:
        st_table_list -> TABLE_LIST
      sql/sp.cc:
        A post-merge fix.
      sql/sp_head.cc:
        In 5.1 memdup_root returns void*.
      sql/sql_show.cc:
        st_table_list -> TABLE_LIST
      sql/sql_show.h:
        st_table_list -> TABLE_LIST
      sql/sql_yacc.yy:
        A post-merge fix.
      sql/table.cc:
        st_table_list -> TABLE_LIST
      sql/table.h:
        st_table_list -> TABLE_LIST
      ff0c64f7
  13. 05 Jul, 2007 1 commit
    • unknown's avatar
      A fix and a test case for Bug#29050 Creation of a legal stored procedure · da85f965
      unknown authored
      fails if a database is not selected prior.
      
      The problem manifested itself when a user tried to
      create a routine that had non-fully-qualified identifiers in its bodies
      and there was no current database selected.
      
      This is a regression introduced by the fix for Bug 19022:
      
      The patch for Bug 19022 changes the code to always produce a warning
      if we can't resolve the current database in the parser. 
      In this case this was not necessary, since even though the produced
      parsed tree was incorrect, we never re-use sphead
      that was obtained at first parsing of CREATE PROCEDURE.
      The sphead that is anyhow used is always obtained through db_load_routine,
      and there we change the current database to sphead->m_db before
      calling yyparse.
      
      The idea of the fix is to resolve the current database directly using 
      lex->sphead->m_db member when parsing a stored routine body, when
      such is present.
      
      This patch removes the need to reset the current database
      when loading a trigger or routine definition into SP cache.
      The redundant code will be removed in 5.1.
      
      
      mysql-test/r/sp.result:
        Update test results (Bug#29050)
      mysql-test/r/trigger.result:
        Update results.
      mysql-test/t/sp.test:
        Add a test case for Bug#29050
      mysql-test/t/trigger.test:
        Fix wrong behavior covered with tests.
      sql/sql_lex.cc:
        Implement st_lex::copy_db_to().
      sql/sql_lex.h:
        Declare st_lex::copy_db_to().
      sql/sql_parse.cc:
        Use st_lex::copy_db_to() in add_table_to_list, rather than
        THD::copy_db_to(). The former will use the database of the sphead,
        if we're parsing a stored routine, not the default database in
        THD. The default database is needed to initialize tables->db
        when the database part was not explicitly specified in the identifier.
      sql/sql_yacc.yy:
        Use st_lex::copy_db_to() in the parser, rather than
        THD::copy_db_to(). The former will use the database of the sphead,
        if we're parsing a stored routine, not the default database in
        THD.
      da85f965
  14. 04 Jul, 2007 1 commit
    • unknown's avatar
      A fix and a teset case for Bug#28551 The warning · d30d026e
      unknown authored
      'No database selected' is reported when calling stored procedures
      
      Remove the offending warning introduced by the fix for Bug
      25082
      This minimal patch relies on the intrinsic knowledge of the fact that
      mysql_change_db is never called with 'force_switch' set to TRUE
      when such a warning may be needed:
       * every stored routine belongs to a database (unlike, e.g., a 
      user defined function, which does not), so if we're activating the
      database of a stored routine, it can never be NULL.
      Therefore, this branch is never called for activation.
       * if we're restoring the 'old' current database after routine
      execution is complete, we should not issue a warning, since it's OK to 
      call a routine without having previously selected the current database.
      
      TODO: 'force_switch' is an ambiguous flag, since we do not actually
      have to 'force' the switch in case of stored routines at all.
      When we activate the routine's database, we should perform
      all the checks as in case of 'use db', and so we already do (in this
      case 'force_switch' is unused).
      When we load a routine into cache, we should not use mysql_change_db
      at all, since there it's enough to call thd->reset_db(). We
      do it this way for triggers, but code for routines is different (wrongly). 
      
      TODO: bugs are lurking in replication, since it bypasses mysql_change_db
      and calls thd->[re_]set_db to set the current database.
      The latter does not change thd->db_charset, thd->sctx->db_access
      and thd->variables.collation_database (and this may have nasty side
      effects).
      
      These todo items are to be addressed in a separate patch, if at all.
      
      
      mysql-test/r/sp.result:
        Update results (Bug#28551)
      mysql-test/t/sp.test:
        Add a test case (Bug#28551)
      sql/sp.cc:
        Remove an obsolete comment.
        Replace a check with an assert.
      sql/sql_db.cc:
        Remove the offending warning introduced by the fix for Bug
        25082
        This minimal patch relies on the intrinsic knowledge of the fact that
        mysql_change_db is never called with 'force_switch' set to TRUE
        when such a warning may be needed.
      d30d026e
  15. 28 Jun, 2007 1 commit
    • unknown's avatar
      Patch for the following bugs: · 68860f28
      unknown authored
        - BUG#11986: Stored routines and triggers can fail if the code
          has a non-ascii symbol
        - BUG#16291: mysqldump corrupts string-constants with non-ascii-chars
        - BUG#19443: INFORMATION_SCHEMA does not support charsets properly
        - BUG#21249: Character set of SP-var can be ignored
        - BUG#25212: Character set of string constant is ignored (stored routines)
        - BUG#25221: Character set of string constant is ignored (triggers)
      
      There were a few general problems that caused these bugs:
      1. Character set information of the original (definition) query for views,
         triggers, stored routines and events was lost.
      2. mysqldump output query in client character set, which can be
         inappropriate to encode definition-query.
      3. INFORMATION_SCHEMA used strings with mixed encodings to display object
         definition;
      
      1. No query-definition-character set.
      
      In order to compile query into execution code, some extra data (such as
      environment variables or the database character set) is used. The problem
      here was that this context was not preserved. So, on the next load it can
      differ from the original one, thus the result will be different.
      
      The context contains the following data:
        - client character set;
        - connection collation (character set and collation);
        - collation of the owner database;
      
      The fix is to store this context and use it each time we parse (compile)
      and execute the object (stored routine, trigger, ...).
      
      2. Wrong mysqldump-output.
      
      The original query can contain several encodings (by means of character set
      introducers). The problem here was that we tried to convert original query
      to the mysqldump-client character set.
      
      Moreover, we stored queries in different character sets for different
      objects (views, for one, used UTF8, triggers used original character set).
      
      The solution is
        - to store definition queries in the original character set;
        - to change SHOW CREATE statement to output definition query in the
          binary character set (i.e. without any conversion);
        - introduce SHOW CREATE TRIGGER statement;
        - to dump special statements to switch the context to the original one
          before dumping and restore it afterwards.
      
      Note, in order to preserve the database collation at the creation time,
      additional ALTER DATABASE might be used (to temporary switch the database
      collation back to the original value). In this case, ALTER DATABASE
      privilege will be required. This is a backward-incompatible change.
      
      3. INFORMATION_SCHEMA showed non-UTF8 strings
      
      The fix is to generate UTF8-query during the parsing, store it in the object
      and show it in the INFORMATION_SCHEMA.
      
      Basically, the idea is to create a copy of the original query convert it to
      UTF8. Character set introducers are removed and all text literals are
      converted to UTF8.
      
      This UTF8 query is intended to provide user-readable output. It must not be
      used to recreate the object.  Specialized SHOW CREATE statements should be
      used for this.
      
      The reason for this limitation is the following: the original query can
      contain symbols from several character sets (by means of character set
      introducers).
      
      Example:
      
        - original query:
          CREATE VIEW v1 AS SELECT _cp1251 'Hello' AS c1;
      
        - UTF8 query (for INFORMATION_SCHEMA):
          CREATE VIEW v1 AS SELECT 'Hello' AS c1;
      
      
      client/mysqldump.c:
        Set original character set and collation before dumping definition query.
      include/my_sys.h:
        Move out-parameter to the end of list.
      mysql-test/lib/mtr_report.pl:
        Ignore server-warnings during the test case.
      mysql-test/r/create.result:
        Update result file.
      mysql-test/r/ctype_cp932_binlog_stm.result:
        Update result file.
      mysql-test/r/events.result:
        Update result file.
      mysql-test/r/events_bugs.result:
        Update result file.
      mysql-test/r/events_grant.result:
        Update result file.
      mysql-test/r/func_in.result:
        Update result file.
      mysql-test/r/gis.result:
        Update result file.
      mysql-test/r/grant.result:
        Update result file.
      mysql-test/r/information_schema.result:
        Update result file.
      mysql-test/r/information_schema_db.result:
        Update result file.
      mysql-test/r/lowercase_view.result:
        Update result file.
      mysql-test/r/mysqldump.result:
        Update result file.
      mysql-test/r/ndb_sp.result:
        Update result file.
      mysql-test/r/ps.result:
        Update result file.
      mysql-test/r/rpl_replicate_do.result:
        Update result file.
      mysql-test/r/rpl_sp.result:
        Update result file.
      mysql-test/r/rpl_trigger.result:
        Update result file.
      mysql-test/r/rpl_view.result:
        Update result file.
      mysql-test/r/show_check.result:
        Update result file.
      mysql-test/r/skip_grants.result:
        Update result file.
      mysql-test/r/sp-destruct.result:
        Update result file.
      mysql-test/r/sp-error.result:
        Update result file.
      mysql-test/r/sp-security.result:
        Update result file.
      mysql-test/r/sp.result:
        Update result file.
      mysql-test/r/sql_mode.result:
        Update result file.
      mysql-test/r/system_mysql_db.result:
        Update result file.
      mysql-test/r/temp_table.result:
        Update result file.
      mysql-test/r/trigger-compat.result:
        Update result file.
      mysql-test/r/trigger-grant.result:
        Update result file.
      mysql-test/r/trigger.result:
        Update result file.
      mysql-test/r/view.result:
        Update result file.
      mysql-test/r/view_grant.result:
        Update result file.
      mysql-test/t/events.test:
        Update test case (new columns added).
      mysql-test/t/information_schema.test:
        Update test case (new columns added).
      mysql-test/t/show_check.test:
        Test case for SHOW CREATE TRIGGER in prepared statements and
        stored routines.
      mysql-test/t/sp-destruct.test:
        Update test case (new columns added).
      mysql-test/t/sp.test:
        Update test case (new columns added).
      mysql-test/t/view.test:
        Update test.
      mysys/charset.c:
        Move out-parameter to the end of list.
      scripts/mysql_system_tables.sql:
        Add new columns to mysql.proc and mysql.event.
      scripts/mysql_system_tables_fix.sql:
        Add new columns to mysql.proc and mysql.event.
      sql/event_data_objects.cc:
        Support new attributes for events.
      sql/event_data_objects.h:
        Support new attributes for events.
      sql/event_db_repository.cc:
        Support new attributes for events.
      sql/event_db_repository.h:
        Support new attributes for events.
      sql/events.cc:
        Add new columns to SHOW CREATE event resultset.
      sql/mysql_priv.h:
        1. Introduce Object_creation_ctx;
        2. Introduce SHOW CREATE TRIGGER;
        3. Introduce auxilary functions.
      sql/sp.cc:
        Add support for new store routines attributes.
      sql/sp_head.cc:
        Add support for new store routines attributes.
      sql/sp_head.h:
        Add support for new store routines attributes.
      sql/sql_lex.cc:
        Generate UTF8-body on parsing/lexing.
      sql/sql_lex.h:
        1. Generate UTF8-body on parsing/lexing.
        2. Introduce SHOW CREATE TRIGGER.
      sql/sql_parse.cc:
        Introduce SHOW CREATE TRIGGER.
      sql/sql_partition.cc:
        Update parse_sql().
      sql/sql_prepare.cc:
        Update parse_sql().
      sql/sql_show.cc:
        Support new attributes for views
      sql/sql_trigger.cc:
        Support new attributes for views
      sql/sql_trigger.h:
        Support new attributes for views
      sql/sql_view.cc:
        Support new attributes for views
      sql/sql_yacc.yy:
        1. Add SHOW CREATE TRIGGER statement.
        2. Generate UTF8-body for views, stored routines, triggers and events.
      sql/table.cc:
        Introduce Object_creation_ctx.
      sql/table.h:
        Introduce Object_creation_ctx.
      sql/share/errmsg.txt:
        Add new errors.
      mysql-test/include/ddl_i18n.check_events.inc:
        Aux file for test suite.
      mysql-test/include/ddl_i18n.check_sp.inc:
        Aux file for test suite.
      mysql-test/include/ddl_i18n.check_triggers.inc:
        Aux file for test suite.
      mysql-test/include/ddl_i18n.check_views.inc:
        Aux file for test suite.
      mysql-test/include/have_cp1251.inc:
        Aux file for test suite.
      mysql-test/include/have_cp866.inc:
        Aux file for test suite.
      mysql-test/include/have_koi8r.inc:
        Aux file for test suite.
      mysql-test/include/have_utf8.inc:
        Aux file for test suite.
      mysql-test/r/ddl_i18n_koi8r.result:
        Result file.
      mysql-test/r/ddl_i18n_utf8.result:
        Result file.
      mysql-test/r/have_cp1251.require:
        Aux file for test suite.
      mysql-test/r/have_cp866.require:
        Aux file for test suite.
      mysql-test/r/have_koi8r.require:
        Aux file for test suite.
      mysql-test/r/have_utf8.require:
        Aux file for test suite.
      mysql-test/t/ddl_i18n_koi8r.test:
        Complete koi8r test case for the CS patch.
      mysql-test/t/ddl_i18n_utf8.test:
        Complete utf8 test case for the CS patch.
      68860f28
  16. 26 Jun, 2007 1 commit
    • unknown's avatar
      Bug #29245: Bad Merge Caused Error Codes Conflict between 5.0/5.1 · 8f9547ca
      unknown authored
      Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      
      
      mysql-test/r/backup.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/events_bugs.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/events_trans.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/ndb_dd_basic.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/ndb_dd_ddl.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/ndb_gis.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/ndb_row_format.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_extraCol_innodb.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_extraCol_myisam.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_incident.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_ndb_extraCol.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_row_tabledefs_2myisam.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_row_tabledefs_3innodb.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/rpl_sp.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/select.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/show_check.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/sp.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/sp_gis.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/sp_trans.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/type_timestamp.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/warnings.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/r/xml.result:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/t/grant.test:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      mysql-test/t/partition_grant.test:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      sql/mysql_priv.h:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      sql/share/errmsg.txt:
        Fix some error messages so that all error codes are equivalent in 5.0 and 5.1
      8f9547ca
  17. 12 Jun, 2007 1 commit
    • unknown's avatar
      Bug#25411 (trigger code truncated), PART II · fdb35eea
      unknown authored
      Bug 28127 (Some valid identifiers names are not parsed correctly)
      Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func)
      
      This patch is the second part of a major cleanup, required to fix
      Bug 25411 (trigger code truncated).
      
      The root cause of the issue stems from the function skip_rear_comments,
      which was a work around to remove "extra" "*/" characters from the query
      text, when parsing a query and reusing the text fragments to represent a
      view, trigger, function or stored procedure.
      The reason for this work around is that "special comments",
      like /*!50002 XXX */, were not parsed properly, so that a query like:
        AAA /*!50002 BBB */ CCC
      would be seen by the parser as "AAA BBB */ CCC" when the current version
      is greater or equal to 5.0.2
      
      The root cause of this stems from how special comments are parsed.
      Special comments are really out-of-bound text that appear inside a query,
      that affects how the parser behave.
      In nature, /*!50002 XXX */ in MySQL is similar to the C concept
      of preprocessing :
        #if VERSION >= 50002
        XXX
        #endif
      
      Depending on the current VERSION of the server, either the special comment
      should be expanded or it should be ignored, but in all cases the "text" of
      the query should be re-written to strip the "/*!50002" and "*/" markers,
      which does not belong to the SQL language itself.
      
      Prior to this fix, these markers would leak into :
      - the storage format for VIEW,
      - the storage format for FUNCTION,
      - the storage format for FUNCTION parameters, in mysql.proc (param_list),
      - the storage format for PROCEDURE,
      - the storage format for PROCEDURE parameters, in mysql.proc (param_list),
      - the storage format for TRIGGER,
      - the binary log used for replication.
      
      In all cases, not only this cause format corruption, but also provide a vector
      for dormant security issues, by allowing to tunnel code that will be activated
      after an upgrade.
      
      The proper solution is to deal with special comments strictly during parsing,
      when accepting a query from the outside world.
      Once a query is parsed and an object is created with a persistant
      representation, this object should not arbitrarily mutate after an upgrade.
      In short, special comments are a useful but limited feature for MYSQLdump,
      when used at an *interface* level to facilitate import/export,
      but bloating the server *internal* storage format is *not* the proper way
      to deal with configuration management of the user logic.
      
      With this fix:
      - the Lex_input_stream class now acts as a comment pre-processor,
      and either expands or ignore special comments on the fly.
      - MYSQLlex and sql_yacc.yy have been cleaned up to strictly use the
      public interface of Lex_input_stream. In particular, how the input stream
      accepts or rejects a character is private to Lex_input_stream, and the
      internal buffer pointers of that class are strictly private, and should not
      be tempered with during parsing.
      
      This caused many changes mostly in sql_lex.cc.
      
      During the code cleanup in case MY_LEX_NUMBER_IDENT,
      Bug 28127 (Some valid identifiers names are not parsed correctly)
      was found and fixed.
      
      By parsing special comments properly, and removing the function
      'skip_rear_comments' [sic],
      Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func)
      has been fixed as well.
      
      
      sql/event_data_objects.cc:
        Cleanup of the code that extracts the query text
      sql/sp.cc:
        Cleanup of the code that extracts the query text
      sql/sp_head.cc:
        Cleanup of the code that extracts the query text
      sql/sql_trigger.cc:
        Cleanup of the code that extracts the query text
      sql/sql_view.cc:
        Cleanup of the code that extracts the query text
      mysql-test/r/comments.result:
        Bug#25411 (trigger code truncated)
      mysql-test/r/sp.result:
        Bug#25411 (trigger code truncated)
        Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func)
      mysql-test/r/trigger.result:
        Bug#25411 (trigger code truncated)
      mysql-test/r/varbinary.result:
        Bug 28127 (Some valid identifiers names are not parsed correctly)
      mysql-test/t/comments.test:
        Bug#25411 (trigger code truncated)
      mysql-test/t/sp.test:
        Bug#25411 (trigger code truncated)
        Bug 26302 (MySQL server cuts off trailing "*/" from comments in SP/func)
      mysql-test/t/trigger.test:
        Bug#25411 (trigger code truncated)
      mysql-test/t/varbinary.test:
        Bug 28127 (Some valid identifiers names are not parsed correctly)
      sql/sql_lex.cc:
        Implemented comment pre-processing in Lex_input_stream,
        major cleanup of the lex/yacc code to not use Lex_input_stream private members.
      sql/sql_lex.h:
        Implemented comment pre-processing in Lex_input_stream,
        major cleanup of the lex/yacc code to not use Lex_input_stream private members.
      sql/sql_yacc.yy:
        post merge fix : view_check_options must be parsed before signaling the end of the query
      fdb35eea
  18. 08 Jun, 2007 1 commit
    • unknown's avatar
      BUG#26976 - Missing table in merge not noted in related error msg + · a2b0edaa
      unknown authored
                  SHOW CREATE TABLE fails
      
      After merge fixes.
      
      
      mysql-test/r/backup.result:
        Fixed test result.
      mysql-test/r/sp.result:
        Fixed test result.
      sql/sql_table.cc:
        Fixed wrongly merged line. Moved "deprecated" warnings from sql_yacc.yy
        to mysql_backup_tables/mysql_restore_table.
      sql/sql_yacc.yy:
        Moved "deprecated" warnings from sql_yacc.yy to
        mysql_backup_tables/mysql_restore_table.
      storage/myisam/ha_myisam.cc:
        Do not report the same error twice.
      storage/myisammrg/ha_myisammrg.cc:
        Removed wrongly merged line.
      a2b0edaa
  19. 06 Jun, 2007 1 commit
    • unknown's avatar
      Bug #28842 Different 'duplicate key' error code between 5.0 and 5.1 · 0ec95959
      unknown authored
        The patch for WL 1563 added a new duplicate key error message so that the
        key name could be provided instead of the key number. But the error code
        for the new message was used even though that did not need to change.
      
        This could cause unnecessary problems for applications that used the old
        ER_DUP_ENTRY error code to detect duplicate key errors.
      
      
      mysql-test/t/auto_increment.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/create.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/create_select_tmp.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/ctype_ucs2_def.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/ctype_utf8.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/delayed.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/heap.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/heap_btree.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/heap_hash.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/innodb.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/insert_select.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/insert_update.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/join_outer.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/key.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/merge.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/myisam.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/ndb_basic.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/ndb_charset.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/ndb_index_unique.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/ndb_insert.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/ndb_replace.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/ndb_update.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/replace.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/rpl_err_ignoredtable.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/rpl_ndb_do_table.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/rpl_row_create_table.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/rpl_sp.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/show_check.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/sp-error.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/sp.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/sp_trans.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/sp_trans_log.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/temp_table.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/type_binary.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/type_bit.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/type_bit_innodb.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/type_blob.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/t/type_varchar.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/r/create.result:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/r/rpl_sp.result:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/r/sp.result:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/include/mix1.inc:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/include/mix2.inc:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/include/ps_modify.inc:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/include/query_cache.inc:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/include/varchar.inc:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/extra/binlog_tests/insert_select-binlog.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/extra/rpl_tests/rpl_auto_increment.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/extra/rpl_tests/rpl_foreign_key.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/extra/rpl_tests/rpl_insert_delayed.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/extra/rpl_tests/rpl_insert_id.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/extra/rpl_tests/rpl_insert_id_pk.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/extra/rpl_tests/rpl_loaddata.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/extra/rpl_tests/rpl_row_basic.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/extra/rpl_tests/rpl_stm_EE_err2.test:
        Update ER_DUP_ENTRY-related error message values
      mysql-test/extra/rpl_tests/rpl_trig004.test:
        Update ER_DUP_ENTRY-related error message values
      sql/handler.cc:
        Restore use of ER_DUP_ENTRY error code even when ER_DUP_ENTRY_WITH_KEY_NAME
        error message is being used. (Bug #28842)
      0ec95959
  20. 05 Jun, 2007 1 commit
    • unknown's avatar
      BUG#26976 - Missing table in merge not noted in related error msg + · 2b315dff
      unknown authored
                  SHOW CREATE TABLE fails
      
      Underlying table names, that merge engine fails to open were not
      reported.
      
      With this fix CHECK TABLE issued against merge table reports all
      underlying table names that it fails to open. Other statements
      are unaffected, that is underlying table names are not included
      into error message.
      
      This fix doesn't solve SHOW CREATE TABLE issue.
      
      
      myisammrg/myrg_def.h:
        Added myrg_print_wrong_table declaration.
      myisammrg/myrg_open.c:
        If HA_OPEN_FOR_REPAIR is passed to merge engine open function,
        report names of tables that we fail to open.
      mysql-test/r/backup.result:
        Updated test result.
      mysql-test/r/key_cache.result:
        Updated test result - removed duplicate error.
      mysql-test/r/lock.result:
        Updated test result - added summary row.
      mysql-test/r/merge.result:
        A test case for BUG#26976.
      mysql-test/r/preload.result:
        Updated test result - removed duplicate error, added summary row.
      mysql-test/r/ps.result:
        Updated test result - removed duplicate error, added summary row.
      mysql-test/r/repair.result:
        Updated test result - removed duplicate error, added summary row.
      mysql-test/r/rpl_failed_optimize.result:
        Updated test result - removed duplicate error, added summary row.
      mysql-test/r/sp.result:
        Updated test result - removed duplicate error, added summary row.
      mysql-test/r/view.result:
        Updated test result - removed duplicate error, added summary row.
      mysql-test/t/merge.test:
        A test case for BUG#26976.
      sql/ha_myisam.cc:
        Do not report same error twice.
      sql/ha_myisammrg.cc:
        If HA_OPEN_FOR_REPAIR is passed to merge engine open function,
        report names of tables that we fail to open.
        
        Added dummy ha_myisammrg::check to not confuse users with
        "not implemented" error in case all underlying tables are
        fine.
      sql/ha_myisammrg.h:
         Added ha_myisammrg::check declaration.
      sql/share/errmsg.txt:
        Added ER_ADMIN_WRONG_MRG_TABLE errno. It is used instead
        of ER_WRONG_MRG_TABLE in case HA_OPEN_FOR_REPAIR is
        passed to merge engine handler open function.
      sql/sql_error.cc:
        warning_level_* are now public. It is required by mysql_admin_table to
        report message level.
      sql/sql_error.h:
        warning_level_* are now public. It is required by mysql_admin_table to
        report message level.
      sql/sql_table.cc:
        Reorder mysql_admin_table arguments to meet it's definition.
        
        Report errors that are pending in thd->warn_list as results of
        admin function.
      2b315dff
  21. 01 Jun, 2007 2 commits
    • unknown's avatar
      A post-merge fix. · 9c6d0d33
      unknown authored
      9c6d0d33
    • unknown's avatar
      Fix some mysqltest warnings. · 75c45487
      unknown authored
      mysql-test/r/sp.result:
        Update results.
      mysql-test/t/mysql.test:
        Fix a typo.
      mysql-test/t/mysqltest.test:
        Fix a typo.
      mysql-test/t/order_by.test:
        Fix a typo.
      mysql-test/t/row.test:
        Remove an unsupported command.
      mysql-test/t/sp.test:
        Fix a typo.
      mysql-test/t/subselect3.test:
        Fix  mysqltest warnings - now it warns when sees some suspicious --
        comment
      75c45487
  22. 30 May, 2007 2 commits
    • unknown's avatar
      sp.result, analyse.result: · 4108ead9
      unknown authored
        Post merge fix.
      
      
      mysql-test/r/sp.result:
        Post merge fix.
      mysql-test/r/analyse.result:
        Post merge fix.
      4108ead9
    • unknown's avatar
      Bug #28492: subselect returns LONG in >5.0.24a and LONGLONG in <=5.0.24a · a61d53eb
      unknown authored
      Integer values with 10 digits may or may not fit into an int column 
      (e.g. 2147483647 vs 6147483647).
      Thus when creating a temp table column for such an int we must
      use bigint instead.
      Fixed to use bigint.
      Also subsituted a "magic number" with a named constant.
      
      
      mysql-test/r/analyse.result:
        Bug #28492: Adjusted the results after having fixed the bug
      mysql-test/r/metadata.result:
        Bug #28492: test case
      mysql-test/r/olap.result:
        Bug #28492: Adjusted the results after having fixed the bug
      mysql-test/r/sp.result:
        Bug #28492: Adjusted the results after having fixed the bug
      mysql-test/r/view.result:
        Bug #28492: Adjusted the results after having fixed the bug
      mysql-test/t/metadata.test:
        Bug #28492: test case
      sql/field.h:
        Bug #28492: Replaced a magic number with a constant
      sql/sql_select.cc:
        Bug #28492: Treat integers with 10 and more digits as 
        bigint.
      a61d53eb
  23. 29 May, 2007 1 commit
    • unknown's avatar
      Bug #28605: SHOW CREATE VIEW with views using stored_procedures no · 0c08d2b2
      unknown authored
       longer showing SP names.
      SHOW CREATE VIEW uses Item::print() methods to reconstruct the 
      statement text from the parse tree.
      The print() method for stored procedure calls needs allocate 
      space to print the function's quoted name.
      It was incorrectly calculating the length of the buffer needed 
      (was too short).
      Fixed to reflect the actual space needed.
      
      
      mysql-test/r/sp.result:
        Bug #28605: test case
      mysql-test/t/sp.test:
        Bug #28605: test case
      sql/item_func.cc:
        Bug #28605: fixed the string length calculation
      0c08d2b2
  24. 28 May, 2007 1 commit
    • unknown's avatar
      5.1 version of a fix and test cases for bugs: · e1e991b1
      unknown authored
      Bug#4968 ""Stored procedure crash if cursor opened on altered table"
      Bug#6895 "Prepared Statements: ALTER TABLE DROP COLUMN does nothing"
      Bug#19182 "CREATE TABLE bar (m INT) SELECT n FROM foo; doesn't work from 
      stored procedure."
      Bug#19733 "Repeated alter, or repeated create/drop, fails"
      Bug#22060 "ALTER TABLE x AUTO_INCREMENT=y in SP crashes server"
      Bug#24879 "Prepared Statements: CREATE TABLE (UTF8 KEY) produces a 
      growing key length" (this bug is not fixed in 5.0)
      
      Re-execution of CREATE DATABASE, CREATE TABLE and ALTER TABLE 
      statements in stored routines or as prepared statements caused
      incorrect results (and crashes in versions prior to 5.0.25).
      
      In 5.1 the problem occured only for CREATE DATABASE, CREATE TABLE
      SELECT and CREATE TABLE with INDEX/DATA DIRECTOY options).
        
      The problem of bugs 4968, 19733, 19282 and 6895 was that functions
      mysql_prepare_table, mysql_create_table and mysql_alter_table are not
      re-execution friendly: during their operation they modify contents
      of LEX (members create_info, alter_info, key_list, create_list),
      thus making the LEX unusable for the next execution.
      In particular, these functions removed processed columns and keys from
      create_list, key_list and drop_list. Search the code in sql_table.cc 
      for drop_it.remove() and similar patterns to find evidence.
        
      The fix is to supply to these functions a usable copy of each of the
      above structures at every re-execution of an SQL statement. 
        
      To simplify memory management, LEX::key_list and LEX::create_list
      were added to LEX::alter_info, a fresh copy of which is created for
      every execution.
        
      The problem of crashing bug 22060 stemmed from the fact that the above 
      metnioned functions were not only modifying HA_CREATE_INFO structure 
      in LEX, but also were changing it to point to areas in volatile memory
      of the execution memory root.
         
      The patch solves this problem by creating and using an on-stack
      copy of HA_CREATE_INFO in mysql_execute_command.
      
      Additionally, this patch splits the part of mysql_alter_table
      that analizes and rewrites information from the parser into
      a separate function - mysql_prepare_alter_table, in analogy with
      mysql_prepare_table, which is renamed to mysql_prepare_create_table.
      
      
      mysql-test/r/ps.result:
        Update test results (Bug#19182, Bug#22060, Bug#4968, Bug#6895)
      mysql-test/r/sp.result:
        Update results (Bug#19733)
      mysql-test/t/ps.test:
        Add test cases for Bug#19182, Bug#22060, Bug#4968, Bug#6895
      mysql-test/t/sp.test:
        Add a test case for Bug#19733
      sql/field.h:
        Implement a deep copy constructor for create_field
      sql/mysql_priv.h:
        LEX::key_list and LEX::create_list were moved to LEX::alter_info.
        Update declarations to use LEX::alter_info instead of these two
        members.
        Remove declarations of mysql_add_index, mysql_drop_index.
      sql/sql_class.cc:
        Implement deep copy constructors.
      sql/sql_class.h:
        Implement (almost) deep copy constructors for key_part_spec, 
        Alter_drop, Alter_column, Key, foreign_key.
        Replace pair<columns, keys> with an instance of Alter_info in
        select_create constructor. We create a new copy of Alter_info
        each time we re-execute SELECT .. CREATE prepared statement.
      sql/sql_insert.cc:
        Adjust to a new signature of create_table_from_items.
      sql/sql_lex.cc:
        Implement Alter_info::Alter_info that would make a "deep" copy
        of all definition lists (keys, columns).
        Move is_partition_management() from sql_partition.cc (feature-based
        file division is evil).
      sql/sql_lex.h:
        Move key_list and create_list to class Alter_info. Implement
        Alter_info::Alter_info that can be used with PS and SP.
        Get rid of Alter_info::clear() which was an attempt to save on
        matches and always use Alter_info::reset().
        Implement an auxiliary Alter_info::init_for_create_from_alter()
        which is used in mysql_alter_table.
      sql/sql_list.cc:
          Implement a copy constructor of class List that makes a deep copy
          of all list nodes.
      sql/sql_list.h:
        Implement a way to make a deep copy of all list nodes.
      sql/sql_parse.cc:
        Adjust to new signatures of mysql_create_table, mysql_alter_table,
        select_create. Functions mysql_create_index and mysql_drop_index has
        become identical after initialization of alter_info was moved to the 
        parser, and were merged. Flag enable_slow_log was not updated for 
        SQLCOM_DROP_INDEX, which was a bug.
        Just like CREATE INDEX, DROP INDEX is currently done via complete 
        table rebuild and is rightfully a slow administrative statement.
      sql/sql_partition.cc:
        Move is_partition_management() to sql_lex.cc
        Adjust code to the new Alter_info.
      sql/sql_table.cc:
        Adjust mysql_alter_table, mysql_recreate_table, mysql_create_table,
        mysql_prepare_table to new signatures.
        Rename mysql_prepare_table to mysql_prepare_create_table. Make
        sure it follows the convention and returns FALSE for success and
        TRUE for error.
        Move parts of mysql_alter_table to mysql_prepare_alter_table.
        Move the first invokation of mysql_prepare_table from mysql_alter_table
        to compare_tables, as it was needed only for the purpose
        of correct comparison.
        Since now Alter_info itself is created in the runtime mem root,
        adjust mysql_prepare_table to always allocate memory in the
        runtime memory root.
        Remove dead code.
      sql/sql_yacc.yy:
        LEX::key_list and LEX::create_list moved to class Alter_info
      e1e991b1
  25. 30 Apr, 2007 1 commit
    • unknown's avatar
      fix merge issues · c5c8e2f8
      unknown authored
      mysql-test/r/sp.result:
        manual merge
      sql/sql_lex.cc:
        merge typo
      c5c8e2f8
  26. 27 Apr, 2007 1 commit
    • unknown's avatar
      Bug#21513 (SP having body starting with quoted label rendered unusable) · 1e14d27b
      unknown authored
      Before this fix, the parser would sometime change where a token starts by
      altering Lex_input_string::tok_start, which later confused the code in
      sql_yacc.yy that needs to capture the source code of a SQL statement,
      like to represent the body of a stored procedure.
      
      This line of code in sql_lex.cc :
      
      case MY_LEX_USER_VARIABLE_DELIMITER:
        lip->tok_start= lip->ptr; // Skip first `
      
      would <skip the first back quote> ... and cause the bug reported.
      
      In general, the responsibility of sql_lex.cc is to *find* where token are
      in the SQL text, but is *not* to make up fake or incomplete tokens.
      With a quoted label like `my_label`, the token starts on the first quote.
      Extracting the token value should not change that (it did).
      
      With this fix, the lexical analysis has been cleaned up to not change
      lip->tok_start (in the case found for this bug).
      
      The functions get_token() and get_quoted_token() now have an extra
      parameters, used when some characters from the beginning of the token need
      to be skipped when extracting a token value, like when extracting 'AB' from
      '0xAB', for example, for a HEX_NUM token.
      
      This exposed a bad assumption in Item_hex_string and Item_bin_string,
      which has been fixed:
      
      The assumption was that the string given, 'AB', was in fact preceded in
      memory by '0x', which might be false (it can be preceded by "x'" and
      followed by "'" -- or not be preceded by valid memory at all)
      
      If a name is needed for Item_hex_string or Item_bin_string, the name is
      taken from the original and true source code ('0xAB'), and assigned in
      the select_item rule, instead of relying on assumptions related to how
      memory is used.
      
      
      mysql-test/r/sp.result:
        Lex_input_stream::tok_start must point at the real start of a token.
      mysql-test/t/sp.test:
        Lex_input_stream::tok_start must point at the real start of a token.
      sql/item.cc:
        Lex_input_stream::tok_start must point at the real start of a token.
      sql/sql_lex.cc:
        Lex_input_stream::tok_start must point at the real start of a token.
      sql/sql_yacc.yy:
        Lex_input_stream::tok_start must point at the real start of a token.
      1e14d27b
  27. 20 Apr, 2007 1 commit
  28. 14 Apr, 2007 1 commit
  29. 12 Apr, 2007 1 commit
  30. 05 Apr, 2007 1 commit
    • unknown's avatar
      Fixes for tests after merge from 5.0 · d6fba5d1
      unknown authored
      mysql-test/r/grant.result:
        Fixed a result. Editor added wrong characters.
      mysql-test/r/mysqlbinlog2.result:
        Fixed
      mysql-test/r/sp.result:
        Fixed a result, moved lines around.
      mysql-test/r/sp_trans.result:
        Fixed a result, moved lines around.
      mysql-test/t/mysqlbinlog2.test:
        Merged tests from 5.0
      mysql-test/t/sp_trans.test:
        Merged test from 5.0 and fixed to be compatible with 5.1
      sql/sql_class.cc:
        Merged from 5.0
      sql/sql_error.cc:
        Fixed push_warning()
      d6fba5d1
  31. 03 Apr, 2007 1 commit
    • unknown's avatar
      Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte · d05bbb4f
      unknown authored
      client/mysqldump.c:
        fixed typo
      include/mysql_com.h:
        added new constants SYSTEM_CHARSET_MBMAXLEN, NAME_CHAR_LEN, USERNAME_CHAR_LENGTH
        increased NAME_LEN, USERNAME_LENGTH
      mysql-test/r/create.result:
        result fix
      mysql-test/r/grant.result:
        result fix
      mysql-test/r/mysql.result:
        result fix
      mysql-test/r/sp.result:
        result fix
      mysql-test/t/create.test:
        test case
      mysql-test/t/grant.test:
        test case
      sql/events.cc:
        NAME_LEN is replaced with NAME_CHAR_LEN
      sql/item_strfunc.h:
        fixed calculation of max_length
      sql/mysql_priv.h:
        check_string_length function is replaced with check_string_byte_length
        added new function check_string_char_length
      sql/sp.cc:
        NAME_LEN is replaced with NAME_CHAR_LEN
      sql/sp_head.cc:
        NAME_LEN is replaced with NAME_CHAR_LEN
      sql/sp_head.h:
        changed parameter of 'check_routine_name' function
      sql/sql_class.cc:
        NAME_LEN is replaced with NAME_CHAR_LEN
      sql/share/errmsg.txt:
        increased argument lengths according to new constants
      sql/sql_parse.cc:
        removed unnecessary checks
        added function 'check_string_char_length'
      sql/sql_plugin.cc:
        check that name is not longer than NAME_CHAR_LEN symbols
      sql/sql_show.cc:
        NAME_LEN is replaced with NAME_CHAR_LEN
      sql/sql_table.cc:
        check that key name is not longer than NAME_LEN symbols
      sql/sql_udf.cc:
        check that udf name is not longer than NAME_CHAR_LEN symbols
      sql/sql_yacc.yy:
        check that user name is not longer than USERNAME_CHAR_LENGTH symbols
      sql/table.cc:
        check that db or table or column name is not longer than NAME_LEN symbols
      storage/innobase/handler/ha_innodb.cc:
        removed unnecessary multiplication
      tests/mysql_client_test.c:
        NAME_LEN is replaced with NAME_CHAR_LEN
      d05bbb4f
  32. 27 Mar, 2007 3 commits
    • unknown's avatar
      Fix for BUG#25082: default database change on trigger · 73664252
      unknown authored
      execution breaks replication.
      
      When a stored routine is executed, we switch current
      database to the database, in which the routine
      has been created. When the stored routine finishes,
      we switch back to the original database.
      
      The problem was that if the original database does not
      exist (anymore) after routine execution, we raised an error.
      
      The fix is to report a warning, and switch to the NULL database.
      
      
      mysql-test/r/sp.result:
        Updated result file.
      mysql-test/t/sp.test:
        Added test case for BUG#25082.
      sql/mysql_priv.h:
        1. Change mysql_change_db() prototype;
        2. Polishing.
      sql/sp.cc:
        Polishing.
      sql/sp_head.cc:
        Polishing.
      sql/sql_db.cc:
        1. Polishing.
        2. Fix mysql_change_db().
      sql/sql_parse.cc:
        Polishing.
      sql/sql_show.cc:
        Polishing.
      73664252
    • unknown's avatar
      manual merge · 77af3182
      unknown authored
      mysql-test/r/sp.result:
        Corrected error in test case:
        - 1.84e+19 converted to unsigned bigint should be converted to
          1840000000000000000 < 18446744073709551615.
        - This fails on windows and the failing test is extracted to a new
          bugreport.
      77af3182
    • unknown's avatar
      Corrected error in test case: · ca8f3cdf
      unknown authored
      - 1.84e+15 converted to unsigned bigint should be
        18400000000000000000 < 18446744073709551615.
      - The test will still fail on windows, and is extracted
        into a new bug report.
      
      ca8f3cdf
  33. 22 Mar, 2007 1 commit
    • unknown's avatar
      Bug #27354 stored function in where condition was always treated as const · 11f51002
      unknown authored
      Possible problems: function call could be eliminated from where class and only
      be evaluated once; function can be evaluated during table and item setup phase which could
      cause side effects not to be registered in binlog.
      
      Fixed with introducing func_item_sp::used_tables() returning the correct table_map constant.
      
      
      
      mysql-test/r/sp.result:
        results changed
      mysql-test/t/sp.test:
        regression test demonstrating that function's returns match where condition
        of the top-level query table.
      sql/item_func.h:
        private used_tables() method returning the correct table_bit with meaning the item is not
        a constant
      11f51002
  34. 19 Mar, 2007 1 commit
    • unknown's avatar
      Manual merge · 8e094a9c
      unknown authored
      mysql-test/r/sp.result:
        Manual merge.
        - lowercase 'default' changes to uppercase 'DEFAULT'
      sql/item_func.cc:
        Manual merge
        - shared tables is handled differently in 5.1.
        - Use of LEX_STRING instead of char*.
        - Dummy table allocated differently.
      8e094a9c