Проектная лаборатория

Собственный SQLite

0 / 9этапов пройдено

Этап 01 · Основные этапы

Вывод размера страницы

Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.

На этом этапе вы реализуете вывод размера страницы файла базы SQLite с помощью команды с точкой .dbinfo.

.dbinfo

.dbinfo — команда с точкой, выводящая метаданные базы SQLite.

Команда .dbinfo запускается так:

$ sqlite3 sample.db .dbinfo

Она выводит метаданные файла базы:

database page size:  4096
write format:        1
read format:         1
...
number of tables:    5
schema size:         330
data version:        1

На этом этапе вашей команде .dbinfo достаточно выводить только размер страницы базы — «database page size».

Файл базы данных

Файл базы SQLite начинается с заголовка базы. Размер страницы хранится в заголовке сразу после сигнатуры. Это 2-байтовое значение с порядком байтов big-endian (читается слева направо).

// Start of file
53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00  // Magic string: "SQLite format 3" + null terminator.
10 00                                            /* Database page size, in bytes.
                                                    Here, the page size is 4096 bytes. */
...

Тесты

Тестирующая система запустит вашу программу следующим образом:

$ ./your_program.sh sample.db .dbinfo

Программа должна вывести размер страницы файла базы данных, например:

database page size: 4096

Примечания

Проверка в вашей IDE

Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.

Настройка проекта и IDE

1. Создайте проект один раз

node '/opt/graphlms/tools/project-lab/cli.mjs' init sqlite ./my-sqlite --language go

2. Откройте папку в IDE

cd ./my-sqlite

Реализуйте требования этапа в созданном проекте.

Запустите из папки проекта

node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage dr6

Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.

Результат проверки

go / ЛОКАЛЬНО

Подключение к локальной проверке…

Здесь появится результат

Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.

GraphLMS — инженерная лаборатория роста