public function SqlsrvTest::testParameterLimit in Drupal driver for SQL Server and SQL Azure 3.1.x
Same name and namespace in other branches
- 8.2 tests/src/Kernel/SqlsrvTest.php \Drupal\Tests\sqlsrv\Kernel\SqlsrvTest::testParameterLimit()
- 4.2.x tests/src/Kernel/SqlsrvTest.php \Drupal\Tests\sqlsrv\Kernel\SqlsrvTest::testParameterLimit()
- 3.0.x tests/src/Kernel/SqlsrvTest.php \Drupal\Tests\sqlsrv\Kernel\SqlsrvTest::testParameterLimit()
- 4.0.x tests/src/Kernel/SqlsrvTest.php \Drupal\Tests\sqlsrv\Kernel\SqlsrvTest::testParameterLimit()
- 4.1.x tests/src/Kernel/SqlsrvTest.php \Drupal\Tests\sqlsrv\Kernel\SqlsrvTest::testParameterLimit()
Test the 2100 parameter limit per query.
File
- tests/
src/ Kernel/ SqlsrvTest.php, line 22
Class
- SqlsrvTest
- Test behavior that is unique to the Sql Server Driver.
Namespace
Drupal\Tests\sqlsrv\KernelCode
public function testParameterLimit() {
$values = [];
for ($x = 0; $x < 2200; $x++) {
$values[] = uniqid(strval($x), TRUE);
}
$query = $this->connection
->select('test_task', 't');
$query
->addExpression('COUNT(task)', 'num');
$query
->where('t.task IN (:data)', [
':data' => $values,
]);
$result = NULL;
// If > 2100 we can get SQL Exception! The driver must handle that.
try {
$result = $query
->execute()
->fetchField();
} catch (\Exception $err) {
}
$this
->assertEqual($result, 0, 'Returned the correct number of total rows.');
}