1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-19 22:42:44 +03:00
Commit Graph

26282 Commits

Author SHA1 Message Date
Vadim Tkachenko
f657606df9 sync with rev73 extensions 2009-06-24 18:43:25 -07:00
Sergey Petrunia
e1250b8656 MWL#17: Table elimination
- fix a typo bug in has_eqref_access_candidate()
- Adjust test to remove race condition

mysql-test/r/mysql-bug41486.result:
  Adjust test to remove race condition
mysql-test/t/mysql-bug41486.test:
  Adjust test to remove race condition
sql/item.cc:
  MWL#17: Table elimination:
    fix a typo bug in has_eqref_access_candidate()
2009-06-25 02:44:14 +04:00
unknown
c40d85c634 Fix of BUG#45632 (http://bugs.mysql.com/bug.php?id=45632) - sharing non default debug settings between sessions. This bugfix proposed by Monty.
mysql-test/r/variables_debug.result:
  Test that sessions do not share the same session debug variable.
mysql-test/t/variables_debug.test:
  Test that sessions do not share the same session debug variable.
sql/set_var.cc:
  As soon as default setting are shared between sessions we should push dbug state before changing debug setting first time.
2009-06-25 01:22:20 +03:00
Sergey Vojtovich
b4ac7f8c15 This patch implements testing InnoDB plugin milestone.
mysql-test/lib/mtr_cases.pm:
  Expand test cases list with test cases to test
  InnoDB plugin.
mysql-test/mysql-test-run.pl:
  Added "innodb" suite to default list of suites.
mysql-test/suite/innodb/include/have_innodb_plugin.inc:
  This file determines if innodb plugin is available.
mysql-test/suite/innodb/my.cnf:
  Removed temporary my.cnf, which was added for testing. Not
  needed anymore - options are substituted by mtr.
mysql-test/suite/innodb/t/innodb-analyze.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb-timeout.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb-use-sys-malloc-master.opt:
  Use "loose" prefix with mysqld options. This makes this
  test skipped properly when no innodb is available.
mysql-test/suite/innodb/t/innodb-use-sys-malloc.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb-zip.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb_bug36169.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb_bug36172.test:
  This test can only be run with InnoDB plugin.
mysql-test/suite/innodb/t/innodb_information_schema.test:
  This test can only be run with InnoDB plugin.
2009-06-24 22:18:58 +05:00
Sergey Petrunia
c4922cbf10 MWL#17: Table elimination
- More testcases
- Let add_ft_key() set keyuse->usable

mysql-test/r/table_elim.result:
  MWL#17: Table elimination
  - More testcases
mysql-test/t/table_elim.test:
  MWL#17: Table elimination
  - More testcases
sql/sql_select.cc:
  MWL#17: Table elimination
  - Let add_ft_key() set keyuse->usable
2009-06-24 00:06:13 +04:00
Bernt M. Johnsen
2a5907a8fd Bug#45293 Supressed some warnings 2009-06-23 14:32:14 +02:00
unknown
e84748406c Fix memory leak in mysql_ssl_set() when called more than once.
Fix sleep() synchronisation in innodb_information_schema test case.

mysql-test/t/innodb_information_schema.test:
  Using sleep for synchronisation does not work!!!
  Replace by looping until the required condition is met.
sql-common/client.c:
  mysql_ssl_set() did not free old pointers before overwriting with new ones (happens when
  mysql_ssl_set() is called twice without calling mysql_close() in-between).
  
  This sometimes caused memory leaks in the slave depending on exact timing of
  master/slave shutdown.
  
  Fixed by freeing old pointers before installing new ones in mysql_ssl_set(), just like
  mysql_options() does.
2009-06-23 14:00:24 +02:00
Bjorn Munch
47fa03abe7 Bug #45532 MTR displays wrong option name 'print_testcases' in usage text
Fix the name....
2009-06-22 16:29:02 +02:00
Bjorn Munch
a9b438b222 Bug #43780 mysql-test-run uses deprecated server options
Updated to use general_log[_file] and slow_query_log[_file]
2009-06-22 16:27:05 +02:00
Martin Hansson
f3bdd56fe6 Merge 2009-06-22 16:01:42 +02:00
Martin Hansson
543885d1b1 Bug#44653: Server crash noticed when executing random queries with partitions.
When opening a table, it is imperative that the flag
TABLE::auto_increment_field_not_null be false. But if an error occured during
the creation of a table (e.g. the table exists already) with an auto_increment
column and a BEFORE trigger that used the INSERT ... SELECT construct, the
flag was not reset until after error checking. Thus if an error occured,
select_insert::send_data() returned immediately and it was not reset (see * in
pseudocode below).  Crash happened if the table was opened again. Fixed by
resetting the flag after error checking.

