diff --git a/src/Mysqldump.php b/src/Mysqldump.php index 1dfe016e..1b9e7192 100644 --- a/src/Mysqldump.php +++ b/src/Mysqldump.php @@ -1040,18 +1040,20 @@ public function getTableLimit(string $tableName) return false; } - $v = false; + $limit = false; if (is_numeric($this->tableLimits[$tableName])) { - $v = is_numeric($this->tableLimits[$tableName]); + $limit = $this->tableLimits[$tableName]; } if (is_array($this->tableLimits[$tableName]) && count($this->tableLimits[$tableName]) === 2 && - is_numeric(implode('', $this->tableLimits[$tableName]))) { - $v = implode(',', $this->tableLimits[$tableName]); + is_numeric(implode('', $this->tableLimits[$tableName])) && + $this->tableLimits[$tableName][0] <= $this->tableLimits[$tableName][1] + ) { + $limit = implode(',', $this->tableLimits[$tableName]); } - return $v; + return $limit; } diff --git a/tests/MysqldumpTest.php b/tests/MysqldumpTest.php index f0510795..51ee8e70 100644 --- a/tests/MysqldumpTest.php +++ b/tests/MysqldumpTest.php @@ -101,6 +101,8 @@ public function testTableSpecificLimitsWork() 'table_with_range_limit' => [41923, 42992], 'table_with_invalid_range_limit' => [41923], 'table_with_invalid_range_limit2' => [41923, 42992, 42999], + 'table_with_invalid_range_limit3' => [2, 1], + 'table_with_invalid_range_limit4' => [1, 1], ]); $this->assertEquals(200, $dump->getTableLimit('users')); @@ -110,6 +112,8 @@ public function testTableSpecificLimitsWork() $this->assertEquals('41923,42992', $dump->getTableLimit('table_with_range_limit')); $this->assertFalse($dump->getTableLimit('table_with_invalid_range_limit')); $this->assertFalse($dump->getTableLimit('table_with_invalid_range_limit2')); + $this->assertFalse($dump->getTableLimit('table_with_invalid_range_limit3')); + $this->assertEquals('1,1', $dump->getTableLimit('table_with_invalid_range_limit4')); } private function getPrivate(Mysqldump $dump, $var)