Об этом проекте

rudb-compat — это комплексный тестовый стенд, предназначенный для проверки совместимости базы данных rudb с DuckDB. Он превращает заявления о совместимости в измеримые данные, выполняя дифференциальные запуски против реального бинарника DuckDB. Набор оценивает соответствие на четырёх различных уровнях: совместимость данных (точность формата хранения), совместимость запросов (покрытие диалекта SQL), совместимость API (соответствие C ABI) и совместимость экосистемы (расширения и проводной протокол). Ключевые возможности включают: - **Дифференциальное выполнение**: сравнивает результаты rudb и DuckDB на идентичных запросах для обеспечения поведенческой эквивалентности. - **Взвешенное покрытие**: использует метрики, взвешенные по частоте использования, а не просто покрытие кода, для оценки поддержки функций и операторов SQL. - **Автоматическое бисектирование**: автоматически сокращает и бисектирует сбойные запросы, чтобы выявить конкретные проходы оптимизатора или логические ошибки, вызывающие расхождения. - **Интеграция с корпусом**: запускается на официальном корпусе `sqllogictest` DuckDB, бенчмарках ClickBench и сгенерированных/метаморфических запросах для поиска граничных случаев. - **Строгий контроль версий**: обеспечивает сравнение с закреплённым хешем коммита DuckDB, а не только со строками версий, чтобы избежать дрейфа. Инструмент предназначен для разработчиков, поддерживающих rudb, чтобы отслеживать прогресс на пути к полной совместимости с DuckDB, и для пользователей, проверяющих безопасность миграции. Он работает как отдельный репозиторий, чтобы сохранять независимость от основной реализации и допускать доверенную проверку.