
Karel van der Walt
MentalArrow
Principal
16:30
31 марта
40 мин
Перевод T-SQL (MS SQL Server) в PL/pgSQL
В докладе расскажем о ручной миграции хранимых процедур и табличных функций из MS SQL Server в PL/pgSQL. Мы сознательно выбрали ручной перевод вместо использования расширений PostgreSQL с автоматической конвертацией. Причина — сложная бизнес-логика в коде T-SQL, для которой мы хотели получить чистый, читаемый PL/pgSQL-код.
В исходном T-SQL коде использовались:
- Комбинация хранимых процедур и табличных функций
- Табличные переменные и пользовательские табличные типы
- Рекурсивные Common Table Expressions (CTE)
- Опциональные параметры
Миграция потребовала:
- Приведения имен к стандартам PostgreSQL
- Переименования параметров и локальных переменных
- Маппинг табличных типов
- Маппинг табличных параметров в массивы
- Маппинг табличных возвращаемых типов в SETOF-запись
- Перевод логики между массивами и таблицами
В докладе мы пройдем путь миграции цепочки зависимых T-SQL-функций в PL/pgSQL, разберем особенности и обойдем подводные камни обоих языков