Merge "rdbms: support mmap_size pragma for sqlite"

This commit is contained in:
jenkins-bot 2022-06-05 19:39:06 +00:00 committed by Gerrit Code Review
commit 69a9ffd30a

View file

@ -66,7 +66,9 @@ class DatabaseSqlite extends Database {
// Optimizations or requirements regarding fsync() usage
'synchronous' => [ 'EXTRA', 'FULL', 'NORMAL', 'OFF' ],
// Optimizations for TEMPORARY tables
'temp_store' => [ 'FILE', 'MEMORY' ]
'temp_store' => [ 'FILE', 'MEMORY' ],
// Optimizations for disk use and page cache
'mmap_size' => 'integer'
];
/** @var ISQLPlatform */
@ -193,7 +195,10 @@ class DatabaseSqlite extends Database {
$pragmas += $this->getDefaultPragmas();
foreach ( $pragmas as $name => $value ) {
$allowed = self::VALID_PRAGMAS[$name];
if ( in_array( $value, $allowed, true ) ) {
if (
( is_array( $allowed ) && in_array( $value, $allowed, true ) ) ||
( is_string( $allowed ) && gettype( $value ) === $allowed )
) {
$this->query( "PRAGMA $name = $value", __METHOD__, $flags );
}
}