Commit graph

54,292 commits

Author SHA1 Message Date
unknown
53c1832680 Third set of fixes for bug#35988. 2008-04-15 15:44:11 +02:00
unknown
77c7d6972d Bug#35157: mysqldump should use FLUSH TABLES NO_WRITE_TO_BINLOG \
when --master-data is used

When using the --master-data option with mysqldump, mysqldump uses 
a FLUSH TABLES command.  However, this statement got replicated to 
the slave(s), which caused the slave(s) to block unnecessarily while
the FLUSH tables command completed.

Now, if the master-data option is set to one of the two "on" modes,
then use the "LOCAL" qualifier to ensure that it's not replicated.


client/mysqldump.c:
  If master_data is set to one of the two modes, then insert "LOCAL"
  to the command to FLUSH TABLES so that the slaves aren't told to 
  flush also.
mysql-test/r/mysqldump.result:
  Output of mysqldump changed.
2008-04-14 17:43:08 -04:00
unknown
27e532bcff Merge hh-nb.hungers:/work/trees/mysql-5.1-build-src-clean
into  hh-nb.hungers:/work/merge/mysql-5.1-build
2008-04-14 17:31:15 +02:00
unknown
a9c37b3bfe Second set of fixes for bug#35988. 2008-04-14 17:21:18 +02:00
unknown
bb9bec27eb Merge kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.0-merge
into  kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.1-merge


mysql-test/r/grant.result:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
sql/sql_acl.cc:
  Auto merged
2008-04-14 13:28:45 +02:00
unknown
b11c44932e Merge kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.0
into  kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.0-merge


sql/sql_acl.cc:
  Auto merged
mysql-test/r/grant.result:
  manual merge
mysql-test/t/grant.test:
  manual merge
2008-04-14 13:27:26 +02:00
unknown
7378628456 Merge kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.1
into  kpdesk.mysql.com:/home/thek/Development/cpp/mysql-5.1-merge


mysql-test/r/grant.result:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
mysql-test/t/grant.test:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
storage/myisam/mi_create.c:
  Auto merged
2008-04-14 12:58:53 +02:00
unknown
b1c8244470 Merge hh-nb.hungers:/work/merge/mysql-5.1-build
into  hh-nb.hungers:/work/merge/mysql-5.1-wl4288


mysql-test/t/disabled.def:
  Auto merged
2008-04-11 22:16:41 +02:00
unknown
5fd727f73b Fixes of system variable test programs for bug#35988. 2008-04-11 21:59:33 +02:00
unknown
462704c5c6 Fix merge problem. 2008-04-10 23:27:24 -04:00
unknown
baa9ff82ee Merge bk-internal.mysql.com:/home/bk/mysql-5.1-build
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-build
2008-04-10 17:58:58 -04:00
unknown
e68f3e8d38 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-build
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-build


mysql-test/t/type_blob.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/tztime.cc:
  Auto merged
sql/unireg.h:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
mysql-test/r/type_blob.result:
  manual merge
sql/item_create.cc:
  manual merge
2008-04-10 17:48:33 -04:00
unknown
57784eae12 Fix mismerge.
sql/field.cc:
  Fix indentation of new line.
2008-04-10 15:55:37 -04:00
unknown
3828535bbe Merge hh-nb.hungers:/work/trees/mysql-5.1-build-src-clean
into  hh-nb.hungers:/work/merge/mysql-5.1-build


BitKeeper/etc/ignore:
  auto-union
2008-04-10 18:32:37 +02:00
unknown
b00c536378 System variable tests delivered by Folio3 (see WL4288).
BitKeeper/etc/ignore:
  Added mysql-test/linux_sys_vars.inc mysql-test/load_sysvars.inc mysql-test/windows_sys_vars.inc to the ignore list
2008-04-10 15:14:28 +02:00
unknown
ec63ce2529 Error message changed across versions. 2008-04-09 21:19:41 -04:00
unknown
b64f664856 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-build
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-build
2008-04-09 21:03:14 -04:00
unknown
fe6df1495b Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776-encore/my51-bug15776-encore
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-build


sql/field.cc:
  Auto merged
sql/unireg.h:
  Auto merged
mysql-test/r/type_blob.result:
  manual merge.
mysql-test/t/type_blob.test:
  manual merge.
sql/item_create.cc:
  manual merge.
sql/share/errmsg.txt:
  manual merge.
sql/sql_yacc.yy:
  manual merge.
2008-04-09 20:38:32 -04:00
unknown
f768701000 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776-encore/my50-bug15776-encore
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-build