nested-loops_join():
  for each row in SELECT table {
    select_insert::send_data():
      if a values is supplied for AUTO_INCREMENT column
         table->auto_increment_field_not_null= TRUE
       else
         table->auto_increment_field_not_null= FALSE
       if (error)
         return 1; *
       if (table->auto_increment_field_not_null == FALSE)
         ...
       table->auto_increment_field_not_null == FALSE 
  }
<-- table returned to table cache and later retrieved by open_table: 
open_table():
  assert(table->auto_increment_field_not_null)


mysql-test/r/trigger.result:
  Bug#44653: Test result
mysql-test/t/trigger.test:
  Bug#44653: Test case
sql/sql_insert.cc:
  Bug#44653: Fix: Make sure to unset this field before returning in case of error
2009-06-22 14:51:33 +02:00
Satya B
7d0675f613 Applying InnoDB snashot 5.1-ss5343, Fixes BUG#45357
1. BUG#45357 - 5.1.35 crashes with Failing assertion: index->type & DICT_CLUSTERED

2. Also fixes the compilation problem when the flag -DUNIV_MUST_NOT_INLINE

Detailed revision comments:

r5340 | marko | 2009-06-17 12:11:49 +0300 (Wed, 17 Jun 2009) | 4 lines
branches/5.1: row_unlock_for_mysql(): When the clustered index is unknown,
refuse to unlock the record.
(Bug #45357, caused by the fix of Bug #39320).
rb://132 approved by Sunny Bains.
r5339 | marko | 2009-06-17 11:01:37 +0300 (Wed, 17 Jun 2009) | 2 lines
branches/5.1: Add missing #include "mtr0log.h" so that the code compiles
with -DUNIV_MUST_NOT_INLINE.
2009-06-22 16:58:00 +05:30
unknown
7c5e321bb8 More XtraDB after-merge fixes following review and buildbot runs:
- Better fix for --innodb-use-sys-malloc causing Valgrind warnings.
 - Different fix for INNODB_IBUF_MAX_SIZE variable changing default value.
 - Fix some problems with the safe mutex lazy init patch.

mysql-test/include/mtr_check.sql:
  Do not check INNODB_IBUF_MAX_SIZE for changes. It is not a dynamic variable, so cannot
  be changed by a test case anyway, and the value may vary slightly from one start of the
  server to the next.
mysql-test/lib/mtr_cases.pm:
  Even just starting and stopping the server with --innodb-use-sys-malloc to check for
  disabled test case under valgrind will cause valgrind leak warnings. So add not_valgrind
  to the list of conditions also tested for directly in mysql-test-run.pl.
mysql-test/mysql-test-run.pl:
  Even just starting and stopping the server with --innodb-use-sys-malloc to check for
  disabled test case under valgrind will cause valgrind leak warnings. So add not_valgrind
  to the list of conditions also tested for directly in mysql-test-run.pl.
mysys/thr_mutex.c:
  Fix a few problems found during review of the lazy init safe mutex patch.
storage/xtradb/ibuf/ibuf0ibuf.c:
  Revert previous fix of INNODB_IBUF_MAX_SIZE default varying slightly between server starts.
  (Fixed instead by ignoring that variable in the test suite).
2009-06-22 10:06:35 +02:00
Matthias Leich
86cb0d8ce4 Merge 5.0 -> 5.1 of fixes for various funcs_1 related bugs 2009-06-19 17:44:29 +02:00
Matthias Leich
a4f0b44232 Merge of fix for bug 40545, 40209, 40618, 38346 into tree 2009-06-19 17:21:20 +02:00
Matthias Leich
59730d8fce Fix for Bug#40545, Bug#40209, Bug#40618, Bug#38346
Details:
  - Limit the queries to character sets and collations
    which are most probably available in all build types.
    But try to preserve the intention of the tests.
  - Remove the variants adjusted to some build types.

  Note:
  1. The results of the review by Bar are included.
  2. I am not able to check the correctness of this patch
     on any existing build type and any MySQL version.
     So it could happen that the new test fails somewhere.
2009-06-19 17:04:25 +02:00
Alfranio Correia
18bd3cd5f3 Post-fix for BUG#43929. 2009-06-19 12:27:24 +01:00
Staale Smedseng
37d2019d17 Bug #32223 SETting max_allowed_packet variable
Inconsistent behavior of session variable max_allowed_packet 
(and net_buffer_length); only assignment to the global variable 
has any effect, without this being obvious to the user.
      
The patch for Bug#22891 is backported to 5.0, making the two
session variables read-only. As this is a backport to GA 
software, the error used when trying to assign to the read-
only variable is ER_UNKNOWN_ERROR. The error message is the 
same as in 5.1+.

mysql-test/t/variables.test:
  Tests are changed to account for the new semantics, and assignment to the read-only variables is added to test 
  the emission of the correct error message.
sql/set_var.cc:
  Both max_allowed_packet and net_buffer_length are changed 
  to be of type sys_var_thd_ulong_session_readonly. ER_UNKNOWN_ERROR is used to indicate an attempt to assign 
  to an instance of a read-only variable.
sql/set_var.h:
  Class sys_var_thd_ulong_session_readonly is added.
2009-06-19 11:27:19 +02:00
Alfranio Correia
f45b12dc5e auto-merge mysql-5.1-bugteam (local) --> mysql-5.1-bugteam 2009-06-18 15:16:14 +01:00
Alfranio Correia
3cf052b76c BUG#43929 binlog corruption when max_binlog_cache_size is exceeded
Large transactions and statements may corrupt the binary log if the size of the
cache, which is set by the max_binlog_cache_size, is not enough to store the
the changes.

In a nutshell, to fix the bug, we save the position of the next character in the
cache before starting processing a statement. If there is a problem, we simply
restore the position thus removing any effect of the statement from the cache.
Unfortunately, to avoid corrupting the binary log, we may end up loosing changes
on non-transactional tables if they do not fit in the cache. In such cases, we
store an Incident_log_event in order to stop the slave and alert users that some
changes were not logged.

Precisely, for every non-transactional changes that do not fit into the cache,
we do the following:
  a) the statement is *not* logged
  b) an incident event is logged after committing/rolling back the transaction,
  if any. Note that if a failure happens before writing the incident event to
  the binary log, the slave will not stop and the master will not have reported
  any error.
  c) its respective statement gives an error

