[ticket/17524] Try not to hit MSSQL index key length limitations

900 bytes for a clustered index. 1,700 bytes for a nonclustered index.
For SQL Server 2014 (12.x) and earlier, all versions supported 900 bytes
for all index types.

PHPBB-17524
This commit is contained in:
rxu 2025-06-12 01:16:25 +07:00
parent c7e94d4632
commit b4b787198a
No known key found for this signature in database
GPG key ID: 955F0567380E586A
2 changed files with 5 additions and 5 deletions

View file

@ -26,9 +26,9 @@ class phpbb_dbal_migration_schema extends \phpbb\db\migration\migration
'COLUMNS' => [ 'COLUMNS' => [
'module_id' => ['UINT:3', NULL, 'auto_increment'], 'module_id' => ['UINT:3', NULL, 'auto_increment'],
'user_id' => ['ULINT', 0], 'user_id' => ['ULINT', 0],
'endpoint' => ['TEXT', ''], 'endpoint' => ['VCHAR:220', ''],
'expiration_time' => ['TIMESTAMP', 0], 'expiration_time' => ['TIMESTAMP', 0],
'p256dh' => ['VCHAR', ''], 'p256dh' => ['VCHAR:200', ''],
'auth' => ['VCHAR:100', ''], 'auth' => ['VCHAR:100', ''],
], ],
'PRIMARY_KEY' => 'module_id', 'PRIMARY_KEY' => 'module_id',

View file

@ -422,7 +422,7 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
{ {
case 'i_simple': case 'i_simple':
$this->assertEquals(['user_id', 'endpoint'], $index_data['columns']); $this->assertEquals(['user_id', 'endpoint'], $index_data['columns']);
$this->assertEmpty($index_data['flags']); $this->assertEquals($is_mssql ? ['clustered'] : [], $index_data['flags']);
$this->assertFalse($index_data['is_primary']); $this->assertFalse($index_data['is_primary']);
$this->assertFalse($index_data['is_unique']); $this->assertFalse($index_data['is_unique']);
$this->assertTrue($index_data['is_simple']); $this->assertTrue($index_data['is_simple']);
@ -432,7 +432,7 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
break; break;
case 'i_uniq': case 'i_uniq':
$this->assertEquals(['expiration_time', 'p256dh'], $index_data['columns']); $this->assertEquals(['expiration_time', 'p256dh'], $index_data['columns']);
$this->assertEmpty($index_data['flags']); $this->assertEquals($is_mssql ? ['clustered'] : [], $index_data['flags']);
$this->assertFalse($index_data['is_primary']); $this->assertFalse($index_data['is_primary']);
$this->assertTrue($index_data['is_unique']); $this->assertTrue($index_data['is_unique']);
$this->assertFalse($index_data['is_simple']); $this->assertFalse($index_data['is_simple']);
@ -442,7 +442,7 @@ class phpbb_dbal_migrator_test extends phpbb_database_test_case
break; break;
case 'i_auth': case 'i_auth':
$this->assertEquals(['auth'], $index_data['columns']); $this->assertEquals(['auth'], $index_data['columns']);
$this->assertEmpty($index_data['flags']); $this->assertEquals($is_mssql ? ['clustered'] : [], $index_data['flags']);
$this->assertFalse($index_data['is_primary']); $this->assertFalse($index_data['is_primary']);
$this->assertFalse($index_data['is_unique']); $this->assertFalse($index_data['is_unique']);
$this->assertTrue($index_data['is_simple']); $this->assertTrue($index_data['is_simple']);