mysql-test/r/type_blob.result:
  Auto merged
mysql-test/t/type_blob.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/item_create.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/unireg.h:
  Auto merged
2008-04-09 20:34:38 -04:00
unknown
7cce56b2f2 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my51-bug15776
into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776-encore/my51-bug15776-encore


sql/field.cc:
  Auto merged
sql/item_create.cc:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/unireg.h:
  Auto merged
mysql-test/r/type_blob.result:
  manual merge.
mysql-test/t/type_blob.test:
  manual merge.
sql/sql_yacc.yy:
  merge by hand.
2008-04-09 18:24:50 -04:00
unknown
4a77e833f2 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my50-bug15776
into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my51-bug15776


mysql-test/r/type_blob.result:
  Auto merged
mysql-test/t/type_blob.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/unireg.h:
  Auto merged
2008-04-09 18:09:42 -04:00
unknown
e2420997e6 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my50-bug15776
into  zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776-encore/my50-bug15776-encore


sql/field.cc:
  Auto merged
sql/item_create.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/share/errmsg.txt:
  Auto merged
sql/unireg.h:
  Auto merged
mysql-test/r/type_blob.result:
  manual merge.
mysql-test/t/type_blob.test:
  manual merge.
2008-04-09 17:14:10 -04:00
unknown
a16a72b6c3 Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug15776/my50-bug15776
into  zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-build


mysql-test/r/type_blob.result:
  Auto merged
mysql-test/t/type_blob.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/unireg.h:
  Auto merged
2008-04-09 12:27:51 -04:00
unknown
2bc7179d2d Follow-up to B-g#15776, test failures on 64-bit linux.
Make maximum blob size to be 2**32-1, regardless of word size.

Fix failure of timestamp with size of 2**31-1.  The method of
rounding up to the nearest even number would overflow.


mysql-test/r/type_blob.result:
  2**32-1 is not a special case for timestamp.
  
  Test 2**32-1 and 2**64 as the reliable test points for both 32-
  and 64-bit machines.  I'd like to test 2**32, but that would make 
  tests that vary between architectures.
  
  I'd like to generalize the tests by pulling the max blob size from
  the server, and then "eval"ing N-1, N, and N+1 instead of all these
  literal numbers, but I have not found a way to get UINT_MAX.
mysql-test/t/type_blob.test:
  2**32-1 is not a special case for timestamp.
  
  Test 2**32-1 and 2**64 as the reliable test points for both 32-
  and 64-bit machines.  I'd like to test 2**32, but that would make 
  tests that vary between architectures.
  
  I'd like to generalize the tests by pulling the max blob size from
  the server, and then "eval"ing N-1, N, and N+1 instead of all these
  literal numbers, but I have not found a way to get UINT_MAX.
sql/field.cc:
  Fix a bug where the round-to-even code for TIMESTAMP fields
  failed where the size would overflow the size to zero and then
  fail.
  
  Also, since we silently truncate the size of TIMESTAMP fields, set
  the maximum size we report is allowable to be the largest parsable
  number.
sql/unireg.h:
  Make BLOB size the maximum that the packed value in 
  field_blob::get_length() allows.
2008-04-09 12:27:30 -04:00
unknown
ffb16fe7d4 Merge five.local.lan:/work/merge/mysql-5.1-funcs_1
into  five.local.lan:/work/trees/mysql-5.1-build-src-clean
2008-04-09 16:05:58 +02:00
unknown
9fd682e6e0 Additional tests inspired by Bug
#12713 Error in a stored function called from a
          SELECT doesn't cause ROLLBACK of statem


mysql-test/r/func_rollback.result:
  Expected results
mysql-test/t/func_rollback.test:
  New test
2008-04-09 15:56:25 +02:00
unknown
1ff9a2437a Fix pushbuild errors and warnings. 2008-04-08 21:49:31 +04:00
unknown
f149152f97 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  dipika.(none):/opt/local/work/mysql-5.1-runtime
2008-04-08 20:32:29 +04:00
unknown
2ca624969a Remove dead code.
sql/sp.h:
  Remove unused code.
2008-04-08 20:31:40 +04:00
unknown
a63dde5a5b Tentative implementation of
WL#4165 Prepared statements: validation 
WL#4166 Prepared statements: automatic re-prepare
Fixes
Bug#27430 Crash in subquery code when in PS and table DDL changed after PREPARE
Bug#27690 Re-execution of prepared statement after table was replaced with a view crashes
Bug#27420 A combination of PS and view operations cause error + assertion on shutdown

