Поддержка YDB в SQLC: долгий путь от наивной идеи до реализации
Программный комитет ещё не принял решения по этому докладу
Целевая аудитория
Тезисы
Что делать, когда хочется использовать современный инструмент кодогенерации SQLC для работы с YDB, но он поддерживает только PostgreSQL, MySQL и SQLite? В этом докладе я расскажу трехлетнюю историю о том, как наивная идея затащить YDB в SQLC превратилась в масштабный проект по переписыванию парсера YQL с нуля.
Вы узнаете, какие технические препятствия встретились на пути — от устаревшей грамматики ANTLR v3, не способной генерировать Go-код, до отказа мейнтейнеров SQLC принимать четвертую базу данных в апстрим. Я покажу, как одна задача породила цепочку из нескольких проектов: переписывание ANTLR-грамматики YQL (PR студента на 14К строк), внедрение нового-парсера в продакшн YTSaurus, создание автодополнения для веб-интерфейса и CLI, и наконец — реализацию полноценной поддержки YDB в SQLC с генерацией кода для database/sql, нативного ydb-go-sdk.
Доклад будет полезен тем, кто сталкивается со сложными техническими проектами, требующими долгосрочного планирования и координации между разными командами. Это история о том, что иногда для решения одной задачи нужно сначала решить несколько других — и как превратить это в успешный опенсорс-проект с около-нулевыми затратами.
Руководитель команды разработки клиентских библиотек YDB, кандидат технических наук.