directus

Форк
0
33 строки · 979.0 Байт
1
import type { Knex } from 'knex';
2
import { SchemaHelper } from '../types.js';
3

4
export class SchemaHelperMSSQL extends SchemaHelper {
5
	override applyLimit(rootQuery: Knex.QueryBuilder, limit: number): void {
6
		// The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries,
7
		// and common table expressions, unless TOP, OFFSET or FOR XML is also specified.
8
		if (limit === -1) {
9
			rootQuery.limit(Number.MAX_SAFE_INTEGER);
10
		} else {
11
			rootQuery.limit(limit);
12
		}
13
	}
14

15
	override applyOffset(rootQuery: Knex.QueryBuilder, offset: number): void {
16
		rootQuery.offset(offset);
17
		rootQuery.orderBy(1);
18
	}
19

20
	override formatUUID(uuid: string): string {
21
		return uuid.toUpperCase();
22
	}
23

24
	override async getDatabaseSize(): Promise<number | null> {
25
		try {
26
			const result = await this.knex.raw('SELECT SUM(size) * 8192 AS size FROM sys.database_files;');
27

28
			return result[0]?.['size'] ? Number(result[0]?.['size']) : null;
29
		} catch {
30
			return null;
31
		}
32
	}
33
}
34

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.