{
    "id": "pdo178-result-recovery",
    "title": "Различить пустую выборку, UPDATE и потерянную итоговую строку",
    "columns": [
        "Наблюдение",
        "Результат"
    ],
    "rows": [
        [
            "Цепочка результатов",
            "2 строки → UPDATE → 0 строк → итог 6"
        ],
        [
            "Поздний RAISERROR",
            "nextRowset: false; SQLSTATE: 00000; квитанции нет"
        ],
        [
            "Отдельный ошибочный SELECT",
            "42S22 \/ 207"
        ],
        [
            "Чтение после отказа",
            "CAB: 3; CLP: 3"
        ],
        [
            "Файл",
            "result-chain.json"
        ]
    ],
    "checks": {
        "four_distinct_results": true,
        "shape_sequence": true,
        "first_result_has_two_items": true,
        "updated_total_is_six": true,
        "normal_terminal_state": true,
        "late_first_row_received": true,
        "late_error_not_exposed": true,
        "missing_receipt_rejected": true,
        "direct_error_exposed": true,
        "connection_read_after_failure": true,
        "report_saved": true,
        "owned_objects_removed": true
    },
    "observations": {
        "normal_sets": [
            {
                "columns": 2,
                "row_count": -1,
                "rows": [
                    {
                        "sku": "CAB",
                        "qty": "2"
                    },
                    {
                        "sku": "CLP",
                        "qty": "3"
                    }
                ]
            },
            {
                "columns": 0,
                "row_count": -1,
                "rows": []
            },
            {
                "columns": 1,
                "row_count": -1,
                "rows": []
            },
            {
                "columns": 1,
                "row_count": -1,
                "rows": [
                    {
                        "total_qty": "6"
                    }
                ]
            }
        ],
        "normal_terminal_state": "00000",
        "late_first_result": [
            {
                "before_error": "1"
            }
        ],
        "late_next": false,
        "late_diagnostics": [
            "00000",
            null,
            null
        ],
        "missing_final_receipt": true,
        "direct_error": {
            "failed": true,
            "state": "42S22",
            "code": 207
        },
        "healthy_rows": [
            {
                "sku": "CAB",
                "qty": 3
            },
            {
                "sku": "CLP",
                "qty": 3
            }
        ]
    },
    "runtime": {
        "php": "8.5.11",
        "extension": "8.5.11",
        "pdo": "8.5.11",
        "driver": "odbc",
        "server_version": "16.0.1000.6",
        "client": "ODBC-Win32",
        "database": "phpmanual178",
        "transport": "local_named_pipe"
    },
    "owned_objects": [
        {
            "type": "TABLE",
            "name": "pdo178_result_chain_c89587788b2f"
        }
    ],
    "removed_objects": [
        {
            "type": "TABLE",
            "name": "pdo178_result_chain_c89587788b2f"
        }
    ]
}
