Я просматриваю файл базы данных SQLite, как описано в спецификациях формата файла, но я не совсем понимаю ту часть, где мы должны определить, будет ли указатель на страницу переполнения в заголовке ячейки.,Как описано здесь https://www.sqlite.org/fileformat.html раздел 1.6. Вся полезная нагрузка будет помещаться на странице, если p
Я пытаюсь прочитать таблицу sqlite_master на корневой странице прямо сейчас, и первая ячейка начинается с байта 3164. Первая переменная декодируется в 929, что является размером полезной нагрузки.Размер заголовка ячейки составляет 3 байта, включая размер полезной нагрузки, что в сумме составляет 4096 байтов.Но что если бы у меня был ap> 929?
Из приведенного описания любая полезная нагрузка, которая меньше (размер страницы - зарезервированное пространство - 35), должна умещаться на странице.Скажем, у меня есть страница размером 4 КБ с 0 зарезервированными байтовыми пространствами, тогда X равен 4096 - 35 = 4061. Что произойдет, если у меня будет размер полезной нагрузки 4000 байтов с тем же смещением 3164 для того места, где начинается ячейка?Или этот сценарий невозможен из-за того, как SQLite настраивает свои страницы?Я просто немного озадачен тем, что формула игнорирует, как фактическая ячейка может начинаться в конце страницы, поэтому не следует ли нам также учитывать смещение в формуле?