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