Проектная лаборатория
Собственный SQLite
Этап 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Примечания
- Подробнее о формате файла базы SQLite см. в руководстве Database File Format.
- В заголовках базы многобайтовые поля хранятся в формате big-endian. Подробнее об этом — в статье MDN о порядке байтов.
Проверка в вашей IDE
Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.
Настройка проекта и IDE
1. Создайте проект один раз
node '/opt/graphlms/tools/project-lab/cli.mjs' init sqlite ./my-sqlite --language go2. Откройте папку в IDE
cd ./my-sqliteРеализуйте требования этапа в созданном проекте.
Запустите из папки проекта
node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage dr6Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.
Результат проверки
go / ЛОКАЛЬНОПодключение к локальной проверке…
Здесь появится результат
Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.