It seems like the right approach is to create a new subclass of SqlSpecialOperator. What do I have to do to make sure this doesn't cause other problems?
On Thu, Jun 12, 2014 at 3:39 PM, Julian Hyde <[email protected]> wrote: > Sounds plausible. SqlBasicCall was only introduced recently, most > operators are instantiated as SqlBasicCall but some important/special > operators such as SqlOrderBy and SqlSelect only extend SqlCall. So I guess > only the common case was tested. > > If you could add a unit test it would help keep this working. > > On Jun 12, 2014, at 3:28 PM, Jacques Nadeau <[email protected]> wrote: > > > Hey Y'all, > > > > I'm trying to use SqlShuttle and seeing problems. Specifically, when > > trying to rewrite SqlOrderBy with the SqlShuttle, if the operands change > > then SqlShuttle calls SqlOrderBy.getOperator().createCall(). However, > this > > delegates SqlSpecialOperator and then to SqlOperator which creates a new > > SqlBasicCall as the replacement to SqlOrderBy. At that point, even > doing a > > simple print fails as SqlBasicCall is not an instance of SqlOrderBy. > > > > Before I try to fix, I want to make sure I'm not misinterpreting the > flow. > > > > thanks, > > Jacques > >
