ConverterRule
является подклассом класса RelOptRule
.Оба эти правила используются планировщиком для преобразования выражений реляционной алгебры.ConverterRule
делает то, что указано в Javadoc, который вы указали, он конвертирует между соглашениями о вызовах.Это используется, например, для того, чтобы позволить логическим выражениям быть фактически выполненными путем назначения конкретного соглашения о вызовах, которое указывает, какая система будет фактически выполнять запрос.
Правила могут делать много других вещей, помимо соглашений преобразования.Например, правило может принять решение об обмене порядка Filter
и Project
узлов.На самом деле все, что делает правило, это сопоставляет поддерево выражения реляционной алгебры и заменяет его другим поддеревом.