1. 31 Jan, 2007 1 commit
    • unknown's avatar
      fix for bug #19690: ORDER BY eliminates rows from the result · faad7355
      unknown authored
      Depending on the queries we use different data processing methods
      and can lose some data in case of double (and decimal in 4.1) fields.
      
      The fix consists of two parts:
      1. double comparison changed, now double a is equal to double b 
      if (a-b) is less than 5*0.1^(1 + max(a->decimals, b->decimals)). 
      For example, if a->decimals==1, b->decimals==2, a==b if (a-b)<0.005
      2. if we use a temporary table, store double values there as is 
      to avoid any data conversion (rounding).
      
      
      mysql-test/r/type_float.result:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - test result
      mysql-test/t/type_float.test:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - test case
      sql/field.cc:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - use not_fixed flag instead of dec to check bounds.
      sql/field.h:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - Field_Double::not_fixed flag introduced, which is set if dec == NOT_FIXED_DEC
            and is used in the ::store() to check bounds. 
          - new constructor introduced (with not_fixed_arg parameter).
      sql/init.cc:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - fill log_01[] array with 0.1 powers.
      sql/item_cmpfunc.cc:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - compare_real_fixed() and compare_e_real_fixed() introduced,
            they consider double a == double b if a-b is less than 'precision',
            'precision' is set to 5*0.1^(1 + max(a->decimals, b->decimals)), 
            for example, if a->decimals==1, b->decimals==2, 'precision' is 0.005
          - use the above functions if both arguments are fixed.
      sql/item_cmpfunc.h:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - Arg_comparator::presision introduced.
          - Arg_comparator::compare_real_fixed(), Arg_comparator::compare_e_real_fixed() introduced.
      sql/mysql_priv.h:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - log_01 array of 0.1 powers added.
      sql/mysqld.cc:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - log_01 array of 0.1 powers added.
      sql/sql_select.cc:
        fix for bug #19690: ORDER BY eliminates rows from the result
          - if we create double field in a temporary table, set not_fixed flag
            (use proper constructor) to avoid data conversion 
            in the Field_double::store(). Otherwise we can lose some data.
      faad7355
  2. 19 Jan, 2007 1 commit
  3. 18 Jan, 2007 7 commits
  4. 17 Jan, 2007 9 commits
  5. 16 Jan, 2007 1 commit
    • unknown's avatar
      A fix for the broken 4.1-runtime tree. · 9cff68bb
      unknown authored
      
      mysql-test/t/backup.test:
        Backport a patch for sporadically failing myisam.test (and now ps.test)
        from 5.0. The cause was in backup.test not cleaning up tables in
        mysqltest-vardir/tmp after itself.
      mysql-test/t/ps.test:
        Add additional protection against possible failure in the middle of
        backup.test
      9cff68bb
  6. 15 Jan, 2007 2 commits
    • unknown's avatar
      A post-merge fix. · 15c83425
      unknown authored
      
      sql/sql_parse.cc:
        A post-merge fix (broken alter_table.test): restore Svoj's fix
        for Bug#23404 lost during merge.
      15c83425
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-4.1-runtime · d470c233
      unknown authored
      into  bodhi.local:/opt/local/work/mysql-4.1-4968-to-push
      
      
      sql/mysql_priv.h:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_insert.cc:
        Auto merged
      sql/sql_parse.cc:
        Manual merge.
      sql/sql_table.cc:
        Manual merge.
      d470c233
  7. 12 Jan, 2007 4 commits
  8. 11 Jan, 2007 12 commits
  9. 10 Jan, 2007 3 commits
    • unknown's avatar
      Merge trift2.:/MySQL/M40/clone-4.0 · 34d5b84b
      unknown authored
      into  trift2.:/MySQL/M41/push-4.1
      
      
      VC++Files/mysql.dsw:
        Null-merge: Removal of BerkeleyDB is limited to 4.0
      VC++Files/libmysqld/libmysqld.dsp:
        Null-merge: Removal of BerkeleyDB is limited to 4.0
      VC++Files/mysqldemb/mysqldemb.dsp:
        Null-merge: Removal of BerkeleyDB is limited to 4.0
      VC++Files/mysqlserver/mysqlserver.dsp:
        Null-merge: Removal of BerkeleyDB is limited to 4.0
      VC++Files/sql/mysqld.dsp:
        Null-merge: Removal of BerkeleyDB is limited to 4.0
      VC++Files/sql/mysqldmax.dsp:
        Null-merge: Removal of BerkeleyDB is limited to 4.0
      34d5b84b
    • unknown's avatar
      Merge trift2.:/MySQL/M40/upward-4.0 · 6ee56e41
      unknown authored
      into  trift2.:/MySQL/M41/push-4.1
      
      
      mysys/my_read.c:
        Auto merged
      scripts/make_binary_distribution.sh:
        Null merge, because "--platform" is already a real argument in 4.1
      support-files/MySQL-shared-compat.spec.sh:
        Null merge, because the 4.1 version already uses two digits
        for "version40" and "version41".
      6ee56e41
    • unknown's avatar
      Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-4.1-opt · 10698df6
      unknown authored
      into  olga.mysql.com:/home/igor/mysql-4.1-opt
      
      
      10698df6