For transactional changes that do not fit into the cache, we do the following:
  a) the statement is *not* logged
  b) its respective statement gives an error

To work properly, this patch requires two additional things. Firstly, callers to
MYSQL_BIN_LOG::write and THD::binlog_query must handle any error returned and
take the appropriate actions such as undoing the effects of a statement. We
already changed some calls in the sql_insert.cc, sql_update.cc and sql_insert.cc
modules but the remaining calls spread all over the code should be handled in
BUG#37148. Secondly, statements must be either classified as DDL or DML because
DDLs that do not get into the cache must generate an incident event since they
cannot be rolled back.
2009-06-18 14:52:46 +01:00
unknown
2a663359a4 Fix test cases after merge of XtraDB into MariaDB.
Manually merge some InnoDB changes into XtraDB.
Fix ALTER TABLE bug in XtraDB with wrong comparison of row type.

mysql-test/include/varchar.inc:
  Fix in test case that which of several duplicate keys triggers an error is not
  deterministic.
mysql-test/mysql-test-run.pl:
  InnoDB does not bother to free resources individually during shutdown, but due to using
  its own memory tracking it nevertheless can free everything at exit. But XtraDB adds an
  option, on by default, to skip this extra tracking. This causes lots of Valgrind
  warnings, so needs to be disabled for Valgrind testing.
mysql-test/r/innodb.result:
  Fix in test case that which of several duplicate keys triggers an error is not
  deterministic.
