1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-14 13:41:20 +03:00
Commit Graph

4151 Commits

Author SHA1 Message Date
05b1020397 multi_update.result:
Fix for a bug in the result
multi_update.test:
  Fix for a bug in the test


mysql-test/t/multi_update.test:
  Fix for a bug in the test
mysql-test/r/multi_update.result:
  Fix for a bug in the result
2004-03-13 21:06:36 +02:00
de448d41c0 Merge vvagin@bk-internal.mysql.com:/home/bk/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_2985/mysql-4.0


sql/sql_db.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/table.cc:
  Auto merged
2004-03-12 17:56:27 +04:00
f85032f16e Portability fixes & fixing of test suite
mysql-test/r/func_math.result:
  Updated tests after merge with 3.23
mysql-test/r/multi_update.result:
  Fixed not portable test
mysql-test/r/mysqlbinlog.result:
  Fixed test after push without doing 'make test'
mysql-test/t/multi_update.test:
  Fixed not portable test
sql/sql_parse.cc:
  Don't use static inline, as this is not portable
2004-03-12 09:15:08 +02:00
965158f28f Merge
mysql-test/install_test_db.sh:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
mysql-test/mysql-test-run.sh:
  SCCS merged
2004-03-12 01:13:04 +02:00
dd8b25510e Merge with 3.23 to get patch for floor()
BitKeeper/etc/logging_ok:
  auto-union
myisam/mi_check.c:
  Auto merged
mysql-test/r/func_math.result:
  Auto merged
mysql-test/t/func_math.test:
  Auto merged
sql/item_func.cc:
  Auto merged
2004-03-12 01:12:14 +02:00
a1d9e1eec4 Ensure that install_test_db.sh script works with both 'make install' and 'make_binary_distribution' layouts
Abort if we can't allocate memory for table cache
Fix bug with multi-update-tables and BDB tables.


extra/replace.c:
  Fix comments
mysql-test/install_test_db.sh:
  Change internal option from -bin to --bin
  Ensure that script works with both 'make install' and 'make_binary_distribution' layouts (Bug #3031)
mysql-test/mysql-test-run.sh:
  Change internal option from -bin to --bin
sql/ha_berkeley.cc:
  More debug
sql/mysql_priv.h:
  Change table_cache_init to return error
sql/mysqld.cc:
  Abort if we can't allocate memory for table cache. (Bug #3085)
  Enable warnings by default
sql/sql_base.cc:
  Change table_cache_init to return error
sql/sql_update.cc:
  Fix bug with multi-update-tables and BDB tables. Bug #3098
  Problem was that we didn't initialize BDB for calls to rnd_pos()
2004-03-12 01:10:22 +02:00
e6f59dd60e Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.0
into sinisa.nasamreza.org:/mnt/work/mysql-4.0
2004-03-11 22:27:17 +02:00
dc970f9518 multi_update.result:
Test case for a #2996 bug fix
multi_update.test:
  test case for a #2996 bug fix
sql_select.cc:
  Fix for a bug #2996 involving multi-table updates over the const tables


sql/sql_select.cc:
  Fix for a bug #2996 involving multi-table updates over the const tables
mysql-test/t/multi_update.test:
  test case for a #2996 bug fix
mysql-test/r/multi_update.result:
  Test case for a #2996 bug fix
2004-03-11 22:26:03 +02:00
a20bf68aeb merge correcttion in mysql-test/r/mysqldump.result
mysql-test/r/mysqldump.result:
  merge correction
2004-03-11 22:43:10 +04:00
f3112e648c Merge
mysql-test/r/mysqldump.result:
  e
mysql-test/t/mysqldump.test:
  SCCS merged
2004-03-11 22:01:25 +04:00
bd6c4ef400 Fix for BUG#2983 "If statement was killed on master, slave errors despite replicate-wild-ignore-t"
We introduce a new function mysql_test_parse_for_slave().
If the slave sees that the query got a really bad error on master
(killed e.g.), then it calls this function to know if this query
can be ignored because of replicate-*-table rules (do not worry
about replicate-*-db rules: they are checked so early that they have
no bug). If the answer is yes, it skips the query and continues. If
it's no, then it stops and say "fix your slave data manually" (like it
did before this change).


