Сопоставить колонки со значениями и разобрать отказ вставки

Ответы получены от MySQL через X Protocol. Созданные программой таблицы и представления после чтения удалены.

Наблюдаемый результат программы
НаблюдениеРезультат
Строк до execute0
Добавлено строк2
Первое названиеЛампа O'Neal
Пропущенный stock получил DEFAULT0
note первой строки — NULLда
note второй строки — пустая строкада
Повтор UNIQUE sku отклонёнда
Неполная строка values отклоненада
Сохранено после отказов2
Строки и дополнительные наблюдения
{
    "stored_rows": [
        {
            "sku": "O'NEAL",
            "name": "Лампа O'Neal",
            "stock": 0,
            "note": null
        },
        {
            "sku": "CABLE",
            "name": "Кабель",
            "stock": 0,
            "note": ""
        }
    ],
    "duplicate_exception_chain": [
        {
            "class": "mysql_xdevapi\\Exception",
            "code": 10000,
            "message": "[HY000] Couldn't fetch data"
        },
        {
            "class": "mysql_xdevapi\\Exception",
            "code": 1062,
            "message": "[23000] Duplicate entry 'O'NEAL' for key 'mysql141_insert_rows_a5ad6f4e9e7d.sku'"
        }
    ],
    "wrong_row_length_exception_chain": [
        {
            "class": "mysql_xdevapi\\Exception",
            "code": 10000,
            "message": "[HY000] Couldn't fetch data"
        },
        {
            "class": "mysql_xdevapi\\Exception",
            "code": 5014,
            "message": "[HY000] Wrong number of fields in row being inserted"
        }
    ],
    "receipt_type": "mysql_xdevapi\\Result"
}

Полный JSON результата, включая реальные идентификаторы, сохранён рядом в result.json.