1. 02 Oct, 2008 1 commit
    • Sergey Glukhov's avatar
      Bug#22763 Disrepancy between SHOW CREATE VIEW and I_S.VIEWS · 7e60f710
      Sergey Glukhov authored
      The problem:
      I_S views table does not check the presence of SHOW_VIEW_ACL|SELECT_ACL
      privileges for a view. It leads to discrepancy between SHOW CREATE VIEW
      and I_S.VIEWS.
      The fix:
      added appropriate check.
      
      
      mysql-test/r/information_schema_db.result:
        test result
      mysql-test/t/information_schema_db.test:
        test case
      sql/sql_show.cc:
        The problem:
        I_S views table does not check the presence of SHOW_VIEW_ACL|SELECT_ACL
        privileges for a view. It leads to discrepancy between SHOW CREATE VIEW
        and I_S.VIEWS.
        The fix:
        added appropriate check.
      7e60f710
  2. 01 Oct, 2008 6 commits
  3. 30 Sep, 2008 3 commits
    • Patrick Crews's avatar
      automerge · e97a45fd
      Patrick Crews authored
      e97a45fd
    • Patrick Crews's avatar
      Automerge · 8c33da07
      Patrick Crews authored
      8c33da07
    • Gleb Shchepa's avatar
      Fixed bug #17823: 'arc' directories inside database directories. · 3c9d4ea8
      Gleb Shchepa authored
      Server created "arc" directories inside database directories and
      maintained there useless copies of .frm files.
      
      Creation and renaming procedures of those copies as well as
      creation of "arc" directories has been discontinued.
      Removal procedure has been kept untouched to be able to
      cleanup existent database directories by the DROP DATABASE
      query. Also view renaming procedure has been updated to remove
      these directories.
      
      
      sql/parse_file.cc:
        Fixed bug #17823: 'arc' directories inside database directories.
        View/table creation and renaming procedures maintained
        backup copies of .frm files. Those copies are unused yet,
        so this feature was incomplete and unnecessary.
        
        1. Unwanted code has been hidden by FRM_ARCHIVE ifdefs
        (the FRM_ARCHIVE macro is not defined).
        
        2. Renaming procedure has been modified to remove obsolete
        "arc" directories.
      sql/parse_file.h:
        Fixed bug #17823: 'arc' directories inside database directories.
        The "thd" parameter has been added to the rename_in_schema_file()
        function.
      sql/sql_db.cc:
        Fixed bug #17823: 'arc' directories inside database directories.
        Scope of the mysql_rm_arc_files() function has been changed to
        global for use from the parse_file.cc file.
      sql/sql_view.cc:
        Fixed bug #17823: 'arc' directories inside database directories.
        Added the "thd" argument to rename_in_schema_file() calls.
      3c9d4ea8
  4. 29 Sep, 2008 1 commit
    • Alexey Botchkov's avatar
      Bug#37949 Crash if argument to SP is a subquery that returns more than one row · ce64a16b
      Alexey Botchkov authored
           JOIN for the subselect wasn't cleaned if we came upon an error
           during sub_select() execution. That leads to the assertion failure
           in close_thread_tables()
      
           part of the 6.0 code backported
      
      per-file comments:
        mysql-test/r/sp-error.result
      Bug#37949 Crash if argument to SP is a subquery that returns more than one row 
          test result
      
        mysql-test/t/sp-error.test
      Bug#37949 Crash if argument to SP is a subquery that returns more than one row 
          test case
      
        sql/sp_head.cc
      Bug#37949 Crash if argument to SP is a subquery that returns more than one row 
          lex->unit.cleanup() call added if not substatement
      ce64a16b
  5. 23 Sep, 2008 1 commit
  6. 20 Sep, 2008 4 commits
    • Kristofer Pettersson's avatar
      Automerge · 119c5aae
      Kristofer Pettersson authored
      119c5aae
    • Kristofer Pettersson's avatar
      Bug#38469 invalid memory read and/or crash with utf8 text field, stored procedure, uservar · f0352e34
      Kristofer Pettersson authored
                  
      A stored procedure involving substrings could crash the server on certain
      platforms because of invalid memory reads.
                
      During storing the new blob-field value, the cached value's address range
      overlapped that of the new field value. This caused problems when the 
      cached value storage was reallocated to provide access for a new 
      characater set representation. The patch checks the address ranges, and if
      they overlap, the new field value is copied to a new storage before it is
      converted to the new character set.
      
      
      mysql-test/r/sp.result:
        Added result set
      mysql-test/t/sp.test:
        Added test case
      sql/field.cc:
        The source and destination address ranges of a character conversion must not overlap or the 'from' address will be invalidated as the temporary value-
        object is re-allocated to fit the new character set.
      sql/field.h:
        Added comments
      f0352e34
    • Davi Arnaut's avatar
      Restore team tree name. · fa490eb9
      Davi Arnaut authored
      fa490eb9
    • Patrick Crews's avatar
      Bug#38311 Some tests use 'rm' which is not portable · 404e4b80
      Patrick Crews authored
      Substituted use of MTR's remove_file function in the tests
      Started with 5.0 tree and will clean up any offenders discovered during upmerge.
      404e4b80
  7. 19 Sep, 2008 2 commits
  8. 18 Sep, 2008 3 commits
    • Matthias Leich's avatar
      Merge actual tree -> local tree · 24fe7470
      Matthias Leich authored
      no conflicts
      24fe7470
    • Georgi Kodinov's avatar
      Bug #39353: Multiple conditions on timestamp column crashes server · 71fe1901
      Georgi Kodinov authored
            
      The fix for bug 31887 was incomplete : it assumes that all the 
      field types returned by the IS_NUM macro are descendants of 
      Item_num and tries to zero-fill the values before doing constant
      substitution with such fields when they are compared to constant string
      values.
      The only exception to this is Field_timestamp : it's in the IS_NUM
      macro, but is not a descendant of Field_num.
      Fixed by excluding timestamp fields (Field_timestamp) when zero-filling
      when converting the constant to compare with to a string.
      Note that this will not exclude the timestamp columns from const 
      propagation.
      
      mysql-test/r/compare.result:
        Bug #39353: test case
      mysql-test/t/compare.test:
        Bug #39353: test case
      sql/item.cc:
        Bug #39353: don't zero-fill timestamp fields when const propagating
        to a string : they'll be converted to a string in a date/time format
        and not as an integer.
      71fe1901
    • Tatiana A. Nurnberg's avatar
      Bug#37114: sql_mode NO_BACKSLASH_ESCAPES does not work properly with LOAD DATA... · 654db75d
      Tatiana A. Nurnberg authored
      Bug#37114: sql_mode NO_BACKSLASH_ESCAPES does not work properly with LOAD DATA      Bug#37114: sql_mode NO_BACKSLASH_ESCAPES does not work properly with LOAD DATA INFILE
      
      tweaked test to make embedded server happy
      654db75d
  9. 17 Sep, 2008 2 commits
    • Tatiana A. Nurnberg's avatar
      auto-merge · 8d10051b
      Tatiana A. Nurnberg authored
      8d10051b
    • Tatiana A. Nurnberg's avatar
      Bug#37114: sql_mode NO_BACKSLASH_ESCAPES does not work properly with LOAD DATA INFILE · 2f082d9d
      Tatiana A. Nurnberg authored
      NO_BACKSLASH_ESCAPES was not heeded in LOAD DATA INFILE
      and SELECT INTO OUTFILE.  It is now.
      
      mysql-test/r/loaddata.result:
        Show that SQL-mode NO_BACKSLASH_ESCAPES is heeded in
        INFILE/OUTFILE, and that dump/restore cycles work!
      mysql-test/t/loaddata.test:
        Show that SQL-mode NO_BACKSLASH_ESCAPES is heeded in
        INFILE/OUTFILE, and that dump/restore cycles work!
      sql/sql_class.cc:
        Add function to enquire whether ESCAPED BY was given.
        When doing SELECT...OUTFILE, use ESCAPED BY if specifically
        given; otherwise use sensible default value depending on
        SQL-mode features NO_BACKSLASH_ESCAPES.
      sql/sql_class.h:
        Add function to enquire whether ESCAPED BY was given.
      sql/sql_load.cc:
        When doing LOAD DATA INFILE, use ESCAPED BY if specifically
        given; otherwise use sensible default value depending on
        SQL-mode features NO_BACKSLASH_ESCAPES.
      2f082d9d
  10. 16 Sep, 2008 3 commits
  11. 15 Sep, 2008 2 commits
    • Patrick Crews's avatar
      Bug#37938 Test "mysqldump" lacks various INSERT statements / values · ebd3a6e4
      Patrick Crews authored
      Moved fix for this bug to 5.0 as other mysqldump bugs seem tied to concurrent_insert being on
      Setting concurrent_insert off during this test as INSERTs weren't being 
      completely processed before the calls to mysqldump, resulting in failing tests.
      
      Altered .test file to turn concurrent_insert off during the test and to restore it
      to whatever the value was at the start of the test when complete.
      
      Re-recorded .result file to account for changes to variables in the test.
      ebd3a6e4
    • Vladislav Vaintroub's avatar
      Bug#35987 - crash report on windows doesn't resolve stack traces. · 5343b7ae
      Vladislav Vaintroub authored
      The problem here is that symbols can not be loaded, because symbol
      path is not set and  default path does not include the directory
      where PDB is located.
      
      The problem is _not_ reproducible on the same machine where
      mysqld.exe is built - if PDB is not found in the symbol path,
      dbghelp would fallback to fully qualified PDB path as given in the
      executable header and on the build host this will succeed.
      
      The solution is to calculate symbol path and pass it to SymInitialize()
      call.
      5343b7ae
  12. 11 Sep, 2008 2 commits
    • Tatiana A. Nurnberg's avatar
      Bug#31434 mysqldump dumps view as table · 6e162ea9
      Tatiana A. Nurnberg authored
      mysqldump creates stand-in tables before dumping the actual view.
      Those tables were of the default type; if the view had more columns
      than that (a pathological case, arguably), loading the dump would
      fail. We now make the temporary stand-ins MyISAM tables to prevent
      this.
      
      client/mysqldump.c:
        When creating a stand-in table, specify its type to
        avoid defaulting to a type with a column-number limit
        (like Inno). The type is always MyISAM as we know that
        to be available.
      mysql-test/r/mysqldump.result:
        mysqldump sets engine-type (MyISAM) for stand-in tables
        for views now. Update test results.
      6e162ea9
    • Timothy Smith's avatar
      Auto merge 5.0-build -> 5.0-bugteam · cafa5594
      Timothy Smith authored
      cafa5594
  13. 10 Sep, 2008 2 commits
  14. 09 Sep, 2008 1 commit
    • Ramil Kalimullin's avatar
      Fix for bug#37526: asymertic operator <=> in trigger · 776793a9
      Ramil Kalimullin authored
      Problem: <=> operator may return wrong results 
      comparing NULL and a DATE/DATETIME/TIME value.
      
      Fix: properly check NULLs.
      
      
      mysql-test/r/type_datetime.result:
        Fix for bug#37526: asymertic operator <=> in trigger
          - test result.
      mysql-test/t/type_datetime.test:
        Fix for bug#37526: asymertic operator <=> in trigger
          - test case.
      sql/item_cmpfunc.cc:
        Fix for bug#37526: asymertic operator <=> in trigger
          - if is_nulls_eq is TRUE Arg_comparator::compare_datetime() 
        should return 1 only if both arguments are NULL.
      776793a9
  15. 05 Sep, 2008 3 commits
    • unknown's avatar
      Merge from mysql-5.0.68-release · 8106a731
      unknown authored
      8106a731
    • Ramil Kalimullin's avatar
      Fix for bug #39021: SELECT REGEXP BINARY NULL never returns · 788be2ae
      Ramil Kalimullin authored
      Problem: SELECT ... REGEXP BINARY NULL may lead to server crash/hang.
      
      Fix: properly handle NULL regular expressions.
      
      
      mysql-test/r/func_regexp.result:
        Fix for bug #39021: SELECT REGEXP BINARY NULL never returns
          - test result.
      mysql-test/t/func_regexp.test:
        Fix for bug #39021: SELECT REGEXP BINARY NULL never returns
          - test case.
      sql/item_cmpfunc.cc:
        Fix for bug #39021: SELECT REGEXP BINARY NULL never returns
          - checking regular expressions' null_value
        we tested it without a val_xxx() call before, which is wrong.
        Now Item_func_regex::regcomp() returns -1 in the case
        and allows to handle NULL expessions properly.
      sql/item_cmpfunc.h:
        Fix for bug #39021: SELECT REGEXP BINARY NULL never returns
          - checking regular expressions' null_value
        we tested it without a val_xxx() call before, which is wrong.
        Now Item_func_regex::regcomp() returns -1 in the case
        and allows to handle NULL expessions properly.
      788be2ae
    • Ramil Kalimullin's avatar
      Merge · bcbff0b9
      Ramil Kalimullin authored
      bcbff0b9
  16. 03 Sep, 2008 3 commits
    • Ramil Kalimullin's avatar
      Fix for bug#38821: Assert table->auto_increment_field_not_null failed · f0a50bd9
      Ramil Kalimullin authored
      in open_table()
      
      Problem: repeating "CREATE... ( AUTOINCREMENT) ... SELECT" may lead to
      an assertion failure.
      
      Fix: reset table->auto_increment_field_not_null after each record 
      writing.
      
      
      mysql-test/r/create.result:
        Fix for bug#38821: Assert table->auto_increment_field_not_null failed 
        in open_table()
          - test result.
      mysql-test/t/create.test:
        Fix for bug#38821: Assert table->auto_increment_field_not_null failed 
        in open_table()
          - test case.
      sql/sql_insert.cc:
        Fix for bug#38821: Assert table->auto_increment_field_not_null failed 
        in open_table()
          - reset table->auto_increment_field_not_null after writing a record
        for "{CREATE, INSERT}..SELECT".
      f0a50bd9
    • Gleb Shchepa's avatar
      merge with local tree · dd1d9adb
      Gleb Shchepa authored
      dd1d9adb
    • Gleb Shchepa's avatar
      Bug #39002: The server crashes on the query: · 59b9d50c
      Gleb Shchepa authored
        INSERT .. SELECT .. ON DUPLICATE KEY UPDATE col=DEFAULT
      
      In order to get correct values from update fields that
      belongs to the SELECT part in the INSERT .. SELECT .. ON
      DUPLICATE KEY UPDATE statement, the server adds referenced
      fields to the select list. Part of the code that does this
      transformation is shared between implementations of
      the DEFAULT(col) function and the DEFAULT keyword (in
      the col=DEFAULT expression), and an implementation of
      the DEFAULT keyword is incomplete.
      
      
      mysql-test/r/default.result:
        Added test case for bug #39002.
      mysql-test/t/default.test:
        Added test case for bug #39002.
      sql/item.cc:
        The Item_default_value::transform() function has been
        modified to take into account the fact that the DEFAULT
        keyword has no arguments unlike the DEFAULT(col) function
        that always has an argument.
      59b9d50c
  17. 01 Sep, 2008 1 commit
    • Vladislav Vaintroub's avatar
      Bug#37226 Explicit call of my_thread_init() on Windows for every new thread. · ff884049
      Vladislav Vaintroub authored
      Bug#33031 app linked to libmysql.lib crash if run as service in vista under 
      localsystem
        
      
      There are some problems using DllMain hook functions on Windows that 
      automatically do global and per-thread initialization for libmysqld.dll
      
      1)per-thread initialization(DLL_THREAD_ATTACH)
      MySQL internally counts number of active threads that and causes a delay in in 
      my_end() if not all threads are exited. But,there are threads that can be 
      started either by Windows internally (often in TCP/IP scenarios) or by user 
      himself - those threads are not necessarily using libmysql.dll functionality, 
      but nonetheless the contribute to the count of open threads.
      
      2)process-initialization (DLL_PROCESS_ATTACH)
      my_init() calls WSAStartup that itself loads DLLs and can lead to a deadlock in 
      Windows loader.
      
      Fix is to remove dll initialization code from libmysql.dll in general case. I
      still leave an environment variable LIBMYSQL_DLLINIT, which if set to any value 
      will cause the old behavior (DLL init hooks will be called). This env.variable 
      exists only to prevent breakage of existing Windows-only applications that 
      don't do mysql_thread_init() and work ok today. Use of LIBMYSQL_DLLINIT is 
      discouraged and it will be removed in 6.0
      ff884049