creates a new valueHashJoin operation
| 229 | |
| 230 | // creates a new valueHashJoin operation |
| 231 | OpBase *NewValueHashJoin |
| 232 | ( |
| 233 | const ExecutionPlan *plan, |
| 234 | AR_ExpNode *lhs_exp, |
| 235 | AR_ExpNode *rhs_exp |
| 236 | ) { |
| 237 | OpValueHashJoin *op = rm_malloc(sizeof(OpValueHashJoin)); |
| 238 | |
| 239 | op->rhs_rec = NULL; |
| 240 | op->lhs_exp = lhs_exp; |
| 241 | op->rhs_exp = rhs_exp; |
| 242 | op->intersect_idx = -1; |
| 243 | op->cached_records = NULL; |
| 244 | op->number_of_intersections = 0; |
| 245 | |
| 246 | // set our Op operations |
| 247 | OpBase_Init((OpBase *)op, OPType_VALUE_HASH_JOIN, "Value Hash Join", |
| 248 | NULL, ValueHashJoinConsume, ValueHashJoinReset, |
| 249 | ValueHashJoinToString, ValueHashJoinClone, ValueHashJoinFree, false, |
| 250 | plan); |
| 251 | |
| 252 | op->join_value_rec_idx = OpBase_Modifies((OpBase *)op, "pivot"); |
| 253 | return (OpBase *)op; |
| 254 | } |
| 255 | |
| 256 | // Produce a record by joining |
| 257 | // records coming from the left and right hand side |
no test coverage detected