diff --git a/core/DataTable.php b/core/DataTable.php index 221af5315acf540fe5c2fdbb2339c92fcf79a5a3..0b68a96f501f9ada6cd289f397943aa577e9b283 100644 --- a/core/DataTable.php +++ b/core/DataTable.php @@ -1714,6 +1714,7 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess public function mergeSubtables($labelColumn = false, $useMetadataColumn = false) { $result = new DataTable(); + $result->setAllTableMetadata($this->getAllTableMetadata()); foreach ($this->getRowsWithoutSummaryRow() as $row) { $subtable = $row->getSubtable(); if ($subtable !== false) { diff --git a/tests/PHPUnit/Unit/DataTableTest.php b/tests/PHPUnit/Unit/DataTableTest.php index c427adeae779a371ee430ad51e2a824ebf719372..fa7fe2266914a2e4269f213cc44a505073cacc51 100644 --- a/tests/PHPUnit/Unit/DataTableTest.php +++ b/tests/PHPUnit/Unit/DataTableTest.php @@ -898,6 +898,14 @@ class DataTableTest extends \PHPUnit_Framework_TestCase $this->assertNull($unserialized[0][3], "found the id sub table in the serialized, not expected"); } + public function testMergeSubtablesKeepsMetadata() + { + $dataTable = $this->_getDataTable1ForTest(); + $dataTable->setMetadata('additionalMetadata', 'test'); + $dataTable = $dataTable->mergeSubtables(); + $this->assertEquals('test', $dataTable->getMetadata('additionalMetadata')); + } + private function createDataTable($rows) { $useless1 = new DataTable;