| 74 | } |
| 75 | |
| 76 | static inline OpBase *LimitClone(const ExecutionPlan *plan, const OpBase *opBase) { |
| 77 | ASSERT(opBase->type == OPType_LIMIT); |
| 78 | |
| 79 | OpLimit *op = (OpLimit *)opBase; |
| 80 | /* Clone the limit expression stored on the ExecutionPlan, |
| 81 | * as we don't want to modify the templated ExecutionPlan |
| 82 | * (which may occur if this expression is a parameter). */ |
| 83 | AR_ExpNode *limit_exp = AR_EXP_Clone(op->limit_exp); |
| 84 | return NewLimitOp(plan, limit_exp); |
| 85 | } |
| 86 | |
| 87 | static void LimitFree(OpBase *opBase) { |
| 88 | OpLimit *op = (OpLimit *)opBase; |
nothing calls this directly
no test coverage detected