mysql-test/t/innodb-use-sys-malloc.test:
  InnoDB does not bother to free resources individually during shutdown, but due to using
  its own memory tracking it nevertheless can free everything at exit. But XtraDB adds an
  option, on by default, to skip this extra tracking. This causes lots of Valgrind
  warnings, so needs to be disabled for Valgrind testing.
sql/sql_table.cc:
  Add some useful DBUG while debugging alter table.
storage/xtradb/handler/ha_innodb.cc:
  Fix that check_if_incompatible_data did not realise that ROW_TYPE_DEFAULT is identical
  to the default row format ROW_TYPE_COMPACT, causing excessive table copying in
  ALTER TABLE
  Add some useful DBUG while debugging alter table.
  Manually merge into XtraDB a few small changes for InnoDB from upstream MySQL.
storage/xtradb/include/pars0pars.h:
  Manually merge into XtraDB a few small changes for InnoDB from upstream MySQL.
storage/xtradb/include/univ.i:
  Manually merge a MariaDB fix in InnoDB into XtraDB.
2009-06-18 14:39:21 +02:00
Martin Hansson
37b2b7fadb Merge 2009-06-18 09:25:46 +02:00
Alexey Kopytov
56dd4d44b1 Automerge. 2009-06-17 20:12:50 +04:00
Alexey Kopytov
5814263583 Disabled embedded server for the test case for bug #45236. 2009-06-17 20:10:48 +04:00
Martin Hansson
4f59ca45a0 Merge 2009-06-17 17:34:53 +02:00
Kristofer Pettersson
b1967ef40e Automerge 2009-06-17 17:07:20 +02:00
Martin Hansson
0d460bcd65 Bug#44684: valgrind reports invalid reads in
Item_func_spatial_collection::val_str
        
When the concatenation function for geometry data collections
reads the binary data it was not rigorous in checking that there
is data available, leading to invalid reads and crashes.
Fixed by making checking stricter.


mysql-test/r/gis.result:
  Bug#44684: Test result
mysql-test/t/gis.test:
  Bug#44684: Test case
sql/item_geofunc.cc:
  Bug#44684: fix(es)
  - Check that there are 4 bytes available for type code.
  - Check that there is at least one point available for linestring.
  - Check that there are at least 2 points in a polygon and
    data for all the points.
2009-06-17 16:58:33 +02:00
Vladislav Vaintroub
87da3df623 merge 2009-06-17 16:32:16 +02:00
Kristofer Pettersson
389fba8403 Bug#43758 Query cache can lock up threads in 'freeing items' state
This patch corrects a misstake in the test case for bug patch 43658.

There was a race in the test case when the thread id was retrieved from the processlist.
The result was that the same thread id was signalled twice and one thread id wasn't
signalled at all.

The affected platforms appears to be limited to linux.

mysql-test/r/query_cache_debug.result:
  There was a race in the test case when the thread id was retrieved from the processlist.
  The result was that the same thread id was signalled twice and one thread id wasn't
  signalled at all.
mysql-test/t/query_cache_debug.test:
  There was a race in the test case when the thread id was retrieved from the processlist.
  The result was that the same thread id was signalled twice and one thread id wasn't
  signalled at all.
