Показать размер вложения и отличить пустой файл от отсутствующего

Фактические данные получены через расширение interbase от отдельной локальной базы Firebird. Собственная учебная таблица удалена после наблюдений.

Наблюдаемый результат программы
НаблюдениеРезультат
Размер заполненного вложения, байт36
Лимит предпросмотра, байт32
Предпросмотр разрешён без отдельного скачиваниянет
Размер пустого BLOB, байт0
Пустой BLOB имеет признак isnullнет
Третий SQL-столбец равен NULLда
Числовой ключ 0 совпадает с lengthда
Содержимое вложения читалось для списканет
Строки и дополнительные наблюдения
{
    "full_blob_metadata": {
        "0": 36,
        "length": 36,
        "1": 3,
        "numseg": 3,
        "2": 13,
        "maxseg": 13,
        "3": false,
        "stream": false,
        "4": false,
        "isnull": false
    },
    "empty_blob_metadata": {
        "0": 0,
        "length": 0,
        "1": 0,
        "numseg": 0,
        "2": 0,
        "maxseg": 0,
        "3": false,
        "stream": false,
        "4": false,
        "isnull": false
    },
    "sql_null": true,
    "preview_limit_bytes": 32,
    "preview_allowed": false,
    "body_read_for_listing": false,
    "stored_blob_id_published": false,
    "subtype": "BINARY",
    "fixture_bytes": 36
}

Самостоятельный запуск создаёт result.json с данными и metrics.json с проверками рядом с example.php.