1. 21 Jul, 2006 1 commit
    • unknown's avatar
      Fixed bug#12185: Data type aggregation may produce wrong result · a05809b6
      unknown authored
      The Item::tmp_table_field_from_field_type() function creates Field_datetime
      object instead of Field_timestamp object for timestamp field thus always
      changing data type is a tmp table is used.
      
      The Field_blob object constructor which is used in the 
      Item::tmp_table_field_from_field_type() is always setting packlength field of
      newly created blob to 4. This leads to changing fields data type for example
      from the blob to the longblob if a temporary table is used.
      
      The Item::make_string_field() function always converts Field_string objects 
      to Field_varstring objects. This leads to changing data type from the 
      char/binary to varchar/varbinary.
      
      Added appropriate Field_timestamp object constructor for using in the 
      Item::tmp_table_field_from_field_type() function.
      
      Added Field_blob object constructor which sets pack length according to
      max_length argument.
      
      The Item::tmp_table_field_from_field_type() function now creates
      Field_timestamp object for a timestamp field.
      
      The Item_type_holder::display_length() now returns correct NULL length NULL
      length. 
      
      The Item::make_string_field() function now doesn't change Field_string to
      Field_varstring in the case of Item_type_holder. 
      
      The Item::tmp_table_field_from_field_type() function now uses the Field_blob
      constructor which sets packlength according to max_length.
      
      
      mysql-test/t/union.test:
        Added test case for bug#12185: Data type aggregation may produce wrong result
        Corrected test case after fix for bug#12185
      mysql-test/t/innodb.test:
        Corrected test case after fix for bug#12185
      mysql-test/r/union.result:
        Added test case for bug#12185: Data type aggregation may produce wrong result
         Corrected test case after fix for bug#12185
      mysql-test/r/innodb.result:
        Corrected test case after fix for bug#12185
      mysql-test/r/create.result:
        Corrected the test case after fixing bug#12185
      sql/field.h:
        Fixed bug#12185: Data type aggregation may produce wrong result
        Added Field_blob object constructor which sets packlength according to
        max_length argument.
      sql/item.cc:
        Fixed bug#12185: Data type aggregation may produce wrong result
        The Item::make_string_field() function now doesn't change Field_string to
        Field_varstring in the case of Item_type_holder.
        The Item::tmp_table_field_from_field_type() function now creates
        Field_timestamp object for a timestamp field.
        The Item::tmp_table_field_from_field_type() function now uses the Field_blob
        constructor which sets packlength according to max_length.
        The Item_type_holder::display_length() now returns correct NULL length NULL
        length.
      sql/field.cc:
        Fixed bug#12185: Data type aggregation may produce wrong result
        Added appropriate Field_timestamp object constructor for using in the 
        Item::tmp_table_field_from_field_type() function.
      a05809b6
  2. 30 May, 2006 3 commits
  3. 29 May, 2006 16 commits
    • unknown's avatar
      Fixed bug#18360: Incorrect type coercion in IN() results in false comparison · a719dc38
      unknown authored
      The IN() function uses agg_cmp_type() to aggregate all types of its arguments
      to find out some common type for comparisons. In this particular case the 
      char() and the int was aggregated to double because char() can contain values
      like '1.5'. But all strings which do not start from a digit are converted to
      0. thus 'a' and 'z' become equal. 
      This behaviour is reasonable when all function arguments are constants. But 
      when there is a field or an expression this can lead to false comparisons. In
      this case it makes more sense to coerce constants to the type of the field
      argument.
      
      The agg_cmp_type() function now aggregates types of constant and non-constant
      items separately. If some non-constant items will be found then their
      aggregated type will be returned. Thus after the aggregation constants will be
      coerced to the aggregated type. 
      
      
      mysql-test/t/func_in.test:
        Added test case for bug#18360: Incorrect type coercion in IN() results in false comparison.
      mysql-test/r/func_in.result:
        Added test case for bug#18360: Incorrect type coercion in IN() results in false comparison.
      sql/item_cmpfunc.cc:
        Fixed bug#18360: Incorrect type coercion in IN() results in false comparison.
        The agg_cmp_type() function now aggregates types of constant and non-constant
        items separately. If some non-constant items will be found then their
        aggregated type will be returned. Thus after the aggregation constants will
        be coerced to the aggregated type.
      a719dc38
    • unknown's avatar
      Manually merged · 362fe8e1
      unknown authored
      
      mysql-test/t/multi_update.test:
        Auto merged
      362fe8e1
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0 · 97494a6a
      unknown authored
      into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      97494a6a
    • unknown's avatar
      Merge 192.168.0.20:mysql/yassl_import/my50-yassl_import · 9ded1707
      unknown authored
      into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      9ded1707
    • unknown's avatar
      Add new file md4.cpp to VC++ project file · b4d2a8ac
      unknown authored
      b4d2a8ac
    • unknown's avatar
      Import from yaSSL · 629fdd9a
      unknown authored
      
      extra/yassl/include/yassl_error.hpp:
        Import patch yassl.diff
      extra/yassl/mySTL/stdexcept.hpp:
        Import patch yassl.diff
      extra/yassl/src/yassl_error.cpp:
        Import patch yassl.diff
      extra/yassl/src/yassl_int.cpp:
        Import patch yassl.diff
      extra/yassl/taocrypt/src/integer.cpp:
        Import patch yassl.diff
      extra/yassl/taocrypt/src/misc.cpp:
        Import patch yassl.diff
      629fdd9a
    • unknown's avatar
      Merge msvensson@msvensson.mysql.internal:/home/msvensson/mysql/mysql-5.0 · d24cfd42
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-5.0
      
      d24cfd42
    • unknown's avatar
      Merge 192.168.0.20:mysql/mysql-5.0 · 927745c8
      unknown authored
      into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      927745c8
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.0 · d4715742
      unknown authored
      into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      d4715742
    • unknown's avatar
      Merge shellback.(none):/home/msvensson/mysql/yassl_import/my50-yassl_import · 987360e8
      unknown authored
      into  shellback.(none):/home/msvensson/mysql/mysql-5.0
      
      987360e8
    • unknown's avatar
      Merge msvensson@bk-internal.mysql.com:/home/bk/mysql-5.0 · d462e6c3
      unknown authored
      into  devsrv-b.mysql.com:/users/msvensson/mysql-5.0
      
      d462e6c3
    • unknown's avatar
      after merge fix. · a9eae996
      unknown authored
      
      
      client/mysqldump.c:
        after merge fix.
          - 'lengths' declaration moved to the beginning of the block.
      a9eae996
    • unknown's avatar
      Update result file after merge · d3ea86a9
      unknown authored
      d3ea86a9
    • unknown's avatar
      Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1 · e915dade
      unknown authored
      into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
      
      
      mysys/default.c:
        Auto merged
      mysql-test/mysql-test-run.pl:
        Merge backport
      mysql-test/mysql-test-run.sh:
        Merge backport
      mysql-test/r/mysqldump.result:
        Manual merge
      mysql-test/t/mysqldump.test:
        Manual merge
      e915dade
    • unknown's avatar
      manual merge · 8c083f0a
      unknown authored
      8c083f0a
    • unknown's avatar
      Merge mysql.com:/usr/home/ram/work/mysql-4.1 · 9ca946b2
      unknown authored
      into  mysql.com:/usr/home/ram/work/mysql-5.0
      
      
      client/mysqldump.c:
        merge (used ul)
      mysql-test/r/mysqldump.result:
        merge (used ul)
      mysql-test/t/mysqldump.test:
        merge (used ul)
      9ca946b2
  4. 28 May, 2006 1 commit
    • unknown's avatar
      Fixed bug#19225: unchecked error results in server crash · ae331d61
      unknown authored
      In multi-table delete a table for delete can't be used for selecting in
      subselects. Appropriate error was raised but wasn't checked which leads to a
      crash at the execution phase.
      
      The mysql_execute_command() now checks for errors before executing select
      for multi-delete.
      
      
      mysql-test/t/multi_update.test:
        Added test case for bug#19225: unchecked error results in server crash
      mysql-test/r/multi_update.result:
        Added test case for bug#19225: unchecked error results in server crash
      sql/sql_parse.cc:
        Fixed bug#19225: unchecked error results in server crash
        The mysql_execute_command() now checks for errors before executing select for multi-delete.
      ae331d61
  5. 26 May, 2006 7 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 317928f7
      unknown authored
      into  mysql.com:/home/emurphy/iggy/mysql-5.0
      
      
      sql/mysqld.cc:
        Auto merged
      317928f7
    • unknown's avatar
      Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0 · 62e4f81f
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/5.0/clean
      
      62e4f81f
    • unknown's avatar
      Merge mysql.com:/home/kgeorge/mysql/5.0/clean · c1e6606d
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/5.0/B18681
      
      
      sql/sql_acl.cc:
        Auto merged
      sql/table.cc:
        Auto merged
      mysql-test/r/view_grant.result:
        resolved conflict
      mysql-test/t/view_grant.test:
        resolved merge conflict
      c1e6606d
    • unknown's avatar
      Merge mysql.com:/home/kgeorge/mysql/5.0/clean · 6df7e493
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/5.0/B18681
      
      
      sql/mysql_priv.h:
        Auto merged
      sql/sql_acl.cc:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      6df7e493
    • unknown's avatar
      Merge mysql.com:/home/kgeorge/mysql/5.0/clean · c0241ded
      unknown authored
      into  mysql.com:/home/kgeorge/mysql/5.0/B14875
      
      c0241ded
    • unknown's avatar
      Bug #14875: Bad view DEFINER makes SHOW CREATE VIEW fail · cf69af37
      unknown authored
      When reading a view definition from a .frm file it was
      throwing a SQL error if the DEFINER user is not defined.
      Changed it to a warning to match the (documented) case
      when a view with undefined DEFINER user is created.
      
      
      mysql-test/r/view_grant.result:
        test case for the bug
      mysql-test/t/view_grant.test:
        test case for the bug
      sql/sql_acl.cc:
        Initialized the members to no privileges so even if
        the subsequent checks fail it will still initialize
        the security context.
      sql/table.cc:
        Turned the error of undefined DEFINER user in reading 
        a view definition to a warning.
      cf69af37
    • unknown's avatar
      BUG#18681: View privileges are broken · 89444fa0
      unknown authored
      The check for view security was lacking several points :
      1. Check with the right set of permissions : for each table ref that
      participates in a view there were the right credentials to use in it's
      security_ctx member, but these weren't used for checking the credentials.
      This makes hard enforcing the SQL SECURITY DEFINER|INVOKER property
      consistently.
      2. Because of the above the security checking for views was just ruled out
      in explicit ways in several places.
      3. The security was checked only for the columns of the tables that are
      brought into the query from a view. So if there is no column reference
      outside of the view definition it was not detecting the lack of access to
      the tables in the view in SQL SECURITY INVOKER mode.
      
      The fix below tries to fix the above 3 points.
      
      
      mysql-test/r/grant.result:
        removed nondeterminism (unspecified order) in some test output
      mysql-test/r/view_grant.result:
        Somewhat extended test case for the bug and similar queries.
      mysql-test/t/grant.test:
        removed nondeterminism (unspecified order) in some test output
      mysql-test/t/view_grant.test:
        Somewhat extended test case for the bug and similar queries.
      sql/mysql_priv.h:
        A wrapper for setup_tables that also checks access to the tables
      sql/sql_acl.cc:
        removed artificial security check stop and used the table ref's credentials.
      sql/sql_base.cc:
        a wrapper for setup_tables to check access to the tables
      sql/sql_delete.cc:
        wrapper called.
      sql/sql_insert.cc:
        wrapper called
      sql/sql_load.cc:
        wrapper called
      sql/sql_parse.cc:
        wrapper called and artificial check stop removed
      sql/sql_select.cc:
        wrapper called
      sql/sql_update.cc:
        wrapper called
      sql/table.cc:
        Mask table access to the view error as well.
      89444fa0
  6. 25 May, 2006 8 commits
  7. 24 May, 2006 4 commits
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 01cdf975
      unknown authored
      into  mysql.com:/home/my/mysql-5.0
      
      01cdf975
    • unknown's avatar
      Merge monty@192.168.0.9:/my/mysql-5.0 · f06e3b57
      unknown authored
      into  mysql.com:/home/my/mysql-5.0
      
      
      sql/mysqld.cc:
        Auto merged
      f06e3b57
    • unknown's avatar
      More DBUG statements · 15a41be4
      unknown authored
      Replaced COND_refresh with COND_global_read_lock becasue of a bug in NTPL threads when using different mutexes as arguments to pthread_cond_wait()
      The original code caused a hang in FLUSH TABLES WITH READ LOCK in some circumstances because pthread_cond_broadcast() was not delivered to other threads.
      This fixes:
      Bug#16986: Deadlock condition with MyISAM tables
      Bug#20048: FLUSH TABLES WITH READ LOCK causes a deadlock
      
      
      mysql-test/r/flush.result:
        Added test case for deadlock with FLUSH TABLES WITH READ LOCK
      mysql-test/r/lock_multi.result:
        Test for bug in LOCK TABLE + optimize table
      mysql-test/t/flush.test:
        Added test case for deadlock with FLUSH TABLES WITH READ LOCK
      mysql-test/t/lock_multi.test:
        Test for bug in LOCK TABLE + optimize table
      sql/lock.cc:
        Replaced COND_refresh with COND_global_read_lock becasue of a bug in NTPL threads when using different mutexes as arguments to pthread_cond_wait()
        The original code caused a hang in FLUSH TABLES WITH READ LOCK in some circumstances because pthread_cond_broadcast() was not delivered to other threads
      sql/mysql_priv.h:
        Added COND_global_read_lock
      sql/mysqld.cc:
        Added COND_global_read_lock
      sql/sql_base.cc:
        More DBUG statements
        Added a broadcast in remove_table_from_cache() to release any threads waiting in open
      15a41be4
    • unknown's avatar
      Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0 · edb3c164
      unknown authored
      into  april.(none):/home/svoj/devel/mysql/BUG17001/mysql-5.0
      
      edb3c164