An error occurred fetching the project authors.
  1. 03 Feb, 2012 1 commit
  2. 20 Dec, 2011 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #794005. · 27380e4f
      Igor Babaev authored
      The function st_table::mark_virtual_columns_for_write() did not take into
      account the fact that for any table the value of st_table::vfield is 0
      when there are no virtual columns in the table definition.
      27380e4f
  3. 21 Jul, 2011 1 commit
    • unknown's avatar
      Fix of LP BUG#777809 · 20a2e1d0
      unknown authored
      There are 2 volatile condition constructions AND/OR constructions and fields(references) when first
      good supported to be top elements of conditions because it is normal practice
      (see copy_andor_structure for example) fields without any expression in the condition is really rare
      and mostly useless case however it could lead to problems when optimiser changes/moves them unaware
      of other variables referring to them. An easy solution of this problem is just to replace single field
      in a condition with equivalent expression well supported by the server (<field> -> <field> != 0).
      
      mysql-test/r/view.result:
        New test added.
      mysql-test/t/view.test:
        New test added.
      sql/sql_parse.cc:
        <field> -> <field> != 0
      sql/sql_yacc.yy:
        <field> -> <field> != 0
      20a2e1d0
  4. 08 Apr, 2011 1 commit
    • Gleb Shchepa's avatar
      Bug #11829681 - 60295: ERROR 1356 ON VIEW THAT EXECUTES FINE AS A QUERY · a77bc598
      Gleb Shchepa authored
      Select from a view with the underlying HAVING clause failed with a
      message: "1356: View '...' references invalid table(s) or column(s)
      or function(s) or definer/invoker of view lack rights to use them"
      
      The bug is a regression of the fix for bug 11750328 - 40825 (similar
      case, but the HAVING cause references an aliased field).
      In the old fix for bug 40825 the Item_field::name_length value has
      been used in place of the real length of Item_field::name. However,
      in some cases Item_field::name_length is not in sync with the
      actual name length (TODO: combine name and name_length into a
      solid String field).
      
      The Item_ref::print() method has been modified to calculate actual
      name length every time.
      
      
      mysql-test/r/view.result:
        Test case for bug #11829681
      mysql-test/t/view.test:
        Test case for bug #11829681
      sql/item.cc:
        Bug #11829681 - 60295: ERROR 1356 ON VIEW THAT EXECUTES FINE AS A QUERY
        
        The Item_ref::print() method has been modified to calculate actual
        name length every time.
      sql/item.h:
        Minor commentary.
      a77bc598
  5. 09 Feb, 2011 1 commit
    • MySQL Build Team's avatar
      Backport into build-201102032246-5.1.52sp1 · 89b9934c
      MySQL Build Team authored
      > ------------------------------------------------------------
      > revno: 3520
      > revision-id: sergey.glukhov@oracle.com-20101214093303-wmo9mqcb8rz0wv9f
      > parent: tor.didriksen@oracle.com-20101213161301-81lprlbune7r98dl
      > committer: Sergey Glukhov <sergey.glukhov@oracle.com>
      > branch nick: mysql-5.1-bugteam
      > timestamp: Tue 2010-12-14 12:33:03 +0300
      > message:
      >   Fixed following problems:
      >   --Bug#52157 various crashes and assertions with multi-table update, stored function
      >   --Bug#54475 improper error handling causes cascading crashing failures in innodb/ndb
      >   --Bug#57703 create view cause Assertion failed: 0, file .\item_subselect.cc, line 846
      >   --Bug#57352 valgrind warnings when creating view
      >   --Recently discovered problem when a nested materialized derived table is used
      >     before being populated and it leads to incorrect result
      >   
      >   We have several modes when we should disable subquery evaluation.
      >   The reasons for disabling are different. It could be
      >   uselessness of the evaluation as in case of 'CREATE VIEW'
      >   or 'PREPARE stmt', or we should disable subquery evaluation
      >   if tables are not locked yet as it happens in bug#54475, or
      >   too early evaluation of subqueries can lead to wrong result
      >   as it happened in Bug#19077.
      >   Main problem is that if subquery items are treated as const
      >   they are evaluated in ::fix_fields(), ::fix_length_and_dec()
      >   of the parental items as a lot of these methods have
      >   Item::val_...() calls inside.
      >   We have to make subqueries non-const to prevent unnecessary
      >   subquery evaluation. At the moment we have different methods
      >   for this. Here is a list of these modes:
      >   
      >   1. PREPARE stmt;
      >   We use UNCACHEABLE_PREPARE flag.
      >   It is set during parsing in sql_parse.cc, mysql_new_select() for
      >   each SELECT_LEX object and cleared at the end of PREPARE in
      >   sql_prepare.cc, init_stmt_after_parse(). If this flag is set
      >   subquery becomes non-const and evaluation does not happen.
      >   
      >   2. CREATE|ALTER VIEW, SHOW CREATE VIEW, I_S tables which
      >      process FRM files
      >   We use LEX::view_prepare_mode field. We set it before
      >   view preparation and check this flag in
      >   ::fix_fields(), ::fix_length_and_dec().
      >   Some bugs are fixed using this approach,
      >   some are not(Bug#57352, Bug#57703). The problem here is
      >   that we have a lot of ::fix_fields(), ::fix_length_and_dec()
      >   where we use Item::val_...() calls for const items.
      >   
      >   3. Derived tables with subquery = wrong result(Bug19077)
      >   The reason of this bug is too early subquery evaluation.
      >   It was fixed by adding Item::with_subselect field
      >   The check of this field in appropriate places prevents
      >   const item evaluation if the item have subquery.
      >   The fix for Bug19077 fixes only the problem with
      >   convert_constant_item() function and does not cover
      >   other places(::fix_fields(), ::fix_length_and_dec() again)
      >   where subqueries could be evaluated.
      >   
      >   Example:
      >   CREATE TABLE t1 (i INT, j BIGINT);
      >   INSERT INTO t1 VALUES (1, 2), (2, 2), (3, 2);
      >   SELECT * FROM (SELECT MIN(i) FROM t1
      >   WHERE j = SUBSTRING('12', (SELECT * FROM (SELECT MIN(j) FROM t1) t2))) t3;
      >   DROP TABLE t1;
      >   
      >   4. Derived tables with subquery where subquery
      >      is evaluated before table locking(Bug#54475, Bug#52157)
      >   
      >   Suggested solution is following:
      >   
      >   -Introduce new field LEX::context_analysis_only with the following
      >    possible flags:
      >    #define CONTEXT_ANALYSIS_ONLY_PREPARE 1
      >    #define CONTEXT_ANALYSIS_ONLY_VIEW    2
      >    #define CONTEXT_ANALYSIS_ONLY_DERIVED 4
      >   -Set/clean these flags when we perform
      >    context analysis operation
      >   -Item_subselect::const_item() returns
      >    result depending on LEX::context_analysis_only.
      >    If context_analysis_only is set then we return
      >    FALSE that means that subquery is non-const.
      >    As all subquery types are wrapped by Item_subselect
      >    it allow as to make subquery non-const when
      >    it's necessary.
      89b9934c
  6. 14 Dec, 2010 1 commit
    • Sergey Glukhov's avatar
      Fixed following problems: · fcb83cbf
      Sergey Glukhov authored
      --Bug#52157 various crashes and assertions with multi-table update, stored function
      --Bug#54475 improper error handling causes cascading crashing failures in innodb/ndb
      --Bug#57703 create view cause Assertion failed: 0, file .\item_subselect.cc, line 846
      --Bug#57352 valgrind warnings when creating view
      --Recently discovered problem when a nested materialized derived table is used
        before being populated and it leads to incorrect result
      
      We have several modes when we should disable subquery evaluation.
      The reasons for disabling are different. It could be
      uselessness of the evaluation as in case of 'CREATE VIEW'
      or 'PREPARE stmt', or we should disable subquery evaluation
      if tables are not locked yet as it happens in bug#54475, or
      too early evaluation of subqueries can lead to wrong result
      as it happened in Bug#19077.
      Main problem is that if subquery items are treated as const
      they are evaluated in ::fix_fields(), ::fix_length_and_dec()
      of the parental items as a lot of these methods have
      Item::val_...() calls inside.
      We have to make subqueries non-const to prevent unnecessary
      subquery evaluation. At the moment we have different methods
      for this. Here is a list of these modes:
      
      1. PREPARE stmt;
      We use UNCACHEABLE_PREPARE flag.
      It is set during parsing in sql_parse.cc, mysql_new_select() for
      each SELECT_LEX object and cleared at the end of PREPARE in
      sql_prepare.cc, init_stmt_after_parse(). If this flag is set
      subquery becomes non-const and evaluation does not happen.
      
      2. CREATE|ALTER VIEW, SHOW CREATE VIEW, I_S tables which
         process FRM files
      We use LEX::view_prepare_mode field. We set it before
      view preparation and check this flag in
      ::fix_fields(), ::fix_length_and_dec().
      Some bugs are fixed using this approach,
      some are not(Bug#57352, Bug#57703). The problem here is
      that we have a lot of ::fix_fields(), ::fix_length_and_dec()
      where we use Item::val_...() calls for const items.
      
      3. Derived tables with subquery = wrong result(Bug19077)
      The reason of this bug is too early subquery evaluation.
      It was fixed by adding Item::with_subselect field
      The check of this field in appropriate places prevents
      const item evaluation if the item have subquery.
      The fix for Bug19077 fixes only the problem with
      convert_constant_item() function and does not cover
      other places(::fix_fields(), ::fix_length_and_dec() again)
      where subqueries could be evaluated.
      
      Example:
      CREATE TABLE t1 (i INT, j BIGINT);
      INSERT INTO t1 VALUES (1, 2), (2, 2), (3, 2);
      SELECT * FROM (SELECT MIN(i) FROM t1
      WHERE j = SUBSTRING('12', (SELECT * FROM (SELECT MIN(j) FROM t1) t2))) t3;
      DROP TABLE t1;
      
      4. Derived tables with subquery where subquery
         is evaluated before table locking(Bug#54475, Bug#52157)
      
      Suggested solution is following:
      
      -Introduce new field LEX::context_analysis_only with the following
       possible flags:
       #define CONTEXT_ANALYSIS_ONLY_PREPARE 1
       #define CONTEXT_ANALYSIS_ONLY_VIEW    2
       #define CONTEXT_ANALYSIS_ONLY_DERIVED 4
      -Set/clean these flags when we perform
       context analysis operation
      -Item_subselect::const_item() returns
       result depending on LEX::context_analysis_only.
       If context_analysis_only is set then we return
       FALSE that means that subquery is non-const.
       As all subquery types are wrapped by Item_subselect
       it allow as to make subquery non-const when
       it's necessary.
      
      
      mysql-test/r/derived.result:
        test case
      mysql-test/r/multi_update.result:
        test case
      mysql-test/r/view.result:
        test case
      mysql-test/suite/innodb/r/innodb_multi_update.result:
        test case
      mysql-test/suite/innodb/t/innodb_multi_update.test:
        test case
      mysql-test/suite/innodb_plugin/r/innodb_multi_update.result:
        test case
      mysql-test/suite/innodb_plugin/t/innodb_multi_update.test:
        test case
      mysql-test/t/derived.test:
        test case
      mysql-test/t/multi_update.test:
        test case
      mysql-test/t/view.test:
        test case
      sql/item.cc:
        --removed unnecessary code
      sql/item_cmpfunc.cc:
        --removed unnecessary checks
        --THD::is_context_analysis_only() is replaced with LEX::is_ps_or_view_context_analysis()
      sql/item_func.cc:
        --refactored context analysis checks
      sql/item_row.cc:
        --removed unnecessary checks
      sql/item_subselect.cc:
        --removed unnecessary code
        --added DBUG_ASSERT into Item_subselect::exec()
          which asserts that subquery execution can not happen
          if LEX::context_analysis_only is set, i.e. at context
          analysis stage.
        --Item_subselect::const_item()
          Return FALSE if LEX::context_analysis_only is set.
          It prevents subquery evaluation in ::fix_fields &
          ::fix_length_and_dec at context analysis stage.
      sql/item_subselect.h:
        --removed unnecessary code
      sql/mysql_priv.h:
        --Added new set of flags.
      sql/sql_class.h:
        --removed unnecessary code
      sql/sql_derived.cc:
        --added LEX::context_analysis_only analysis intialization/cleanup
      sql/sql_lex.cc:
        --init LEX::context_analysis_only field
      sql/sql_lex.h:
        --New LEX::context_analysis_only field
      sql/sql_parse.cc:
        --removed unnecessary code
      sql/sql_prepare.cc:
        --removed unnecessary code
        --added LEX::context_analysis_only analysis intialization/cleanup
      sql/sql_select.cc:
        --refactored context analysis checks
      sql/sql_show.cc:
        --added LEX::context_analysis_only analysis intialization/cleanup
      sql/sql_view.cc:
        --added LEX::context_analysis_only analysis intialization/cleanup
      fcb83cbf
  7. 06 Apr, 2010 1 commit
    • Sergey Glukhov's avatar
      Bug#52120 create view cause Assertion failed: 0, file .\item_subselect.cc, line 817 · ba229d79
      Sergey Glukhov authored
      We should disable const subselect item evaluation because
      subselect transformation does not happen in view_prepare_mode
      and thus val_...() methods can not be called.
      
      
      mysql-test/r/ctype_ucs.result:
        test case
      mysql-test/r/view.result:
        test case
      mysql-test/t/ctype_ucs.test:
        test case
      mysql-test/t/view.test:
        test case
      sql/item.cc:
        disabled const subselect item evaluation in
        view prepare mode.
      sql/item_subselect.cc:
        added Item_subselect::safe_charset_converter which
        prevents const item evaluation in view prepare mode.
      sql/item_subselect.h:
        added Item_subselect::safe_charset_converter which
        prevents const item evaluation in view prepare mode.
      ba229d79
  8. 10 Feb, 2010 1 commit
    • Michael Widenius's avatar
      When one does a drop table, the indexes are not flushed to disk before drop... · d77e3cde
      Michael Widenius authored
      When one does a drop table, the indexes are not flushed to disk before drop anymore (with MyISAM/Maria)
      myisam-recover options changed from OFF to 'DEFAULT' to get less change of data loss when using MyISAM.
      (The disadvantage is that changed MyISAM tables will be checked at access time; Use --myisam-recover=OFF for old behavior)
      Don't call extra(HA_EXTRA_FORCE_REOPEN) in ALTER TABLE if table is locked as this will mark table as crashed!
      Added assert to detect if we accidently would use MyISAM versioning in MySQL
      
      include/my_base.h:
        Mark NOT_USED as USED, as we now use this as a flag to not call extra()
      mysql-test/mysql-test-run.pl:
        Don't write all options when there is something wrong with the arguments
      mysql-test/r/sp-destruct.result:
        Add missing flush of mysql.proc (as the test copied live tables)
      mysql-test/r/variables.result:
        myisam-recover options changed to 'default'
      mysql-test/r/view.result:
        Don't show create time in result
      mysql-test/suite/maria/t/maria-recovery2-master.opt:
        Don't run test with myisam-recover (as this produces extra warnings during simulated death)
      mysql-test/t/sp-destruct.test:
        Add missing flush of mysql.proc (as the test copied live tables)
      mysql-test/t/view.test:
        Don't show create time in result
      sql/lock.cc:
        Added marker if table was deleted to argument list
      sql/mysql_priv.h:
        Added marker if table was deleted to argument list
      sql/mysqld.cc:
        myisam-recover options changed from OFF to 'DEFAULT' to get less change of data loss when using MyISAM
        Allow one to specify OFF as argument to myisam-recover (was default before but one couldn't specify it)
      sql/sql_base.cc:
        Mark if table is going to be deleted
      sql/sql_delete.cc:
        Mark if table is going to be deleted
      sql/sql_table.cc:
        Mark if table is going to be deleted
        Don't call extra(HA_EXTRA_FORCE_REOPEN) in ALTER TABLE if table is locked as this will mark table as crashed!
      sql/table.cc:
        Signal to handler if table is getting deleted as part of getting droped from table cache.
      sql/table.h:
        Added marker if table is going to be deleted.
      storage/maria/ha_maria.cc:
        Don't search for transaction handler if file is not transactional or outside of transaction
        (Fixed possible core dump)
      storage/maria/ma_blockrec.c:
        Don't write changed information if table is going to be deleted.
      storage/maria/ma_close.c:
        Don't write changed information if table is going to be deleted.
      storage/maria/ma_extra.c:
        Mark tables that are deleted as crased, to ensure good behavior on restart if we suddenly crash.
      storage/maria/ma_locking.c:
        Cleanup
      storage/maria/ma_recovery.c:
        We need trnman to be inited during redo phase (to be able to open tables checked with maria_chk)
      storage/maria/maria_def.h:
        Added marker if table is going to be deleted.
      storage/myisam/mi_close.c:
        Don't write changed information if table is going to be deleted.
      storage/myisam/mi_extra.c:
        Mark tables that are deleted as crased, to ensure good behavior on restart if we suddenly crash.
      storage/myisam/mi_open.c:
        Added assert to detect if we accidently would use MyISAM versioning in MySQL
      storage/myisam/myisamdef.h:
        Added marker if table is going to be deleted.
      d77e3cde
  9. 12 Feb, 2010 2 commits
    • Sergey Glukhov's avatar
      Bug#48294 assertion when creating a view based on some row() construct in select query · 46cffd7f
      Sergey Glukhov authored
      In case of 'CREATE VIEW' subselect transformation does not happen(see JOIN::prepare).
      During fix_fields Item_row may call is_null() method for its arugmens which
      leads to item calculation(wrong subselect in our case as
      transformation did not happen before). This is_null() call
      does not make sence for 'CREATE VIEW'.
      Note:
      Only Item_row is affected because other items don't call is_null() 
      during fix_fields() for arguments.
      
      mysql-test/r/view.result:
        test case
      mysql-test/t/view.test:
        test case
      sql/item_row.cc:
        skip is_null() call in case of 'CREATE VIEW' as unnecessary.
      46cffd7f
    • Davi Arnaut's avatar
      Move test case. Embedded server does not support privilege · 80164ae9
      Davi Arnaut authored
      related bits.
      80164ae9
  10. 10 Feb, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#48449: hang on show create view after upgrading when view contains function of view · 63817720
      Davi Arnaut authored
      SHOW CREATE TABLE on a view (v1) that contains a function whose
      statement uses another view (v2), could trigger a infinite loop
      if the view referenced within the function causes a warning to
      be raised while opening the said view (v2).
      
      The problem was a infinite loop over the stack of internal error
      handlers. The problem would be triggered if the stack contained
      two or more handlers and the first two handlers didn't handle the
      raised condition. In this case, the loop variable would always
      point to the second handler in the stack.
      
      The solution is to correct the loop variable assignment so that
      the loop is able to iterate over all handlers in the stack.
      
      mysql-test/r/view.result:
        Add test case result for Bug#48449.
      mysql-test/std_data/bug48449.frm:
        Add a incomplete view definition that causes a warning to be
        issued.
      mysql-test/t/view.test:
        Add test case for Bug#48449
      sql/sql_class.cc:
        Iterate over all handlers in the stack.
      63817720
  11. 27 Jan, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#47734: Assertion failed: ! is_set() when locking a view with non-existing definer · ee66332c
      Davi Arnaut authored
      The problem was that a failure to open a view wasn't being
      properly handled. When opening a view with unknown definer,
      the open procedure would be treated as successful and would
      later crash when attempting to lock the view (which wasn't
      opened to begin with).
      
      The solution is to skip further processing when opening a
      table if it fails with a fatal error.
      
      mysql-test/r/view.result:
        Add test case result for Bug#47734.
      mysql-test/t/view.test:
        Add test case for Bug#47734.
      sql/sql_base.cc:
        Skip further processing if opening a table failed due to
        a fatal error (for the statement).
      ee66332c
  12. 11 Aug, 2009 1 commit
  13. 21 Jul, 2009 1 commit
    • MySQL Build Team's avatar
      Backport into build-200907211706-5.0.82sp1 · 924ce229
      MySQL Build Team authored
      > ------------------------------------------------------------
      > revno: 2792
      > revision-id: sergey.glukhov@sun.com-20090703083500-jq8vhw0tqr37j7te
      > parent: bernt.johnsen@sun.com-20090703083610-o7l4s8syz05rc4w0
      > committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
      > branch nick: mysql-5.0-bugteam
      > timestamp: Fri 2009-07-03 13:35:00 +0500
      > message:
      >   Bug#45806 crash when replacing into a view with a join!
      >   The crash happend because for views which are joins
      >   we have table_list->table == 0 and 
      >   table_list->table->'any method' call leads to crash.
      >   The fix is to perform table_list->table->file->extra()
      >   method for all tables belonging to view.
      924ce229
  14. 03 Jul, 2009 1 commit
    • Sergey Glukhov's avatar
      Bug#45806 crash when replacing into a view with a join! · 2dd70946
      Sergey Glukhov authored
      The crash happend because for views which are joins
      we have table_list->table == 0 and 
      table_list->table->'any method' call leads to crash.
      The fix is to perform table_list->table->file->extra()
      method for all tables belonging to view.
      
      
      mysql-test/r/view.result:
        test result
      mysql-test/t/view.test:
        test case
      sql/sql_insert.cc:
        added prepare_for_positional_update() function
        which updates extra info about primary key for
        tables belonging to view.
      2dd70946
  15. 18 May, 2009 1 commit
    • Gleb Shchepa's avatar
      Bug#40825: Error 1356 while selecting from a view · a7294532
      Gleb Shchepa authored
                 with a "HAVING" clause though query works
      
      SELECT from views defined like:
      
        CREATE VIEW v1 (view_column)
          AS SELECT c AS alias FROM t1 HAVING alias
      
      fails with an error 1356:
        View '...' references invalid table(s) or column(s)
        or function(s) or definer/invoker of view lack rights
        to use them
      
      
      CREATE VIEW form with a (column list) substitutes
      SELECT column names/aliases with names from a
      view column list.
      However, alias references in HAVING clause was
      not substituted.
      
      
      The Item_ref::print function has been modified
      to write correct aliased names of underlying
      items into VIEW definition generation/.frm file.
      
      
      mysql-test/r/view.result:
        Added test file for bug #40825.
      mysql-test/t/view.test:
        Added test file for bug #40825.
      sql/item.cc:
        Bug#40825: Error 1356 while selecting from a view
                   with a "HAVING" clause though query works
        
        The Item_ref::print function has been modified
        to write correct aliased names of underlying
        items into VIEW definition generation/.frm file.
      a7294532
  16. 19 May, 2009 1 commit
    • Ramil Kalimullin's avatar
      Fix for bug#44860: ALTER TABLE on view crashes server · fb3e433d
      Ramil Kalimullin authored
      Problem: executing queries like "ALTER TABLE view1;" we don't
      check new view's name (which is not specified),
      that leads to server crash.
      
      Fix: do nothing (to be consistent with the behaviour for tables) 
      in such cases.
      
      
      mysql-test/r/view.result:
        Fix for bug#44860: ALTER TABLE on view crashes server
          - test result.
      mysql-test/t/view.test:
        Fix for bug#44860: ALTER TABLE on view crashes server
          - test case.
      sql/sql_rename.cc:
        Fix for bug#44860: ALTER TABLE on view crashes server
          - do_rename(): new view/table name must be specified, ASSERT() added.
      sql/sql_table.cc:
        Fix for bug#44860: ALTER TABLE on view crashes server
          - mysql_alter_table(): renaming a view, check if new
        view name is specified.
      fb3e433d
  17. 03 Mar, 2009 1 commit
  18. 28 Nov, 2008 1 commit
    • Gleb Shchepa's avatar
      Bug #33461: SELECT ... FROM <view> USE INDEX (...) throws · 41ccbefc
      Gleb Shchepa authored
                  an error
      
      Even after the fix for bug 28701 visible behaviors of
      SELECT FROM a view and SELECT FROM a regular table are
      little bit different:
      
      1. "SELECT FROM regular table USE/FORCE/IGNORE(non
         existent index)" fails with a "ERROR 1176 (HY000):
         Key '...' doesn't exist in table '...'"
      
      2. "SELECT FROM view USING/FORCE/IGNORE(any index)" fails
         with a "ERROR 1221 (HY000): Incorrect usage of
         USE/IGNORE INDEX and VIEW".  OTOH "SHOW INDEX FROM
         view" always returns empty result set, so from the point
         of same behaviour view we trying to use/ignore non
         existent index.
      
      To harmonize the behaviour of USE/FORCE/IGNORE(index)
      clauses in SELECT from a view and from a regular table the
      "ERROR 1221 (HY000): Incorrect usage of USE/IGNORE INDEX
      and VIEW" message has been replaced with the "ERROR 1176
      (HY000): Key '...' doesn't exist in table '...'" message
      like for tables and non existent keys.
      
      
      mysql-test/r/view.result:
        Added test case for bug #33461.
        Updated test case for bug 28701.
      mysql-test/t/view.test:
        Added test case for bug #33461.
        Updated test case for bug 28701.
      sql/sql_view.cc:
        Bug #33461: SELECT ... FROM <view> USE INDEX (...) throws
                    an error
        
        To harmonize the behaviour of USE/FORCE/IGNORE(index)
        clauses in SELECT from a view and from a regular table the
        "ERROR 1221 (HY000): Incorrect usage of USE/IGNORE INDEX
        and VIEW" message has been replaced with the "ERROR 1176
        (HY000): Key '...' doesn't exist in table '...'" message
        like for tables and non existent keys.
      41ccbefc
  19. 27 Oct, 2008 1 commit
    • Sergey Glukhov's avatar
      Bug#39040 valgrind errors/crash when creating views with binlog logging enabled · 380f1a84
      Sergey Glukhov authored
      A string buffers which were included in the 'view' data structure
      were allocated on the stack, causing an invalid pointer when used
      after the function returned.
      The fix: use copy of values for view->md5 & view->queries
      
      
      mysql-test/r/view.result:
        test result
      mysql-test/t/view.test:
        test case
      sql/sql_view.cc:
        A string buffers which were included in the 'view' data structure
        were allocated on the stack, causing an invalid pointer when used
        after the function returned.
        The fix: use copy of values for view->md5 & view->queries
      380f1a84
  20. 26 Mar, 2008 1 commit
    • unknown's avatar
      Fixed bug #35193. · 0b8342ba
      unknown authored
      View definition as SELECT ... FROM DUAL WHERE ... has
      valid syntax, but use of such view in SELECT or
      SHOW CREATE VIEW syntax causes unexpected syntax error.
      
      Server omits FROM DUAL clause when storing view body
      string in a .frm file for further evaluation.
      However, syntax of SELECT-witout-FROM query is more
      restrictive than SELECT FROM DUAL syntax, and doesn't
      allow the WHERE clause.
      
      NOTE: this syntax difference is not documented.
      
      
      View registration procedure has been modified to
      preserve original structure of view's body.
      
      
      
      mysql-test/r/view.result:
        Added test case for bug #35193.
      mysql-test/t/view.test:
        Added test case for bug #35193.
      sql/sql_select.cc:
        Fixed bug #35193.
        The st_select_lex::print function always omits FROM DUAL clause,
        even if original SELECT query has the WHERE clause.
        
        The mysql_register_view function uses this function to reconstruct
        a body of view's AS clause for further evaluation and stores that
        reconstructed clause in a .frm file.
        
        SELECT without FROM syntax is more restrictive than 
        SELECT FROM DUAL syntax: second one allows
        the WHERE clause, but first one is not.
        
        Use of this view in SELECT or SHOW CREATE VIEW queries
        causes unexpected syntax errors.
        
        
        The st_select_lex::print function has been modified to
        reconstruct FROM DUAL clause in queries when needed.
        
        
        TODO: Syntax difference is not documented and should be
        eliminated, however improvement of
        the SELECT-without-FROM syntax is not trivial and leads to
        significant modification of grammar file because of additional
        shift/reduce conflicts.
      0b8342ba
  21. 22 Feb, 2008 1 commit
    • unknown's avatar
      Fix for bug #33049: Assert while running test-as3ap test(mysql-bench · 012aab7d
      unknown authored
                          suite)
      
      Under some circumstances a combination of aggregate functions and
      GROUP BY in a SELECT query over a VIEW could lead to incorrect
      calculation of the result type of the aggregate function. This in
      turn could result in incorrect results, or assertion failures on debug
      builds.
      
      Fixed by changing the logic in Item_sum_hybrid::fix_fields() so that
      the argument's item is dereferenced before calling its type() method.
      
      
      mysql-test/r/view.result:
        Added a test case for bug #33049.
      mysql-test/t/view.test:
        Added a test case for bug #33049.
      sql/item_sum.cc:
        When calculating the result type of an aggregate function, dereference
        the argument's item before calling its type() method.
      012aab7d
  22. 21 Feb, 2008 2 commits
    • unknown's avatar
      Fix for Bug#34337: Server crash when Altering a view using · fa08b280
      unknown authored
      a table name.
        
      The problem was that fill_defined_view_parts() did not return
      an error if a table is going to be altered. That happened if
      the table was already in the table cache. In that case,
      open_table() returned non-NULL value (valid TABLE-instance from
      the cache).
        
      The fix is to ensure that an error is thrown even if the table
      is in the cache.
      
      (This is a backport of the original patch for 5.1)
      
      
      mysql-test/r/view.result:
        Fix result file.
      mysql-test/r/view_grant.result:
        Fix result file.
      mysql-test/t/view.test:
        Add a test case for Bug#34337: Server crash when Altering a view
        using a table name.
      mysql-test/t/view_grant.test:
        Fix order-dependency.
      sql/sql_view.cc:
        Report an error if we're going to work with a table.
      fa08b280
    • unknown's avatar
      Post-merge fixes for bugs 34587 and 32265. · 88421ee5
      unknown authored
      mysql-test/r/view.result:
        Drop created view.
      mysql-test/t/view.test:
        Update test result.
      sql/sql_cursor.cc:
        Fix compilation failure.
      tests/mysql_client_test.c:
        Manual merge.
      88421ee5
  23. 20 Feb, 2008 2 commits
    • unknown's avatar
      Bug#34587 Creating a view inside a stored procedure leads to a server crash · 7114fbb9
      unknown authored
      The problem is that when a stored procedure is being parsed for
      the first execution, the body is copied to a temporary buffer
      which is disregarded sometime after the statement is parsed.
      And during this parsing phase, the rule for CREATE VIEW was
      holding a reference to the string being parsed for use during
      the execution of the CREATE VIEW statement, leading to invalid
      memory access later.
      
      The solution is to allocate and copy the SELECT of a CREATE
      VIEW statement using the thread memory root, which is set to
      the permanent arena of the stored procedure. 
      
      
      mysql-test/r/view.result:
        Add test case result for Bug#34587
      mysql-test/t/view.test:
        Add test case for Bug#34587
      sql/sql_lex.h:
        Remove start and end position variables. The SELECT of a
        CREATE VIEW is now allocated at parse time.
      sql/sql_view.cc:
        Remove assertion that is not true when the statement is
        being re-executed. Use string that was trimmed of leading
        and trailing whitespace at parse time.
      sql/sql_yacc.yy:
        Allocate the SELECT of a CREATE VIEW using the current thread
        memory root and remove any leading and trailing whitespace.
      7114fbb9
    • unknown's avatar
      Fix for Bug#34337: Server crash when Altering a view using · 985e9523
      unknown authored
      a table name.
      
      The problem was that fill_defined_view_parts() did not return
      an error if a table is going to be altered. That happened if
      the table was already in the table cache. In that case,
      open_table() returned non-NULL value (valid TABLE-instance from
      the cache).
      
      The fix is to ensure that an error is thrown even if the table
      is in the cache.
      
      
      mysql-test/r/view.result:
        Fix result file.
      mysql-test/t/view.test:
        Add a test case for Bug#34337: Server crash when Altering a view
        using a table name.
      sql/sql_view.cc:
        Report an error if we're going to work with a table.
      985e9523
  24. 12 Feb, 2008 2 commits
    • unknown's avatar
      Fix for Bug#32538: View definition picks up character set, · c1d0dd94
      unknown authored
      but not collation.
      
      The problem here was that text literals in a view were always
      dumped with character set introducer. That lead to loosing
      collation information.
      
      The fix is to dump character set introducer only if it was
      in the original query. That is now possible because there 
      is no problem any more of loss of character set of string
      literals in views -- after WL#4052 the view is dumped 
      in the original character set.
      
      
      mysql-test/r/case.result:
        Update result file.
      mysql-test/r/compress.result:
        Update result file.
      mysql-test/r/ctype_collate.result:
        Update result file.
      mysql-test/r/date_formats.result:
        Update result file.
      mysql-test/r/ddl_i18n_koi8r.result:
        Update result file.
      mysql-test/r/ddl_i18n_utf8.result:
        Update result file.
      mysql-test/r/fulltext.result:
        Update result file.
      mysql-test/r/func_crypt.result:
        Update result file.
      mysql-test/r/func_encrypt.result:
        Update result file.
      mysql-test/r/func_if.result:
        Update result file.
      mysql-test/r/func_in.result:
        Update result file.
      mysql-test/r/func_like.result:
        Update result file.
      mysql-test/r/func_regexp.result:
        Update result file.
      mysql-test/r/func_set.result:
        Update result file.
      mysql-test/r/func_str.result:
        Update result file.
      mysql-test/r/func_time.result:
        Update result file.
      mysql-test/r/gis.result:
        Update result file.
      mysql-test/r/group_min_max.result:
        Update result file.
      mysql-test/r/mysqldump.result:
        Update result file.
      mysql-test/r/negation_elimination.result:
        Update result file.
      mysql-test/r/null.result:
        Update result file.
      mysql-test/r/select.result:
        Update result file.
      mysql-test/r/show_check.result:
        Update result file.
      mysql-test/r/sp-code.result:
        Update result file.
      mysql-test/r/ssl.result:
        Update result file.
      mysql-test/r/ssl_compress.result:
        Update result file.
      mysql-test/r/subselect.result:
        Update result file.
      mysql-test/r/temp_table.result:
        Update result file.
      mysql-test/r/type_blob.result:
        Update result file.
      mysql-test/r/view.result:
        Update result file.
      mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
        Update result file.
      mysql-test/suite/rpl/r/rpl_get_lock.result:
        Update result file.
      mysql-test/suite/rpl/r/rpl_master_pos_wait.result:
        Update result file.
      mysql-test/t/view.test:
        Add a test case for Bug#32538.
      sql/item.cc:
        Do not dump character set introducer if it was not specified
        explicitly in the original query.
      sql/item.h:
        Add 'cs_specified' property to Item_string.
      sql/sql_yacc.yy:
        Set Item_string::cs_specified property to TRUE
        when character set introducer is explicitly specified.
      c1d0dd94
    • unknown's avatar
      Fix for bug #33389: Selecting from a view into a table from within SP · d5092fa9
      unknown authored
                          or trigger crashes server
      
      Under some circumstances a combination of VIEWs, subselects with outer
      references and PS/SP/triggers could lead to use of uninitialized memory
      and server crash as a result.
      
      Fixed by changing the code in Item_field::fix_fields() so that in cases
      when the field is a VIEW reference, we first check whether the field
      is also an outer reference, and mark it appropriately before returning.
      
      
      mysql-test/r/view.result:
        Added a test case for bug #33389.
      mysql-test/t/view.test:
        Added a test case for bug #33389.
      sql/item.cc:
        In cases when in Item_field::fix_fields() from_field is a view reference,
        do not return too early, i.e. before marking the reference as an outer
        one when needed.
      d5092fa9
  25. 11 Jan, 2008 1 commit
    • unknown's avatar
      Bug#29477: Not all fields of the target table were checked to have a default · 72ebb0aa
      unknown authored
      value when inserting into a view.
      
      The mysql_prepare_insert function checks all fields of the target table that
      directly or indirectly (through a view) are specified in the INSERT
      statement to have a default value. This check can be skipped if the INSERT
      statement doesn't mention any insert fields. In case of a view this allows
      fields that aren't mentioned in the view to bypass the check.
      
      Now fields of the target table are always checked to have a default value
      when insert goes into a view.
      
      
      mysql-test/t/view.test:
        Added a test case for the bug#29477: Not all fields of the target table were 
        checked to have a default value when inserting into a view.
      mysql-test/r/view.result:
        Added a test case for the bug#29477: Not all fields of the target table were 
        checked to have a default value when inserting into a view.
      sql/sql_insert.cc:
        Bug#29477: Not all fields of the target table were checked to have a default
        value when inserting into a view.
        Now fields of the target table are always checked to have a default value
        when insert goes into a view.
      72ebb0aa
  26. 12 Dec, 2007 1 commit
    • unknown's avatar
      WL#4189 · 1370500c
      unknown authored
       - dynamic configuration support
       - safe process
       - cleanups
       - create new suite for fedarated
      
      
      BitKeeper/deleted/.del-basic.test:
        Rename: mysql-test/ndb/basic.test -> BitKeeper/deleted/.del-basic.test
      BitKeeper/deleted/.del-basic_log.result:
        Rename: mysql-test/ndb/basic_log.result -> BitKeeper/deleted/.del-basic_log.result
      mysql-test/suite/federated/federated_transactions.result:
        Rename: mysql-test/r/federated_transactions.result -> mysql-test/suite/federated/federated_transactions.result
      BitKeeper/deleted/.del-have_bug25714.require:
        Rename: mysql-test/r/have_bug25714.require -> BitKeeper/deleted/.del-have_bug25714.require
      BitKeeper/deleted/.del-kill_master.sh:
        Rename: mysql-test/misc/kill_master.sh -> BitKeeper/deleted/.del-kill_master.sh
      BitKeeper/deleted/.del-ndb_config_4_node.ini~d8e572e9b68f933a:
        Rename: mysql-test/ndb/ndb_config_4_node.ini -> BitKeeper/deleted/.del-ndb_config_4_node.ini~d8e572e9b68f933a
      BitKeeper/deleted/.del-restart.result:
        Rename: mysql-test/ndb/restart.result -> BitKeeper/deleted/.del-restart.result
      mysql-test/suite/federated/federated_cleanup.inc:
        Rename: mysql-test/include/federated_cleanup.inc -> mysql-test/suite/federated/federated_cleanup.inc
      mysql-test/suite/rpl/t/rpl_rotate_logs-slave.opt:
        Rename: mysql-test/suite/rpl/t/rpl_rotate_logs.slave-mi -> mysql-test/suite/rpl/t/rpl_rotate_logs-slave.opt
      BitKeeper/deleted/.del-install_test_db.sh:
        Rename: mysql-test/install_test_db.sh -> BitKeeper/deleted/.del-install_test_db.sh
      BitKeeper/deleted/.del-ndb_config_1_node.ini~7ec640ed25570e16:
        Rename: mysql-test/ndb/ndb_config_1_node.ini -> BitKeeper/deleted/.del-ndb_config_1_node.ini~7ec640ed25570e16
      BitKeeper/deleted/.del-mtr_timer.pl:
        Rename: mysql-test/lib/mtr_timer.pl -> BitKeeper/deleted/.del-mtr_timer.pl
      BitKeeper/deleted/.del-create-test-result:
        Rename: mysql-test/create-test-result -> BitKeeper/deleted/.del-create-test-result
      BitKeeper/deleted/.del-fix-result:
        Rename: mysql-test/fix-result -> BitKeeper/deleted/.del-fix-result
      BitKeeper/deleted/.del-mysql-test-run-shell.sh:
        Rename: mysql-test/mysql-test-run-shell.sh -> BitKeeper/deleted/.del-mysql-test-run-shell.sh
      BitKeeper/deleted/.del-mysql-test_V1.9.pl:
        Rename: mysql-test/misc/mysql-test_V1.9.pl -> BitKeeper/deleted/.del-mysql-test_V1.9.pl
      BitKeeper/deleted/.del-resolve-stack:
        Rename: mysql-test/resolve-stack -> BitKeeper/deleted/.del-resolve-stack
      BitKeeper/deleted/.del-restart_log.result:
        Rename: mysql-test/ndb/restart_log.result -> BitKeeper/deleted/.del-restart_log.result
      mysql-test/suite/rpl/t/rpl_000015-slave.opt:
        Rename: mysql-test/suite/rpl/t/rpl_000015.slave-mi -> mysql-test/suite/rpl/t/rpl_000015-slave.opt
      BitKeeper/deleted/.del-ndb_config_2_node.ini:
        Rename: mysql-test/ndb/ndb_config_2_node.ini -> BitKeeper/deleted/.del-ndb_config_2_node.ini
      BitKeeper/deleted/.del-ndbcluster.sh:
        Rename: mysql-test/ndb/ndbcluster.sh -> BitKeeper/deleted/.del-ndbcluster.sh
      BitKeeper/deleted/.del-basic.result:
        Rename: mysql-test/ndb/basic.result -> BitKeeper/deleted/.del-basic.result
      BitKeeper/deleted/.del-restart.test:
        Rename: mysql-test/ndb/restart.test -> BitKeeper/deleted/.del-restart.test
      BitKeeper/deleted/.del-have_bug25714.inc:
        Rename: mysql-test/include/have_bug25714.inc -> BitKeeper/deleted/.del-have_bug25714.inc
      BitKeeper/deleted/.del-mtr_diff.pl:
        Rename: mysql-test/lib/mtr_diff.pl -> BitKeeper/deleted/.del-mtr_diff.pl
      mysql-test/suite/federated/federated_transactions-slave.opt:
        Rename: mysql-test/t/federated_transactions-slave.opt -> mysql-test/suite/federated/federated_transactions-slave.opt
      BitKeeper/deleted/.del-Makefile.am~343467da4d0f211b:
        Rename: mysql-test/ndb/Makefile.am -> BitKeeper/deleted/.del-Makefile.am~343467da4d0f211b
      BitKeeper/deleted/.del-mtr_im.pl~9762b0336c28949:
        Rename: mysql-test/lib/mtr_im.pl -> BitKeeper/deleted/.del-mtr_im.pl~9762b0336c28949
      mysql-test/suite/federated/federated_innodb-slave.opt:
        Rename: mysql-test/t/federated_innodb-slave.opt -> mysql-test/suite/federated/federated_innodb-slave.opt
      client/mysqltest.c:
        Use current files path first when looking for include file
      configure.in:
        Remove mysql-test/nbd
      mysql-test/Makefile.am:
        Cleanup mysql-test/Makefile.am
      mysql-test/extra/binlog_tests/blackhole.test:
        Use new paths
      mysql-test/extra/binlog_tests/ctype_ucs_binlog.test:
        Use new paths
      mysql-test/mysql-test-run.pl:
        Dynamic configuration support
        Safe process
      mysql-test/extra/binlog_tests/mix_innodb_myisam_side_effects.test:
        Use new paths
      mysql-test/extra/rpl_tests/rpl_EE_err.test:
        Use new paths
      mysql-test/extra/rpl_tests/rpl_loaddata.test:
        Use new paths
      mysql-test/extra/rpl_tests/rpl_log.test:
        Use new paths
      mysql-test/extra/rpl_tests/rpl_row_001.test:
        Use new paths
      mysql-test/extra/rpl_tests/rpl_row_charset.test:
        Use new paths
      mysql-test/extra/rpl_tests/rpl_stm_000001.test:
        Use new paths
      mysql-test/extra/rpl_tests/rpl_stm_charset.test:
        Use new paths
      mysql-test/include/have_blackhole.inc:
        Use new paths
      mysql-test/include/have_ndbapi_examples.inc:
        Use new paths
      mysql-test/include/loaddata_autocom.inc:
        Use new paths
      mysql-test/include/mix1.inc:
        Use new paths
      mysql-test/include/ndb_backup.inc:
        Use new paths
      mysql-test/include/ndb_restore_master.inc:
        Use new paths
      mysql-test/include/ndb_restore_slave_eoption.inc:
        Use new paths
      mysql-test/include/testdb_only.inc:
        Use new paths
      mysql-test/lib/My/Config.pm:
        dynamic configuration
        safe process
        cleanups
      mysql-test/lib/mtr_cases.pm:
        dynamic configuration
        safe process
        cleanups
      mysql-test/lib/mtr_io.pl:
        dynamic configuration
        safe process
        cleanups
      mysql-test/lib/mtr_misc.pl:
        dynamic configuration
        safe process
        cleanups
      mysql-test/lib/mtr_process.pl:
        dynamic configuration
        safe process
        cleanups
      mysql-test/lib/mtr_report.pl:
        dynamic configuration
        safe process
        cleanups
      mysql-test/lib/mtr_stress.pl:
        dynamic configuration
        safe process
        cleanups
      mysql-test/r/backup.result:
        Use new paths
      mysql-test/r/ctype_big5.result:
        Use new paths
      mysql-test/r/gis.result:
        Use new paths
      mysql-test/r/loaddata.result:
        Use new paths
      mysql-test/r/loaddata_autocom_innodb.result:
        Use new paths
      mysql-test/r/mysqlbinlog.result:
        Use new paths
      mysql-test/r/mysqlbinlog_base64.result:
        Use new paths
      mysql-test/r/outfile.result:
        Use new paths
      mysql-test/r/partition_error.result:
        Use new paths
      mysql-test/r/partition_not_windows.result:
        Use new paths
      mysql-test/r/partition_symlink.result:
        Use new paths
      mysql-test/r/query_cache.result:
        Use new paths
      mysql-test/r/sp.result:
        Use new paths
      mysql-test/r/symlink.result:
        Use new paths
      mysql-test/r/system_mysql_db.result:
        Use new paths
      mysql-test/r/trigger.result:
        Use new paths
      mysql-test/r/type_blob.result:
        Use new paths
      mysql-test/r/view.result:
        Use new paths
      mysql-test/r/warnings.result:
        Use new paths
      mysql-test/suite/binlog/r/binlog_killed_simulate.result:
        Use new paths
      mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
        Use new paths
      mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
        Use new paths
      mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
        Use new paths
      mysql-test/suite/binlog/t/binlog_killed.test:
        Use new paths
      mysql-test/suite/binlog/t/binlog_killed_simulate.test:
        Use new paths
      mysql-test/suite/binlog/t/binlog_row_mix_innodb_myisam.test:
        Use new paths
      mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test:
        Use new paths
      mysql-test/suite/federated/federated.inc:
        Use new paths
      mysql-test/suite/federated/federated.result:
        Use new paths
      mysql-test/suite/federated/federated.test:
        Use new paths
      mysql-test/suite/federated/federated_archive.result:
        Use new paths
      mysql-test/suite/federated/federated_archive.test:
        Use new paths
      mysql-test/suite/federated/federated_bug_13118.result:
        Use new paths
      mysql-test/suite/federated/federated_bug_13118.test:
        Use new paths
      mysql-test/suite/federated/federated_bug_25714.result:
        Use new paths
      mysql-test/suite/federated/federated_bug_25714.test:
        Use new paths
      mysql-test/suite/federated/federated_innodb.result:
        Use new paths
      mysql-test/suite/federated/federated_innodb.test:
        Use new paths
      mysql-test/suite/federated/federated_server.result:
        Use new paths
      mysql-test/suite/federated/federated_server.test:
        Use new paths
      mysql-test/suite/federated/federated_transactions.test:
        Use new paths
      mysql-test/suite/federated/have_federated_db.inc:
        Use new paths
      mysql-test/suite/ndb/r/loaddata_autocom_ndb.result:
        Use new paths
      mysql-test/suite/ndb/r/ndb_config.result:
        Use new paths
      mysql-test/suite/ndb/r/ndb_dd_backuprestore.result:
        Use new paths
      mysql-test/suite/ndb/r/ndb_load.result:
        Use new paths
      mysql-test/suite/ndb/r/ndb_loaddatalocal.result:
        Use new paths
      mysql-test/suite/ndb/r/ndb_replace.result:
        Use new paths
      mysql-test/suite/ndb/r/ndb_restore.result:
        Use new paths
      mysql-test/suite/ndb/r/ndb_restore_partition.result:
        Use new paths
      mysql-test/suite/ndb/r/ndb_restore_print.result:
        Use new paths
      mysql-test/suite/ndb/r/ndb_trigger.result:
        Use new paths
      mysql-test/suite/ndb/t/ndb_alter_table.test:
        Use new paths
      mysql-test/suite/ndb/t/ndb_config.test:
        Use new paths
      mysql-test/suite/ndb/t/ndb_load.test:
        Use new paths
      mysql-test/suite/ndb/t/ndb_loaddatalocal.test:
        Use new paths
      mysql-test/suite/ndb/t/ndb_replace.test:
        Use new paths
      mysql-test/suite/ndb/t/ndb_restore.test:
        Use new paths
      mysql-test/suite/ndb/t/ndb_single_user.test:
        Use new paths
      mysql-test/suite/ndb/t/ndb_trigger.test:
        Use new paths
      mysql-test/suite/ndb/t/ndbapi.test:
        Use new paths
      mysql-test/suite/rpl/include/rpl_mixed_dml.inc:
        Use new paths
      mysql-test/suite/rpl/r/rpl_LD_INFILE.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_flushlog_loop.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_innodb.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_load_table_from_master.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_loaddata.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_loaddata_charset.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_loaddata_fatal.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_loaddata_m.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_loaddata_s.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_loaddata_simple.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_loaddatalocal.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_loadfile.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_misc_functions.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_replicate_do.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_rewrt_db.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_row_001.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_row_loaddata_m.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_row_log.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_row_log_innodb.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_row_stop_middle_update.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_stm_000001.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_stm_log.result:
        Use new paths
      mysql-test/suite/rpl/r/rpl_timezone.result:
        Use new paths
      mysql-test/suite/rpl/t/disabled.def:
        Use new paths
      mysql-test/suite/rpl/t/rpl000017-slave.sh:
        Use new paths
      mysql-test/suite/rpl/t/rpl_LD_INFILE.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_drop_db.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_flushlog_loop-master.opt:
        Use new paths
      mysql-test/suite/rpl/t/rpl_flushlog_loop-slave.opt:
        Use new paths
      mysql-test/suite/rpl/t/rpl_flushlog_loop.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_innodb.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_innodb_bug30919.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_load_from_master.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_load_table_from_master.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_loaddata_charset.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_loaddata_fatal.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_loaddata_m.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_loaddata_s.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_loaddata_simple.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_loaddatalocal.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_loadfile.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_misc_functions.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_replicate_do.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_rewrt_db.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_rotate_logs-master.opt:
        Use new paths
      mysql-test/suite/rpl/t/rpl_rotate_logs.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_row_charset_innodb.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_row_stop_middle_update.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_timezone.test:
        Use new paths
      mysql-test/suite/rpl/t/rpl_trigger.test:
        Use new paths
      mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_advance.result:
        Use new paths
      mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb_trans.result:
        Use new paths
      mysql-test/suite/rpl_ndb/r/rpl_ndb_log.result:
        Use new paths
      mysql-test/suite/rpl_ndb/r/rpl_ndb_multi.result:
        Use new paths
      mysql-test/suite/rpl_ndb/r/rpl_ndb_row_001.result:
        Use new paths
      mysql-test/suite/rpl_ndb/r/rpl_ndb_sync.result:
        Use new paths
      mysql-test/suite/rpl_ndb/t/rpl_ndb_bank.test:
        Use new paths
      mysql-test/suite/rpl_ndb/t/rpl_ndb_dd_advance.test:
        Use new paths
      mysql-test/suite/rpl_ndb/t/rpl_ndb_innodb_trans.test:
        Use new paths
      mysql-test/suite/rpl_ndb/t/rpl_ndb_load.test:
        Use new paths
      mysql-test/suite/rpl_ndb/t/rpl_ndb_sync.test:
        Use new paths
      mysql-test/suite/rpl_ndb/t/rpl_ndbapi_multi.test:
        Use new paths
      mysql-test/t/backup.test:
        Use new paths
      mysql-test/t/bootstrap.test:
        Use new paths
      mysql-test/t/crash_commit_before.test:
        Use new paths
      mysql-test/t/create_not_windows.test:
        Use new paths
      mysql-test/t/csv.test:
        Use new paths
      mysql-test/t/ctype_big5.test:
        Use new paths
      mysql-test/t/disabled.def:
        Use new paths
      mysql-test/t/distinct.test:
        Use new paths
      mysql-test/t/gis.test:
        Use new paths
      mysql-test/t/grant_cache_no_prot.test:
        Use new paths
      mysql-test/t/grant_cache_ps_prot.test:
        Use new paths
      mysql-test/t/information_schema_chmod.test:
        Use new paths
      mysql-test/t/loaddata.test:
        Use new paths
      mysql-test/t/log_state.test:
        Use new paths
      mysql-test/t/myisam-system.test:
        Use new paths
      mysql-test/t/mysql_upgrade.test:
        Use new paths
      mysql-test/t/mysqlbinlog-cp932.test:
        Use new paths
      mysql-test/t/mysqlbinlog.test:
        Use new paths
      mysql-test/t/mysqlbinlog2.test:
        Use new paths
      mysql-test/t/mysqlbinlog_base64.test:
        Use new paths
      mysql-test/t/mysqldump.test:
        Use new paths
      mysql-test/t/outfile.test:
        Use new paths
      mysql-test/t/partition.test:
        Use new paths
      mysql-test/t/partition_error.test:
        Use new paths
      mysql-test/t/partition_federated.test:
        Use new paths
      mysql-test/t/partition_mgm.test:
        Use new paths
      mysql-test/t/partition_not_windows.test:
        Use new paths
      mysql-test/t/partition_symlink.test:
        Use new paths
      mysql-test/t/query_cache.test:
        Use new paths
      mysql-test/t/repair.test:
        Use new paths
      mysql-test/t/show_check.test:
        Use new paths
      mysql-test/t/sp-destruct.test:
        Use new paths
      mysql-test/t/sp.test:
        Use new paths
      mysql-test/t/symlink.test:
        Use new paths
      mysql-test/t/system_mysql_db.test:
        Use new paths
      mysql-test/t/system_mysql_db_fix30020.test:
        Use new paths
      mysql-test/t/system_mysql_db_fix40123.test:
        Use new paths
      mysql-test/t/system_mysql_db_fix50030.test:
        Use new paths
      mysql-test/t/system_mysql_db_fix50117.test:
        Use new paths
      mysql-test/t/trigger-compat.test:
        Use new paths
      mysql-test/t/trigger-grant.test:
        Use new paths
      mysql-test/t/trigger.test:
        Use new paths
      mysql-test/t/type_blob.test:
        Use new paths
      mysql-test/t/type_varchar.test:
        Use new paths
      mysql-test/t/upgrade.test:
        Use new paths
      mysql-test/t/user_var-binlog.test:
        Use new paths
      mysql-test/t/varbinary.test:
        Use new paths
      mysql-test/t/view.test:
        Use new paths
      mysql-test/t/warnings.test:
        Use new paths
      mysql-test/lib/My/ConfigFactory.pm:
        Initial version
      mysql-test/lib/My/Find.pm:
        Initial version
      mysql-test/lib/My/SafeProcess.pm:
        Initial version
      mysql-test/std_data/ndb_config_config.ini:
        Add "old" style config.ini for ndb
      mysql-test/suite/federated/disabled.def:
        Move disabled federated to it's new suite
      mysql-test/suite/federated/my.cnf:
        Add config for federated
      mysql-test/suite/ndb/my.cnf:
        Add config for ndb
      mysql-test/suite/rpl/my.cnf:
        Add config for rpl
      mysql-test/suite/rpl/rpl_1slave_base.cnf:
        Add base config for rpl
      mysql-test/suite/rpl/t/rpl_000015-master.opt:
        Use new paths
      mysql-test/suite/rpl_ndb/my.cnf:
        Add config for rpl_ndb
      mysql-test/lib/My/File/Path.pm:
        Initial version
      mysql-test/lib/My/SafeProcess/Base.pm:
        Initial version
      mysql-test/lib/My/SafeProcess/safe_kill_win.cc:
        Initial version
      mysql-test/lib/My/SafeProcess/safe_process.pl:
        Initial version
      mysql-test/lib/My/SafeProcess/safe_process_win.cc:
        Initial version
      mysql-test/lib/t/Base.t:
        Initial version
      mysql-test/lib/t/Find.t:
        Initial version
      mysql-test/lib/t/SafeProcess.t:
        Initial version
      mysql-test/lib/t/SafeProcessStress.pl:
        Initial version
      mysql-test/lib/t/copytree.t:
        Initial version
      mysql-test/lib/t/dummyd.pl:
        Initial version
      mysql-test/lib/t/rmtree.t:
        Initial version
      mysql-test/lib/t/testMyConfig.t:
        Initial version
      mysql-test/lib/t/testMyConfigFactory.t:
        Initial version
      mysql-test/lib/t/test_child.pl:
        Initial version
      mysql-test/include/default_my.cnf:
        Add default config file used when no suite specific file is found
      mysql-test/include/default_mysqld.cnf:
        New BitKeeper file ``mysql-test/include/default_mysqld.cnf''
      mysql-test/include/default_ndbd.cnf:
        Add default settings for all ndbds
      mysql-test/lib/mtr_settings.pl:
        Initial version
      1370500c
  27. 30 Nov, 2007 1 commit
    • unknown's avatar
      A test case for BUG#26676: VIEW using old table schema in a session. · 9395421a
      unknown authored
      The following clarification should be made in The Manual:
      
      Standard SQL is quite clear that, if new columns are added
      to a table after a view on that table is created with
      "select *", the new columns will not become part of the view.
      In all cases, the view definition (view structure) is frozen
      at CREATE time, so changes to the underlying tables do not
      affect the view structure.
      
      
      mysql-test/r/view.result:
        Update result file.
      mysql-test/t/view.test:
        Add a test case for BUG#26676: VIEW using old table schema in a session.
      9395421a
  28. 10 Oct, 2007 1 commit
  29. 24 Sep, 2007 1 commit
    • unknown's avatar
      Bug #28702: VIEWs defined with USE/FORCE KEY ignore that request · ca448acc
      unknown authored
      When storing the VIEW the CREATE VIEW command is reconstructed 
      from the parse tree. While constructing the command string
      the index hints specified should also be printed.
      Fixed by adding code to print the index hints when printing a 
      table in the FROM clause.
      
      
      mysql-test/r/view.result:
        Bug #28702: test case
      mysql-test/t/view.test:
        Bug #28702: test case
      sql/sql_select.cc:
        Bug #28702: preserve index hints in a VIEW definition.
      sql/table.h:
        Bug #28702: preserve index hints in a VIEW definition.
      ca448acc
  30. 28 Jul, 2007 1 commit
    • unknown's avatar
      Bug#30020: Insufficient check led to a wrong info provided by the · aa4a3c9a
      unknown authored
      information schema table.
      
      The get_schema_views_record() function fills records in the view table of
      the informations schema with data about given views. Among other info
      the is_updatable flag is set. But the check whether the view is updatable or
      not wasn't covering all cases thus sometimes providing wrong info.
      This might led to a user confusion.
      
      Now the get_schema_views_record function additionally calls to the 
      view->can_be_merge() function to find out whether the view can be updated or
      not.
      
      
      mysql-test/t/view.test:
        Added a test case for the bug#30020: Insufficient check led to a wrong info
        provided by the information schema table.
      mysql-test/r/view.result:
        Added a test case for the bug#30020: Insufficient check led to a wrong info
        provided by the information schema table.
      sql/sql_show.cc:
        Bug#30020: Insufficient check led to a wrong info provided by the
        information schema table.
        Now the get_schema_views_record function additionally calls to the 
        view->can_be_merge() function to find out whether the view can be updated or
        not.
      aa4a3c9a
  31. 05 Jul, 2007 1 commit
    • unknown's avatar
      Fixed bug #29392. · 5d88b654
      unknown authored
      This bug may manifest itself for select queries over a multi-table view
      that includes an ORDER BY clause in its definition. If the select list of 
      the query contains references to the same view column with different
      aliases the names of the columns in the result output will be nevertheless
      the same, coinciding with one of the alias.
      
      The bug happened because the method Item_ref::get_tmp_table_item that
      was inherited by the class Item_direct_view_ref ignored the fact that
      the name of the view column reference must be inherited by the fields
      of the temporary table that was created in order to get the result rows
      sorted.
      
      
      mysql-test/r/view.result:
        Added a test case for bug #29392.
      mysql-test/t/view.test:
        Added a test case for bug #29392.
      sql/item.h:
        Fixed bug #29392.
        This bug may manifest itself for select queries over a multi-table view
        that includes an ORDER BY clause in its definition. If the select list of 
        the query contains references to the same view column with different
        aliases the names of the columns in the result output will be nevertheless
        the same, coinciding with one of the alias.
        
        The bug happened because the method Item_ref::get_tmp_table_item that
        was inherited by the class Item_direct_view_ref ignored the fact that
        the name of the view column reference must be inherited by the fields
        of the temporary table that was created in order to get the result rows
        sorted.
        
        Fixed by providing a proper implementation of the get_tmp_table_item 
        method for the Item_direct_view_ref class.
      5d88b654
  32. 28 Jun, 2007 1 commit
    • unknown's avatar
      Patch for the following bugs: · 405f82d3
      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.
      405f82d3
  33. 20 Jun, 2007 1 commit
    • unknown's avatar
      Fixed bug #29104: assertion abort for grouping queries using views. · 39bf2b96
      unknown authored
      The abort happened when a query contained a conjunctive predicate
      of the form 'view column = constant' in the WHERE condition and 
      the grouping list also contained a reference to a view column yet
      a different one.
      
      Removed the failing assertion as invalid in a general case.
      
      Also fixed a bug that prevented applying some optimization for grouping
      queries using views. If the WHERE condition of such a query contains
      a conjunctive condition of the form 'view column = constant' and
      this view column is used in the grouping list then grouping by this
      column can be eliminated. The bug blocked performing this elimination.
      
      
      mysql-test/r/view.result:
        Added a test case for bug #29104.
      mysql-test/t/view.test:
        Added a test case for bug #29104.
      sql/item.cc:
        Fixed bug #29104: assertion abort for grouping queries using views.
        The abort happened when a query contained a conjunctive predicate
        of the form 'view column = constant' in the WHERE condition and 
        the grouping list also contained a reference to a view column yet
        a different one.
        
        Removed the failing assertion as invalid in a general case.
        
        Also fixed a bug that prevented applying some optimization for grouping
        queries using views. If the WHERE condition of such a query contains
        a conjunctive condition of the form 'view column = constant' and
        this view column is used in the grouping list then grouping by this
        column can be eliminated. The bug blocked performing this elimination.
        This bug was in the function Item_field::eq while the failing
        assertion was in the function Item_direct_view_ref::eq.
      39bf2b96
  34. 09 Jun, 2007 1 commit
    • unknown's avatar
      Bug#28266 IS_UPDATABLE field on VIEWS table in I_S database is wrong · ce4e9f75
      unknown authored
      IS_UPDATABLE flag is set to 'yes' when the view has at least one updatable column and
      the algorithm is not 'temporary'.
      
      
      mysql-test/r/information_schema.result:
        test result
      mysql-test/r/view.result:
        test result
      mysql-test/t/information_schema.test:
        test case
      mysql-test/t/view.test:
        test case
      sql/sql_show.cc:
        IS_UPDATABLE flag is set to 'yes' when the view has at least one updatable column and
        the algorithm is not 'temporary'.
      ce4e9f75
  35. 06 Jun, 2007 1 commit
    • unknown's avatar
      Bug #28701: · 05390731
      unknown authored
      Views don't have indexes. So they can't take index hints.
      Added a check and disabled the usage of hints for views.
      
      
      mysql-test/r/view.result:
        Bug #28701: test case
      mysql-test/t/view.test:
        Bug #28701: test case
      sql/sql_view.cc:
        Bug #28701: disable usage of hints for views
      05390731
  36. 31 May, 2007 1 commit
    • unknown's avatar
      Fixed bug #27827. · e2c7a5b0
      unknown authored
      ON conditions from JOIN expression were ignored at CHECK OPTION
      check when updating a multi-table view with CHECK OPTION.
      
      The st_table_list::prep_check_option function has been
      modified to to take into account ON conditions at CHECK OPTION check
      It was also changed to build the check option condition only once
      for any update used in PS/SP.
      
      
      sql/table.h:
        Fixed bug #27827.
        The st_table_list::check_option_processed variable has been added
        to build the check option condition only once for any update used
        in PS/SP.
      sql/table.cc:
        Fixed bug #27827.
        The st_table_list::prep_check_option function has been
        modified to to take into account ON conditions at CHECK OPTION check
        It was also changed to build the check option condition only once
        for any update used in PS/SP.
      mysql-test/t/view.test:
        Updated test case for bug #27827.
      mysql-test/r/view.result:
        Updated test case for bug #27827.
      e2c7a5b0