Для реализации поддержки макросов был внедрен интерфейс QueryMacroHandler. Он не помечен как внутренний, так что предполагается, что я мог бы его реализовать для создания своих macro. Но мешает парсер запросов, в котором все макросы уже перечислены. А резолвятся макросы уже после того, как парсер обработает запрос. Что не позволяет добавлять новые конструкции.
Я считаю, что было бы полезным дать возможность создания собственных макро функций. Как вариант, выделить под них какое-то сочетание символов @@ например.
Я понимаю, что это очень опасный инструмент, но при грамотном его использовании он давал бы дополнительные возможности. Построить похожий механизм представляется затруднительным, поскольку требует переопределения глубокого дерева классов.