mysql-test/r/rpl_error_ignored_table.result:
  result update
mysql-test/t/rpl_error_ignored_table-slave.opt:
  ignore more tables
mysql-test/t/rpl_error_ignored_table.test:
  we test if a killed query on the master, is ignored on the slave
  if the tables it involves should be excluded because of replicate-*-table
  rules.
sql/log_event.cc:
  If the query got a really bad error on the master (thread killed etc),
  parse it to test the table names: if the replicate-*-do|ignore-table
  rules say "this query must be ignored" then we exit gracefully;
  otherwise we warn about the bad error and tell DBA to check/fix it.
  Before this change, we always warned and stopped.
sql/mysql_priv.h:
  new function
sql/slave.cc:
  don't print error immediately as we need to do one more test to
  be sure.
sql/sql_parse.cc:
  we add a function mysql_test_parse_for_slave(), to be used only
  by the slave if it wants to know if the query should be ignored or not;
  so this function only parses the query, does not execute it.
2004-03-11 17:38:19 +01:00
cf58302d8b fixed bug #2591 "mysqldump quotas names inconsistently"
mysql-test/r/mysqldump.result:
  added test for bug #2591 "mysqldump quotas names inconsistently"
mysql-test/t/mysqldump.test:
  added test for bug #2591 "mysqldump quotas names inconsistently"
