1. 30 Apr, 2007 1 commit
  2. 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
  3. 26 Apr, 2007 1 commit
  4. 25 Apr, 2007 2 commits
  5. 24 Apr, 2007 2 commits
    • unknown's avatar
      Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime · 7ac04a52
      unknown authored
      into  weblab.(none):/home/marcsql/TREE/mysql-5.0-25411_d
      
      
      sql/item_func.cc:
        Auto merged
      sql/log_event.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/slave.cc:
        Auto merged
      sql/sp.cc:
        Auto merged
      sql/sp_head.cc:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_prepare.cc:
        Auto merged
      sql/sql_view.cc:
        Auto merged
      7ac04a52
    • unknown's avatar
      Bug#25411 (trigger code truncated), PART I · b5eae718
      unknown authored
      The issue found with bug 25411 is due to the function skip_rear_comments()
      which damages the source code while implementing a work around.
      The root cause of the problem is in the lexical analyser, which does not
      process special comments properly.
      For special comments like :
      [1] aaa /*!50000 bbb */ ccc
      since 5.0 is a version older that the current code, the parser is in lining
      the content of the special comment, so that the query to process is
      [2] aaa bbb ccc
      However, the text of the query captured when processing a stored procedure,
      stored function or trigger (or event in 5.1), can be after rebuilding it:
      [3] aaa bbb */ ccc
      which is wrong.
      
      To fix bug 25411 properly, the lexical analyser needs to return [2] when
      in lining special comments.
      In order to implement this, some preliminary cleanup is required in the code,
      which is implemented by this patch.
      
      Before this change, the structure named LEX (or st_lex) contains attributes
      that belong to lexical analysis, as well as attributes that represents the
      abstract syntax tree (AST) of a statement.
      Creating a new LEX structure for each statements (which makes sense for the
      AST part) also re-initialized the lexical analysis phase each time, which
      is conceptually wrong.
      
      With this patch, the previous st_lex structure has been split in two:
      - st_lex represents the Abstract Syntax Tree for a statement. The name "lex"
      has not been changed to avoid a bigger impact in the code base.
      - class lex_input_stream represents the internal state of the lexical
        analyser, which by definition should *not* be reinitialized when parsing
        multiple statements from the same input stream.
      
      This change is a pre-requisite for bug 25411, since the implementation of
      lex_input_stream will later improve to deal properly with special comments,
      and this processing can not be done with the current implementation of
      sp_head::reset_lex and sp_head::restore_lex, which interfere with the lexer.
      
      This change set alone does not fix bug 25411.
      
      
      sql/item_func.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/log_event.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/mysql_priv.h:
        Refactoring, separate lex_input_stream from st_lex.
      sql/slave.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sp.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sp_head.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sp_head.h:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_class.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_class.h:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_lex.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_lex.h:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_parse.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_prepare.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_trigger.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_view.cc:
        Refactoring, separate lex_input_stream from st_lex.
      sql/sql_yacc.yy:
        Refactoring, separate lex_input_stream from st_lex.
      b5eae718
  6. 21 Apr, 2007 6 commits
  7. 20 Apr, 2007 20 commits
    • unknown's avatar
      manual merge · 5bca4ecf
      unknown authored
      5bca4ecf
    • unknown's avatar
      Merge bk-internal.mysql.com:/data0/bk/mysql-5.0 · e06bc9e9
      unknown authored
      into  bk-internal.mysql.com:/data0/bk/mysql-5.0-opt
      
      
      sql/item_cmpfunc.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/sql_view.cc:
        Auto merged
      e06bc9e9
    • unknown's avatar
      Merge weblab.(none):/home/marcsql/TREE/mysql-5.0-base · 21ce495f
      unknown authored
      into  weblab.(none):/home/marcsql/TREE/mysql-5.0-rt-merge
      
      
      mysql-test/r/sp.result:
        Auto merged
      mysql-test/t/sp.test:
        Auto merged
      21ce495f
    • unknown's avatar
      Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base · 5d6fdbdf
      unknown authored
      into  weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge
      
      
      client/mysqldump.c:
        Auto merged
      mysql-test/t/sp.test:
        Auto merged
      sql/event_data_objects.cc:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/sp_head.cc:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      5d6fdbdf
    • unknown's avatar
      Merge moonbone.local:/mnt/gentoo64/work/bk-trees/mysql-5.0-opt · 49907421
      unknown authored
      into  moonbone.local:/mnt/gentoo64/work/bk-trees/mysql-5.1-opt
      
      
      mysql-test/r/func_str.result:
        Auto merged
      mysql-test/r/key.result:
        Auto merged
      mysql-test/r/row.result:
        Auto merged
      mysql-test/r/subselect.result:
        Auto merged
      mysql-test/r/subselect3.result:
        Auto merged
      mysql-test/r/view.result:
        Auto merged
      mysql-test/t/func_str.test:
        Auto merged
      mysql-test/t/key.test:
        Auto merged
      sql/item_cmpfunc.cc:
        Auto merged
      sql/item_cmpfunc.h:
        Auto merged
      sql/item_strfunc.h:
        Auto merged
      sql/item_subselect.h:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/sql_view.cc:
        Auto merged
      mysql-test/t/view.test:
        Manually merged
      sql/sql_lex.h:
        Manually merged
      49907421
    • unknown's avatar
      Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.0 · 7925f977
      unknown authored
      into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1
      
      
      BitKeeper/deleted/.del-rpl_critical_errors.result:
        Delete: mysql-test/r/rpl_critical_errors.result
      7925f977
    • unknown's avatar
      Added missing result file for rpl_critical_errors. · b7d2d38e
      unknown authored
      
      mysql-test/r/rpl_critical_errors.result:
        New BitKeeper file ``mysql-test/r/rpl_critical_errors.result''
      b7d2d38e
    • unknown's avatar
      Adding missing result file for rpl_critical_errors. · bea102d6
      unknown authored
      
      mysql-test/r/rpl_critical_errors.result:
        New BitKeeper file ``mysql-test/r/rpl_critical_errors.result''
      bea102d6
    • unknown's avatar
      Merge gshchepa.loc:/home/uchum/work/bk-trees/mysql-5.0-opt · 69ed5e93
      unknown authored
      into  gshchepa.loc:/home/uchum/work/bk-trees/mysql-5.0-opt-27704
      
      69ed5e93
    • unknown's avatar
      Merge gshchepa.loc:/home/uchum/work/bk-trees/mysql-4.1-opt-27704 · cfc3d36b
      unknown authored
      into  gshchepa.loc:/home/uchum/work/bk-trees/mysql-5.0-opt-27704
      
      
      mysql-test/r/subselect.result:
        Auto merged
      mysql-test/t/row.test:
        Auto merged
      mysql-test/r/row.result:
        Test case updated for Bug#27704 (incorrect comparison
        of rows with NULL components).
      sql/item_cmpfunc.cc:
        Bug#27704: incorrect comparison of rows with NULL components.
      sql/item_cmpfunc.h:
        Bug#27704: incorrect comparison of rows with NULL components.
        Cosmetic fix.
      cfc3d36b
    • unknown's avatar
      Bug#27704: incorrect comparison of rows with NULL components · 986508fc
      unknown authored
      Support for NULL components was incomplete for row comparison,
      fixed.  Added support for abort_on_null at compare_row() like
      in 5.x
      
      
      sql/item_cmpfunc.h:
        Bug#27704: incorrect comparison of rows with NULL components
        Added support for abort_on_null at Item_bool_func2
        like in 5.x
      sql/item_cmpfunc.cc:
        Bug#27704: incorrect comparison of rows with NULL components
        Support for NULL components was incomplete for row comparison,
        fixed. Added support for abort_on_null at compare_row() like
        in 5.x
      mysql-test/t/row.test:
        Test case updated for Bug#27704 (incorrect comparison 
        of rows with NULL components)
      mysql-test/r/row.result:
        Test case updated for Bug#27704 (incorrect comparison 
        of rows with NULL components)
      mysql-test/r/subselect.result:
        Test case updated for Bug#27704 (incorrect comparison 
        of rows with NULL components)
      986508fc
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · c9cd7956
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B27786-5.0-opt
      
      c9cd7956
    • unknown's avatar
      Bug #24778: Innodb: No result when using ORDER BY · 04bc5f89
      unknown authored
      This bug was intruduced by the fix for bug#17212 (in 4.1). It is not 
      ok to call test_if_skip_sort_order since this function will 
      alter the execution plan. By contract it is not ok to call 
      test_if_skip_sort_order in this context.
      
      This bug appears only in the case when the optimizer has chosen 
      an index for accessing a particular table but finds a covering 
      index that enables it to skip ORDER BY. This happens in 
      test_if_skip_sort_order.
      
      
      mysql-test/r/key.result:
        Bug#24778
        
        test case.
        
        The bug causes the result to be the empty set.
      mysql-test/t/key.test:
        Bug#24778
        
        The minimal test case that reveals the bug. The reason for such a 
        complicated schema is that we have to convince the optimizer to 
        pick one index, then discard it in order to be able to skip 
        ORDER BY.
      sql/sql_select.cc:
        bug#24778
        
        Removed the call to test_if_skip_sort_order that constituted the
        bug.
      04bc5f89
    • unknown's avatar
      Merge romeo.(none):/home/bk/merge-mysql-5.0 · ae91025e
      unknown authored
      into  romeo.(none):/home/bk/merge-mysql-5.1
      
      
      client/mysql.cc:
        Auto merged
      sql/ha_ndbcluster.cc:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item_cmpfunc.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      sql/sql_delete.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_table.cc:
        Auto merged
      configure.in:
        Merging 5.0 into 5.1
      sql/slave.cc:
        Merging 5.0 into 5.1
      ae91025e
    • unknown's avatar
      Merge romeo.(none):/home/bkroot/mysql-5.1-rpl · cffd4f88
      unknown authored
      into  romeo.(none):/home/bk/merge-mysql-5.1
      
      
      BitKeeper/etc/ignore:
        auto-union
      client/mysql.cc:
        Auto merged
      client/mysqlbinlog.cc:
        Auto merged
      configure.in:
        Auto merged
      client/mysqltest.c:
        Auto merged
      mysql-test/r/rpl_ndb_basic.result:
        Auto merged
      mysql-test/t/disabled.def:
        Auto merged
      sql/CMakeLists.txt:
        Auto merged
      sql/ha_ndbcluster.cc:
        Auto merged
      sql/ha_ndbcluster.h:
        Auto merged
      sql/ha_ndbcluster_binlog.cc:
        Auto merged
      sql/log.cc:
        Auto merged
      sql/log_event.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/slave.cc:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_repl.cc:
        Auto merged
      cffd4f88
    • unknown's avatar
      Merge romeo.(none):/home/bkroot/mysql-5.0-rpl · 46a82c19
      unknown authored
      into  romeo.(none):/home/bk/merge-mysql-5.0
      
      
      client/mysql.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/slave.cc:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      46a82c19
    • unknown's avatar
      Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl · ba95432e
      unknown authored
      into  romeo.(none):/home/bkroot/mysql-5.0-rpl
      
      ba95432e
    • unknown's avatar
      Merge romeo.(none):/home/bkroot/mysql-5.1-rpl · 3c7a22b2
      unknown authored
      into  romeo.(none):/home/bk/b27779-mysql-5.1-rpl
      
      3c7a22b2
    • unknown's avatar
      Disabling test case rpl_ndb_circular_simplex · 740fcc76
      unknown authored
      740fcc76
    • unknown's avatar
      Bug #27786: · d8aa3a12
      unknown authored
      When merging views into the enclosing statement
      the ORDER BY clause of the view is merged to the
      parent's ORDER BY clause.
      However when the VIEW is merged into an UNION
      branch the ORDER BY should be ignored. 
      Use of ORDER BY for individual SELECT statements
      implies nothing about the order in which the rows
      appear in the final result because UNION by default
      produces unordered set of rows.
      Fixed by ignoring the ORDER BY clause from the merge
      view when expanded in an UNION branch.
      
      
      mysql-test/r/view.result:
        Bug #27786: test case
      mysql-test/t/view.test:
        Bug #27786: test case
      sql/sql_lex.h:
        Bug #27786: add a is_union() inlined function
        Returns true if the unit represents an UNION.
      sql/sql_view.cc:
        Bug #27786: ignore ORDER BY in mergeable views when in UNION context
      d8aa3a12
  8. 19 Apr, 2007 3 commits
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt · 81dc94e7
      unknown authored
      into  magare.gmz:/home/kgeorge/mysql/autopush/B27530-5.0-opt
      
      81dc94e7
    • unknown's avatar
      Bug#27499 DROP TABLE race with SHOW TABLE STATUS · 61975440
      unknown authored
      They can drop table after table names list creation and before table opening.
      We open non existing table and get ER_NO_SUCH_TABLE error.
      In this case we do not store the record into I_S table and clear error.
      
      
      sql/sql_show.cc:
        Hide error for not existing table
      61975440
    • unknown's avatar
      corrrection of test case · bdb59262
      unknown authored
      
      mysql-test/r/ndb_binlog_ddl_multi.result:
        corrrection of test case
        (this was actually a bug that had not been spotted, that was fixed by previous patch)
      bdb59262
  9. 18 Apr, 2007 4 commits
    • unknown's avatar
      revert back to old show_binlog_events asto many test failures, and create a... · 46f187b9
      unknown authored
      revert back to old show_binlog_events asto many test failures, and create a show_binlog_events2 instead
      
      
      BitKeeper/etc/ignore:
        Added client/log_event_old.cc client/log_event_old.h client/rpl_record_old.cc client/rpl_record_old.h libmysqld/log_event_old.cc libmysqld/rpl_record.cc libmysqld/rpl_record_old.cc to the ignore list
      mysql-test/include/show_binlog_events2.inc:
        New BitKeeper file ``mysql-test/include/show_binlog_events2.inc''
      46f187b9
    • unknown's avatar
      Bug #27076 · 18eec637
      unknown authored
       - test case
      
      
      sql/ha_ndbcluster_binlog.cc:
        drop table not logged when it should
      mysql-test/r/ndb_binlog_log_bin.result:
        New BitKeeper file ``mysql-test/r/ndb_binlog_log_bin.result''
      mysql-test/t/ndb_binlog_log_bin.test:
        New BitKeeper file ``mysql-test/t/ndb_binlog_log_bin.test''
      18eec637
    • unknown's avatar
      Bug #27076 Cluster does not honor SQL_LOG_BIN flag · 33582e01
      unknown authored
      - both for data schema operations
      - also make sure schema events vet the right server id when injected into the binlog
      - use same mechanism to signal server_id in bug#17095, and reserve some "id's" for flagging special conditions on the event, in this case do not log it
      - enable printing of server ids in the testcases to show that we cot it right
      
      33582e01
    • unknown's avatar
      Bug#17095 circular replication · 7f5fd989
      unknown authored
      - make sure any value is set for linked operations as well, e.g. blob tables
      
      7f5fd989