The basic idea of the patch is to keep track of table metadata between
prepared statement prepare and execute. If some table used in the statement
has changed, the prepared statement is re-prepared before execution.

See WL#4165 and WL#4166 contents and comments in the code for details
of the implementation.


include/my_global.h:
  Remove 'register' keyword to avoid warnings when swapping large structures
  that don't fit into a register. Any modern compiler is capable of placing
  a variable in a register when that would benefit performance.
mysql-test/r/ps_1general.result:
  Update test results: since now we re-prepare automatically,
  more correct results are produced in prepare-ddl-execute scenario.
mysql-test/r/query_cache_merge.result:
  Ensure that the table definition cache is large enough for
  the test to pass in --ps-protocol
mysql-test/r/trigger.result:
  Update test results to reflect automatic statement reprepare.
mysql-test/t/disabled.def:
  Enable ps_ddl.test, which now passes.
mysql-test/t/ps_1general.test:
  Since now we re-execute prepared statements after DDL successfully,
  change the test to produce repeatable results. Remove expectancy of
  an error in one place where now we automatically reprepare the prepared
  statement.
mysql-test/t/query_cache_merge.test:
  Ensure the table definition cache is large enough for the test to pass
  in --ps-protocol
mysql-test/t/trigger.test:
  Sinc
sql/item.cc:
  Implement Item_param "copy" functionality, used at re-prepare of
  a prepared statement.
  We copy the type of the original parameter, and move the assigned value,
  if any. Sic, the value is "moved", since it can be quite big --
  e.g. in case we deal with a LONG DATA parameter.
  It's essential to move the value from the old parameter since
  at the time of re-prepare the client packet with the necessary information
  may be not available.
sql/item.h:
  Declare a new method used for reprepare.
sql/my_decimal.h:
  Implement "swap()" functionality of class my_decimal to be
  able to easily swap two decimal values.
sql/mysql_priv.h:
  Declare enum_metadata_type.
sql/mysqld.cc:
  Implement a status variable for the number of reprepared statements.
sql/sql_base.cc:
  Implement metadata version validation.
sql/share/errmsg.txt:
  Add two new error messages: ER_NEED_REPREPARE and ER_PS_REBIND.
  The first error (theoretically) never reaches the user.
  It is issued by the metadata validation framework when a metadata version
  has changed between prepare and execute. Later on it's intercepted
  and the statement is automatically re-prepared. Only if the error
  has occurred repeatedly MAX_REPREPARE_ATTEMTS (3) times do we
  return it to the user.
  
  The second error is issued when after re-prepare we discover
  that the metadata we sent over to the client using the binary
  protocol differs drammatically from the new result set metadata 
  that the reprepared statement produces (e.g. number of result
  set columns is different).
sql/sql_class.cc:
  Implement metadata version validation framework.
sql/sql_class.h:
  Declarations for metadata version validation framework.
sql/sql_parse.cc:
  Mark commands for which we must invalidate and reprepare a prepared
  statement when metadata has changed.
sql/sql_prepare.cc:
  Implement WL#4165 and WL#4166 (limited support of metadata validation
  and re-prepare).
sql/table.h:
  Implement metadata validation.
tests/mysql_client_test.c:
  Add a test case for WL#4166
2008-04-08 20:01:20 +04:00
unknown
f0b49d2819 Merge error between two patches caused error out-of-bounds assignment. 2008-04-08 15:57:44 +02:00
unknown
24d9bbad70 Merge mysqldev@production.mysql.com:my/mysql-5.1-release
into  mysql1000.(none):/home/andrei/MySQL/BARE/mysql-5.1-release
2008-04-08 12:52:11 +03:00
unknown
1d5f5887ec Makefile.am:
Add ChangeLog if it exists
  - Removed separate 'normal+rowrepl' test run, not needed any longer
  - Removed separate 'rpl' test run, included in main test run already
  - Renamed some test "comments", to use similar naming style
  - Limited one of the Cluster test runs to 'ndb' and 'rpl_ndb' suites
  - Reordered test runs, to be aligned with Windows test runs
mysql.spec.sh:
  - No longer including the "Example" storage engine
  - Added to configure "--without-ENGINE" if not to compile engine as plugin


Docs/Makefile.am:
  Add ChangeLog if it exists
Makefile.am:
  - Removed separate 'normal+rowrepl' test run, not needed any longer
  - Removed separate 'rpl' test run, included in main test run already
  - Renamed some test "comments", to use similar naming style
  - Limited one of the Cluster test runs to 'ndb' and 'rpl_ndb' suites
  - Reordered test runs, to be aligned with Windows test runs