2004-03-11 18:46:27 +04:00
1999806733 a fix (bug #2885: like datetime) 2004-03-11 18:21:57 +04:00
8dcefa6f47 Merge vvagin@bk-internal.mysql.com:/home/bk/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_2874/mysql-4.0


mysql-test/install_test_db.sh:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
2004-03-10 23:36:22 +04:00
12f5e3ebac Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.0
into eagle.mysql.r18.ru:/home/vva/work/BUG_2874/mysql-4.0


mysql-test/mysql-test-run.sh:
  Auto merged
2004-03-10 23:35:40 +04:00
2053f8f850 fixed BUG #2874 "Grant table bug" and
added tests for testing structure of mysql db


client/mysqltest.c:
  extend "replace" to column names
  extend "disable_result_log" to output of --exec commad
mysql-test/install_test_db.sh:
  corrected wrong column definitions (as a result of tests)
mysql-test/mysql-test-run.sh:
  export MYSQL and MYSQL_FIX_SYSTEM_TABLES + 
  added option --result-file for *.opt files
scripts/mysql_fix_privilege_tables.sh:
  added new options to using in tests + 
  added new alters (as a result of new tests)
scripts/mysql_fix_privilege_tables.sql:
  added new alters (as a result of new tests)
scripts/mysql_install_db.sh:
  corrected definition of tables_priv.Table_name
2004-03-10 22:54:07 +04:00
221397cdbe Fixed memory leak in DROP DATABASE when using RAID tables (Bug #2882)
BUILD/compile-pentium-debug-max:
  Added --with-raid
configure.in:
  Removed -DFN_NO_CASE_SENCE for Mac OS X as this is not always true
mysql-test/install_test_db.sh:
  Added --skip-warnings
mysql-test/mysql-test-run.sh:
  Fixes to get --gdb and --ddd to work
mysql-test/r/lowercase_table2.result:
  Test for lower_case_table_names=2 and temporary tables
mysql-test/r/lowercase_table3.result:
  Fixed error message
mysql-test/r/multi_update.result:
  Test of behaviour of multi-table-delete and alias
mysql-test/t/lowercase_table2.test:
  Test for lower_case_table_names=2 and temporary tables
mysql-test/t/lowercase_table3.test:
  Fixed error
mysql-test/t/multi_update.test:
  Test of behaviour of multi-table-delete and alias (Bug #2940)
mysys/mf_iocache.c:
  Renamed _flush_io_cache to my_b_flush_io_cache
sql/ha_myisam.cc:
  Added comment
sql/lock.cc:
  Extra debugging
sql/log.cc:
  New parameter to flush_relay_log_info
sql/log_event.cc:
  New parameter to flush_relay_log_info
sql/mf_iocache.cc:
  Removed not used header files
sql/mysqld.cc:
  More debugging info
  Less warnings when run with --skip-warnings
sql/opt_range.cc:
  More debug information
sql/repl_failsafe.cc:
  New parameter to flush_relay_log_info
sql/slave.cc:
  First start SQL thread, then start IO thread. This fixed a raze condition in SLAVE START (Bug #2921)
  Ensure that we have a lock on the IO thread before flushing a relay log file that. The original code could core dump when a relay log rotated.
sql/slave.h:
  New parameter to flush_relay_log_info
sql/sql_base.cc:
  Added warning
sql/sql_handler.cc:
  Indentation fix
sql/sql_repl.cc:
  New parameter to flush_relay_log_info
sql/sql_select.cc:
  Fixed problem with deleting temporary tables when using lower_case_table_names=2. (Bug #2858)
sql/sql_table.cc:
  Fixed comment
sql/sql_yacc.yy:
  Removed compiler warning
include/my_sys.h:
  Fixed usage of unpack_filename
mysys/mf_pack.c:
  Changed unpack_filename() to return length of result string.
mysys/test_fn.c:
  Fixed usage of unpack_filename
sql/sql_db.cc:
  Fixed memory leak with raid tables
sql/table.cc:
  Fixed usage of unpack_filename
2004-03-10 13:46:11 +02:00
fc654d9ae1 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into gw.mysql.r18.ru:/usr/home/ram/work/4.1.b3036
2004-03-10 13:36:20 +04:00
53b3ebdfe0 Fixed Bug#3115. CAST AS DATE with malformed string returns NULL but IS NULL
is false.


BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-03-09 22:03:01 +02:00
a977474a6a Fix for the bug #3089: SUBSTRING bug when mixed with CONCAT and ORDER BY 2004-03-09 16:52:37 +04:00
b790f31fce merge
mysql-test/r/subselect.result:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
2004-03-09 12:52:25 +02:00
57c1a8eb38 Make SHOW VARIABLES output really alphabetic.
Note: the patch removes an extra declaration of
the read_only variable. It also assumes that '_'
sorts before [a-z].


mysql-test/r/fulltext_var.result:
  Fix test result to account for SHOW VARIABLES
  output reordering.
sql/set_var.cc:
  Make SHOW VARIABLES output really alphabetic.
2004-03-07 20:19:37 -06:00
dd41637379 SESSION instead of LOCAL in error messages. 2004-03-07 08:32:00 -06:00
8e7a2ec9e0 Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.1
into eagle.mysql.r18.ru:/home/vva/work/BUG_2593/mysql-4.1


mysql-test/r/show_check.result:
  Auto merged
mysql-test/t/show_check.test:
  Auto merged
2004-03-06 18:27:11 +04:00
5bc89a9644 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0


sql/mysql_priv.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_insert.cc:
  Auto merged
2004-03-06 10:43:53 +02:00
aa20bd9e8c Ensure that one can't from the command line set a variable too small. (Bug #2710)
Allow one to force lower_case_table_names to 0, even if the file system is case insensitive. This fixes some issues on Mac OS X (Bug #2994)
Added variables "lower_case_file_system", "version_compile_os" and "license"


mysql-test/t/lowercase_table3-master.opt:
  Rename: mysql-test/t/lowercase_table2-master.opt -> mysql-test/t/lowercase_table3-master.opt
mysys/my_getopt.c:
  Ensure that one can't from the command line set a variable too small (could happen when sub_size was set)
sql/mysql_priv.h:
  Added lower_case_file_system
sql/mysqld.cc:
  Allow one to force lower_case_table_names to 0, even if the file system is case insensitive
sql/set_var.cc:
  Added variable "lower_case_file_system"
  Added variable "version_compile_os"
  Added variable "license"
sql/set_var.h:
  Added support for read only strings
sql/sql_select.cc:
  Make join optimizer killable
2004-03-06 10:43:35 +02:00
1c15d4dfdc Merge vvagin@bk-internal.mysql.com:/home/bk/mysql-4.1
into eagle.mysql.r18.ru:/home/vva/work/BUG_2082/mysql-4.1
2004-03-06 03:02:12 +04:00
f9a59e45ad Merge eagle.mysql.r18.ru:/home/vva/work/mysql.orig/clear/mysql-4.1
into eagle.mysql.r18.ru:/home/vva/work/BUG_2082/mysql-4.1


sql/field.cc:
  Auto merged
2004-03-06 03:01:09 +04:00
17c4d7f361 - added commands --query_vertical and --query_horisontal to client/mysqltest.cc
- get my_strtod to return inf
- get Field_float::store(double) and Field_double::store(float) to set null for 
nan value 
(as extra serg's recomendations to fix for patch on 
 Bug #2082 'mysqldump converts "inf" to null')


client/mysqltest.c:
  added commands --query_vertical and --query_horisontal
mysql-test/r/insert.result:
  converted testcase so as my_strtod can return inf now
mysql-test/r/mysqldump.result:
  converted testcase so as my_strtod can return inf now
mysql-test/t/insert.test:
  corrected tests to using --query_vertical instead of 
  pair (vertical_results,horisontal_results)
sql/field.cc:
  corrected Field_float::store(double) and Field_double::store(double)
  to set null for nan value
strings/strtod.c:
  get my_strtod to return inf
2004-03-06 03:00:21 +04:00
8550c7abeb fixed Bug #2985
"Table truncated when creating another table name with Spaces"
added to check_db_name, check_table_name and check_column_name
test for end space


mysql-test/r/create.result:
  added test for Bug #2985 
   "Table truncated when creating another table name with Spaces"
mysql-test/t/create.test:
  added test for Bug #2985 
   "Table truncated when creating another table name with Spaces"
sql/sql_db.cc:
  cancel strip end spaces for database name
sql/sql_parse.cc:
  cancel strip end spaces for database name
sql/table.cc:
  added to check_db_name, check_table_name and check_column_name 
  test for end space
2004-03-05 22:13:33 +04:00
755f693965 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/my/mysql-4.1
2004-03-05 19:50:12 +02:00
28f0e32879 Portability fixes
mysql-test/r/show_check.result:
  Updated results
mysql-test/t/show_check.test:
  Portability fix (for 64 bit platforms)
mysys/hash.c:
  Portablity fix
sql/gen_lex_hash.cc:
  Don't include mysql_priv.h;  Causes build errors on a lot of platforms
sql/lex_symbol.h:
  Moved symbols here from mysql_priv.h to avoid including mysql_priv.h in gen_lex_hash.cc
sql/mysql_priv.h:
  Move symbols and struct to lex_symbol.h
sql/sql_db.cc:
  Don't use sql_alloc/sql_free methods in sql_string.h
sql/sql_help.cc:
  Don't use sql_alloc/sql_free methods in sql_string.h
sql/sql_string.h:
  Don't use sql_alloc/sql_free methods in sql_string.h
  This makes the code faster and more portable
sql/sql_yacc.yy:
  Don't use sql_alloc/sql_free methods in sql_string.h
2004-03-05 19:49:50 +02:00
7b626ab7ca commented testcases in show_check.test with quotation marks in table name
to avoid troubles with OS which don't support these symbols in file name
used create table 'a/b' as hook for WL#1324 which should fix this problem


mysql-test/r/show_check.result:
  commented testcases with quotation marks in table name
  to avoid troubles with OS which don't support these symbols in file name
  used create table 'a/b' as hook for WL#1324 which should fix this problem
mysql-test/t/show_check.test:
  commented testcases with quotation marks in table name
  to avoid troubles with OS which don't support these symbols in file name
  used create table 'a/b' as hook for WL#1324 which should fix this problem
2004-03-05 17:57:36 +04:00
cd7275396c Merge bk-internal:/home/bk/mysql-4.1/
into serg.mylan:/usr/home/serg/Abk/mysql-4.1


sql/item_create.cc:
  Auto merged
2004-03-05 00:20:24 +01:00
1530dd73a0 UNHEX() function 2004-03-04 23:18:54 +01:00
bc9de3d455 fixed Bug #3051 "FLOOR returns invalid"
mysql-test/r/func_math.result:
  added test for Bug #3051 "FLOOR returns invalid"
mysql-test/t/func_math.test:
  added test for Bug #3051 "FLOOR returns invalid"
2004-03-04 22:11:33 +04:00
c8bfc2324b Fixed bug #2082 'mysqldump converts "inf" to NULL' and
added commands vertical_results and horisontal_results to client/mysqltest.c


client/mysqltest.c:
  added commands vertical_results and horisontal_results
mysql-test/r/insert.result:
  added test for bug #2082 'mysqldump converts "inf" to NULL'
mysql-test/t/insert.test:
  Fixed bug #2082 'mysqldump converts "inf" to NULL'
sql/field.cc:
  added test for Fixed bug #2082 'mysqldump converts "inf" to NULL'
2004-03-04 21:08:14 +04:00
d4f43e511c invalidation of locking for write tables (BUG#2693)
fixed linking query_prealloc_size to query cache presence


mysql-test/r/query_cache.result:
  test of QC invalidation by LOCK command
mysql-test/t/query_cache.test:
  test of QC invalidation by LOCK command
sql/mysqld.cc:
  new variable query_cache_wlock_invalidate
  fixed query_prealloc_size with QC absence
sql/set_var.cc:
  new variable query_cache_wlock_invalidate
sql/sql_cache.cc:
  new method for table invalidation
sql/sql_cache.h:
  new method for table invalidation
sql/sql_class.h:
  new variable query_cache_wlock_invalidate
sql/sql_parse.cc:
  layout fixed
2004-03-04 18:32:55 +02:00
0b751edc57 Rollback UPDATE/DELETE statements on kill
nsure that rows in a multi-row INSERT DELAYED are inserted atomicly


mysql-test/mysql-test-run.sh:
  Make test case safe for openserver/unixware (Bug #2700)
sql/sql_delete.cc:
  Rollback statement on kill
sql/sql_insert.cc:
  Ensure that rows in a multi-row INSERT DELAYED are inserted atomicly (without releasing logs).
  This is needed to ensure that the mysqlbinlog is consistent.
  Bug #2491
sql/sql_list.h:
  Ensure that rows in a multi-row INSERT DELAYED is inserted atomicly (without releasing logs).
  This is needed to ensure that the mysqlbinlog is consistent.
  Bug #2491
sql/sql_update.cc:
  Rollback statement on kill
2004-03-04 18:16:10 +02:00
930399d773 Merging
sql/item_subselect.cc:
  Auto merged
sql/item_subselect.h:
  Auto merged
mysql-test/r/subselect.result:
  merging
mysql-test/t/subselect.test:
  merging
2004-03-04 17:52:06 +04:00
53368efea3 Merge bk-internal:/home/bk/mysql-4.0/
into serg.mylan:/usr/home/serg/Abk/mysql-4.0
2004-03-04 14:48:28 +01:00
4924f276db drop tables in windows-compatible order 2004-03-04 14:47:33 +01:00
96a1f9d72e Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mashka.mysql.fi:/home/my/mysql-4.1


sql/item_create.cc:
  Auto merged
2004-03-04 10:07:32 +02:00
afa6728a9f Optimized GIS functions
heap/hp_delete.c:
  Added comments
mysql-test/r/gis.result:
  Updated results after name changes (all results line are unchanged)
mysql-test/r/show_check.result:
  Update test results after fix in hp_delete.cc
mysql-test/t/gis.test:
  Changed table names to longer, hopefully non conflicting ones.
  Added missing drop table
mysys/hash.c:
  Inendation cleanup
mysys/tree.c:
  Updated comments
  Decrease tree->allocated on delete (for status)
sql/field.cc:
  Added safety checking for GIS objects
sql/gstream.cc:
  Added copyright message
  Made a lot of speed/space optimizations
  Changed class names to be MySQL compliant
sql/gstream.h:
  Made a lot of speed/space optimizations
  Changed class names to be MySQL compliant
sql/item_create.cc:
  Indentation fixup
sql/item_geofunc.cc:
  Use new gis interface functions and new gis class names.
  Simple optimizations
  Indentation fixups
  Fixed a lot of unlikely but possible errors.
sql/item_geofunc.h:
  Moved SRID_SIZE to spatial.h
sql/spatial.cc:
  Added copyright message
  Made a lot of speed/space optimizations
  Changed class names to be MySQL compliant
sql/spatial.h:
  Made a lot of speed/space optimizations
  Changed class names to be MySQL compliant
  Indentation fixes
  Use bool instead of int as result type for functions that only return 0 or 1
sql/sql_string.cc:
  Simple optimizations
sql/sql_string.h:
  Simple cleanups
sql/structs.h:
  Added LEX_STRING_WITH_INIT (needed by spatial.cc)
2004-03-04 08:50:37 +02:00
edf6ad9041 Bug #2959 UTF8 charset breaks joins with mixed column/string constant 2004-03-03 11:22:25 +04:00
722e0ec378 fix for a bug #2953.
When password was granted with a global grant, then granting 
privileges on database level, without password being specified, 
will temporary (in memory) set password to ''.
2004-03-01 21:54:08 +02:00
bf53c87049 Fix for BUG#3017
"wrong Relay_Log_Pos if Rotate is in the middle of a transaction in relay log"
increment 'pending' instead of 'relay_log_pos'.


mysql-test/r/rpl_trunc_binlog.result:
  result update
sql/log_event.cc:
  - corrected error message
  - in Rotate_log_event::exec_event(), if we're in a transaction (which
  can happen if the I/O slave thread reconnected while reading a
  transaction), don't increment relay_log_pos but pending instead.
  Otherwise, relay_log_pos becomes garbage (and so if slave stops at that
  moment, it will never restart).
2004-03-01 00:46:31 +01:00
56f8312782 bug#3011 - multi-byte charset in fulltext
myisam/ft_nlq_search.c:
  bug#3011 - multi-byte charset in fulltext
  cleanup
2004-02-29 22:58:45 +01:00
45f39ff1de small after-merge fixes (error messages).
include/mysqld_error.h:
  more generic error code
mysql-test/r/func_compress.result:
  update after message change
mysql-test/r/loaddata.result:
  update after message change
mysql-test/r/warnings.result:
  update after message change
sql/share/czech/errmsg.txt:
  message change
sql/share/danish/errmsg.txt:
  message change
sql/share/dutch/errmsg.txt:
  message change
sql/share/english/errmsg.txt:
  message change
sql/share/estonian/errmsg.txt:
  message change
sql/share/french/errmsg.txt:
  message change
sql/share/german/errmsg.txt:
  message change
sql/share/greek/errmsg.txt:
  message change
sql/share/hungarian/errmsg.txt:
  message change
sql/share/italian/errmsg.txt:
  message change
sql/share/japanese/errmsg.txt:
  message change
sql/share/korean/errmsg.txt:
  message change
sql/share/norwegian-ny/errmsg.txt:
  message change
sql/share/norwegian/errmsg.txt:
  message change
sql/share/polish/errmsg.txt:
  message change
sql/share/portuguese/errmsg.txt:
  message change
sql/share/romanian/errmsg.txt:
  message change
sql/share/russian/errmsg.txt:
  message change
sql/share/slovak/errmsg.txt:
  message change
sql/share/spanish/errmsg.txt:
  message change
sql/share/swedish/errmsg.txt:
  message change
sql/share/ukrainian/errmsg.txt:
  message change
2004-02-28 23:36:41 +01:00
31531bfae5 make func_misc portable
on different systems sprintf("%.3", 1.555499999999999) behaves differently
2004-02-28 11:24:49 +01:00