2009-06-17 16:28:11 +02:00
Alexey Kopytov
de4d3f2b39 Automerge. 2009-06-17 16:37:10 +04:00
Alexey Kopytov
689901f36f Automerge. 2009-06-17 16:36:45 +04:00
Alexey Kopytov
736fa25e58 Automerge. 2009-06-17 15:50:50 +04:00
marko
a8ab27842a branches/zip: Merge revisions 5233:5341 from branches/5.1:
------------------------------------------------------------------------
  r5233 | marko | 2009-06-03 15:12:44 +0300 (Wed, 03 Jun 2009) | 11 lines

  branches/5.1: Merge the test case from r5232 from branches/5.0:
    ------------------------------------------------------------------------
    r5232 | marko | 2009-06-03 14:31:04 +0300 (Wed, 03 Jun 2009) | 21 lines

    branches/5.0: Merge r3590 from branches/5.1 in order to fix Bug #40565
    (Update Query Results in "1 Row Affected" But Should Be "Zero Rows").

    Also, add a test case for Bug #40565.

    rb://128 approved by Heikki Tuuri
    ------------------------------------------------------------------------
  ------------------------------------------------------------------------
  r5243 | sunny | 2009-06-04 03:17:14 +0300 (Thu, 04 Jun 2009) | 14 lines

  branches/5.1: When the InnoDB and MySQL data dictionaries go out of sync, before
  the bug fix we would assert on missing autoinc columns. With this fix we allow
  MySQL to open the table but set the next autoinc value for the column to the
  MAX value. This effectively disables the next value generation. INSERTs will
  fail with a generic AUTOINC failure. However, the user should be able to
  read/dump the table, set the column values explicitly, use ALTER TABLE to
  set the next autoinc value and/or sync the two data dictionaries to resume
  normal operations.

  Fix Bug#44030 Error: (1500) Couldn't read the MAX(ID) autoinc value from the
  index (PRIMARY)

  rb://118
  ------------------------------------------------------------------------
  r5252 | sunny | 2009-06-04 10:16:24 +0300 (Thu, 04 Jun 2009) | 2 lines

  branches/5.1: The version of the result file checked in was broken in r5243.
  ------------------------------------------------------------------------
  r5259 | vasil | 2009-06-05 10:29:16 +0300 (Fri, 05 Jun 2009) | 7 lines

  branches/5.1:

  Remove the word "Error" from the printout because the mysqltest suite
  interprets it as an error and thus the innodb-autoinc test fails.

  Approved by:	Sunny (via IM)
  ------------------------------------------------------------------------
  r5339 | marko | 2009-06-17 11:01:37 +0300 (Wed, 17 Jun 2009) | 2 lines

  branches/5.1: Add missing #include "mtr0log.h" so that the code compiles
  with -DUNIV_MUST_NOT_INLINE.

  (null merge; this had already been committed in branches/zip)
  ------------------------------------------------------------------------
  r5340 | marko | 2009-06-17 12:11:49 +0300 (Wed, 17 Jun 2009) | 4 lines

  branches/5.1: row_unlock_for_mysql(): When the clustered index is unknown,
  refuse to unlock the record.
  (Bug #45357, caused by the fix of Bug #39320).
  rb://132 approved by Sunny Bains.
  ------------------------------------------------------------------------
2009-06-17 09:15:32 +00:00
marko
644d877c85 branches/5.1: row_unlock_for_mysql(): When the clustered index is unknown,
refuse to unlock the record.
(Bug #45357, caused by the fix of Bug #39320).
rb://132 approved by Sunny Bains.
2009-06-17 08:11:49 +00:00
Sergey Petrunia
7a9f45c6d5 * Use excessive parentheses to stop compiler warning
* Fix test results to account for changes in previous cset
2009-06-17 09:27:39 +04:00
Sergey Petrunia
c0103f705c * Merge
* Change valgrind suppression to work on valgrind 3.3.0
2009-06-17 00:43:58 +04:00
Martin Hansson
aa8677bc32 Bug#45168: assertion with convert() and empty set value
The assertion in String::copy was added in order to avoid
valgrind errors when the destination was the same as the source.
Eased restriction to allow for the case when str == NULL.


mysql-test/r/func_set.result:
  Bug#45168: Test result
mysql-test/t/func_set.test:
  Bug#45168: Test case
sql/item_strfunc.cc:
  Bug#45168: Code cleanup and grammar correction in comment
sql/sql_string.cc:
  Bug#45168: Fix
2009-06-16 16:36:15 +02:00
Bjorn Munch
54dcbf2cbe Bug #45298 plugin.test is skipped in PB2 on UNIX platforms
Added search for example plugin in lib/mysql/plugin
2009-06-16 15:26:17 +02:00
marko
8000a28c2d branches/zip: innodb.test: Adjust the tolerance of
innodb_buffer_pool_pages_total for r5320.
2009-06-16 12:23:10 +00:00
Georgi Kodinov
48d911e708 Addendum to the fix for bug #44821: move partition dependent test
to a test file that guarantees the presence of partition code
2009-06-16 12:59:57 +03:00
Kristofer Pettersson
86c0346212 Automerge 2009-06-16 10:49:04 +02:00
Kristofer Pettersson
b9e1ee63bb Automerge 2009-06-16 10:42:54 +02:00
Kristofer Pettersson
02e5ad9881 Bug#43758 Query cache can lock up threads in 'freeing items' state
Early patch submitted for discussion.

It is possible for more than one thread to enter the condition
in query_cache_insert(), but the condition predicate is to
signal one thread each time the cache status changes between
the following states: {NO_FLUSH_IN_PROGRESS,FLUSH_IN_PROGRESS,
TABLE_FLUSH_IN_PROGRESS}

Consider three threads THD1, THD2, THD3

   THD2: select ... => Got a writer in ::store_query
   THD3: select ... => Got a writer in ::store_query
   THD1: flush tables => qc status= FLUSH_IN_PROGRESS;
                      new writers are blocked.
   THD2: select ... => Still got a writer and enters cond in
                       query_cache_insert
   THD3: select ... => Still got a writer and enters cond in
                       query_cache_insert
   THD1: flush tables => finished and signal status change.
   THD2: select ... => Wakes up and completes the insert.
   THD3: select ... => Happily waiting for better times. Why hurry?

This patch is a refactoring of this lock system. It introduces four new methods:
   Query_cache::try_lock()
   Query_cache::lock()
   Query_cache::lock_and_suspend()
   Query_cache::unlock()

This change also deprecates wait_while_table_flush_is_in_progress(). All threads are
queued and put on a conditional wait. On each unlock the queue is signalled. This resolve
the issues with left over threads. To assure that no threads are spending unnecessary
time waiting a signal broadcast is issued every time a lock is taken before a full
cache flush.

mysql-test/r/query_cache_debug.result:
  * Added test case for bug43758
mysql-test/t/query_cache_debug.test:
  * Added test case for bug43758
sql/sql_cache.cc:
  * Replaced calls to wait_while_table_flush_is_in_progress() with
    calls to try_lock(), lock_and_suspend() and unlock().
  * Renamed enumeration Cache_status to Cache_lock_status.
  * Renamed enumeration items to UNLOCKED, LOCKED_NO_WAIT and LOCKED.
    If the LOCKED_NO_WAIT lock type is used to lock the query cache, other
    threads using try_lock() will fail to acquire the lock.
    This is useful if the query cache is temporary disabled due to 
    a full table flush.
sql/sql_cache.h:
  * Replaced calls to wait_while_table_flush_is_in_progress() with
    calls to try_lock(), lock_and_suspend() and unlock().
  * Renamed enumeration Cache_status to Cache_lock_status.
  * Renamed enumeration items to UNLOCKED, LOCKED_NO_WAIT and LOCKED.
    If the LOCKED_NO_WAIT lock type is used to lock the query cache, other
    threads using try_lock() will fail to acquire the lock.
    This is useful if the query cache is temporary disabled due to 
    a full table flush.
2009-06-16 10:34:47 +02:00
Martin Hansson
5d44b2f3a5 Merge 2009-06-16 10:34:32 +02:00
Davi Arnaut
3cc3aa7d70 Post-merge fix: modify regular expression to better handle 24 hour
times (ie: 2:16:20).

mysql-test/r/log_tables_debug.result:
  Update test case result.
mysql-test/t/log_tables_debug.test:
  Skip spaces and handle case when a leading zero is not printed.
2009-06-15 20:27:27 -03:00
Davi Arnaut
cebad07c5d Disable session debugging after its not necessary anymore.
mysql-test/t/log_tables_debug.test:
  Remove spurious spaces and disable session debugging.
2009-06-15 20:02:25 -03:00
Sergey Petrunia
a0a7cb03ae Fix spurious valgrind warnings in rpl_trigger.test 2009-06-15 20:22:08 +04:00
Staale Smedseng
37a5f2d421 Bug #45387 Information about statement id for prepared
statements missed from general log

A FLUSH LOGS is added to ensure that the log info hits
the file before attempting to process.

mysql-test/t/log_tables_debug.test:
  A FLUSH LOGS is added, and in the event that a match is
  not found, <FILE> is reset and the contents of the log
  file is dumped for debugging purposes.
2009-06-15 18:03:25 +02:00
Georgi Kodinov
778999907f automerge 2009-06-15 17:58:23 +02:00
Georgi Kodinov
9d0d363be3 merged 5.0-main to 5.0-bugteam 2009-06-15 17:29:26 +02:00