support-files/mysql.spec.sh:
  - No longer including the "Example" storage engine
  - Added to configure "--without-ENGINE" if not to compile engine as plugin
2008-04-08 11:44:18 +02:00
unknown
73febb3bf9 Bug #35762 Failing CREATE-SELECT steels Table map of the following query
Among two claimed artifacts the critical one is in that the Table map of 
a query following the failing with a duplicate key error CREATE-SELECT is skipped from
instantionating (and thus binlogging). That leads to sending a "chopped" group of the data
row-events without the table map head to the slave. 
The slave can not apply the only data row events.
It's not easy to force the slave to react with an error in such a case (the second complaint
on the bug report), because the lack of a table Rows_log_event::do_apply_event the data row event
handler is a common situation which  normally designates the event has to be filtered out
basing on the repliation do/ingore rules decision.

Fixed: table map creating and binlogging is restored via deploying the standard cleanup call in
select_create::abort().
No error is reported if by chance the table map was not been binlogged.
Leaving this out to resolve with considering how to combine the do/ingore rules with the situation
when erronoulsy the Table_map is not written to binlog.


mysql-test/suite/rpl/r/rpl_row_create_table.result:
  results changed
mysql-test/suite/rpl/t/rpl_row_create_table.test:
  regression test for the bug
sql/sql_insert.cc:
  adding resetting of thd binlogging state that was missed for the particular case of failing CREATE..SELECT
2008-04-08 10:43:00 +03:00
unknown
ab96882840 Merge kpettersson@bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  adventure.(none):/home/thek/Development/cpp/mysql-5.1-runtime
2008-04-08 09:20:53 +02:00
unknown
9fd89afca0 Fix for bug #35732: read-only blocks SELECT statements in InnoDB
Problem: SELECTs prohibited for a transactional SE in autocommit mode
if read_only is set.

Fix: allow them.


mysql-test/r/read_only_innodb.result:
  Fix for bug #35732: read-only blocks SELECT statements in InnoDB
    - test result.
mysql-test/t/read_only_innodb.test:
  Fix for bug #35732: read-only blocks SELECT statements in InnoDB
    - test case.
sql/handler.cc:
  Fix for bug #35732: read-only blocks SELECT statements in InnoDB
    - in autocommit mode thd->transaction.all list is empty thus 
      is_real_trans set to TRUE for any SELECTs, so using it in the
      "read_only" check is insufficient.
      ha_check_and_coalesce_trx_read_only() changed to return number
      of engines with read-write changes. This value is used in the
      "read-only" check and checks for GLOBAL READ LOCK.
sql/lock.cc:
  Fix for bug #35732: read-only blocks SELECT statements in InnoDB
    - added assert(protect_against_global_read_lock) before decreasing,
      in order to catch (uint) 0 - 1 situation due to wrong 
      wait_if_global_read_lock()/start_waiting_global_read_lock() call
      sequence.
2008-04-08 10:20:58 +05:00
unknown
797bfd6e3f Fix a compilation warning (unused variable). 2008-04-07 23:57:47 +04:00
unknown
17ec1c3c3b A fix for Bug#32724 "innodb_mysql.test fails randomly".
Enable back the disabled test case.


mysql-test/t/disabled.def:
  Enable the test case innodb_mysql.
sql/sql_parse.cc:
  Fix the random failure of innodb_mysql test. The failure is not
  random any more after a patch for Bug 12713 added asserts around
  handler commit.
2008-04-07 15:42:32 +04:00
unknown
ed0fd2f628 Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into  mockturtle.local:/home/dlenev/src/mysql-5.1-symlink
2008-04-07 13:46:56 +04:00
unknown
d017aceed0 Review and update WL#4165 and WL#4166 test coverage. 2008-04-07 13:35:42 +04:00
unknown
3f63ba7f8c Bug#34183 Missing DBUG_RETURN in alloc_root
DBUG_RETURN was missing form an exit path in 5.1 branch of alloc_root


mysys/my_alloc.c:
  Fixed missing DBUG_RETURN
2008-04-07 11:29:45 +02:00
unknown
d5990c2818 Fix for bug #35733 "main.symlink.test fails".
The problem was that symlink.test failed due to debug assertions or
due to errors emitted for wrong statements (in non-debug builds)
if 6.0 version of server was run with --thread-handling=pool-of-threads
option.

