inline PointerType clone_ptr( PointerType p, user_function* udf, expr::substitution_t &s ) { return static_cast<PointerType>( p->clone( udf, s ).release() ); }