The above problems were caused by that on the one hand code mi_create()
which handles case when error is returned relies on my_errno being set
to appropriate non-0 value, but on the other it has not done this
in case when error was emitted due to discovery that share for table
which we are going to create is already present in the list of open
shares. Running server with pool-of-threads option just exposed this
bug since in this scheduler mode my_errno is reset to 0 when connection
(THD) is reattached to the "real" thread.

This fix ensures that code in mi_create() properly sets my_errno in
the case described above.

Since original reason that caused this bug to be exposed in 6.0 tree
might also under very special conditions lead to incorrect behavior
of earlier versions of server (i.e. to errors emitted for wrong
statements) this patch is also being pushed into 5.1 tree.

No test case is present as this code is already covered by a test
case + pushbuild options combination in 6.0.


storage/myisam/mi_create.c:
  Code in mi_create() which handles case when error is returned relies
  on my_errno being set to appropriate non-0 value. Adjusted code which
  emits error when we discover that share for table which we are going
  to create is already present in the list of open shares to do this.
2008-04-07 12:59:57 +04:00
unknown
4fbe0d14ce Merge trift2.:/MySQL/M51/push-5.1
into  trift2.:/MySQL/M51/work-5.1
2008-04-05 13:37:05 +02:00
unknown
b8dc8d19aa Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.1-build
into  trift2.:/MySQL/M51/push-5.1
2008-04-05 12:51:38 +02:00
unknown
598110caaf Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.1-build
into  trift2.:/MySQL/M51/tmp-5.1
2008-04-04 20:03:24 +02:00
unknown
d683134526 Merge trift2.:/MySQL/M51/clone-5.1
into  trift2.:/MySQL/M51/tmp-5.1

Null merge - changes specific to 5.1.24-rc are superseded by better ones done in parallel.


mysql-test/suite/funcs_1/r/innodb_storedproc_02.result:
  Null merge.
mysql-test/suite/funcs_1/r/innodb_trig_03e.result:
  Null merge.
mysql-test/suite/funcs_1/r/memory_storedproc_02.result:
  Null merge.
mysql-test/suite/funcs_1/r/memory_trig_03e.result:
  Null merge.
mysql-test/suite/funcs_1/r/myisam_storedproc_02.result:
  Null merge.
mysql-test/suite/funcs_1/r/myisam_trig_03e.result:
  Null merge.
mysql-test/suite/funcs_1/r/ndb_storedproc_02.result:
  Null merge.
mysql-test/suite/funcs_1/r/ndb_trig_03e.result:
  Null merge.
mysql-test/suite/funcs_1/storedproc/storedproc_02.inc:
  Null merge.
mysql-test/suite/funcs_1/storedproc/storedproc_master.inc:
  Null merge.
mysql-test/suite/funcs_1/r/innodb_storedproc.result:
  Null merge - changes specific to 5.1.24-rc are superseded by better ones done in parallel.
mysql-test/suite/funcs_1/r/memory_storedproc.result:
  Null merge - changes specific to 5.1.24-rc are superseded by better ones done in parallel.
mysql-test/suite/funcs_1/r/myisam_storedproc.result:
  Null merge - changes specific to 5.1.24-rc are superseded by better ones done in parallel.
mysql-test/suite/funcs_1/r/ndb_storedproc.result:
  Null merge - changes specific to 5.1.24-rc are superseded by better ones done in parallel.
2008-04-04 19:52:48 +02:00
unknown
32804a3695 Merge trift2.:/MySQL/M51/clone-5.1
into  trift2.:/MySQL/M51/push-5.1
2008-04-04 19:30:52 +02:00
unknown
b020868d87 Merge trift2.:/MySQL/M51/clone-5.1
into  trift2.:/MySQL/M51/tmp-5.1
2008-04-04 19:25:39 +02:00
unknown
ccd31e9dd4 Bug#35824: mysql_upgrade does not fix scheduler tables when upgrading from 5.1.23 to 5.1.24
The problem is that when upgrading the event table, the sql_mode
column was always being added instead of being updated to list new
sql_mode values, causing upgrades of the event which already have
a sql_mode column to not be updated to the new sql_mode values.

The solution is to always add first a stub sql_mode column and
subsequently update the column to the new sql_mode values.


scripts/mysql_system_tables_fix.sql:
  Always add and update the sql_mode column of the event table.
2008-04-04 13:46:05 -03:00
unknown
9492350ab9 Merge five.local.lan:/work/merge/mysql-5.1-funcs_1
into  five.local.lan:/work/trees/mysql-5.1-build-src-clean


mysql-test/Makefile.am:
  Auto merged
2008-04-04 18:31:02 +02:00