| 43 | } |
| 44 | |
| 45 | std::unique_ptr<UpdatingClause> Transformer::transformSet(CypherParser::OC_SetContext& ctx) { |
| 46 | auto setClause = std::make_unique<SetClause>(); |
| 47 | if (ctx.iC_Properties()) { |
| 48 | auto child = transformAtom(*ctx.oC_Atom()); |
| 49 | for (auto i = 0u; i < ctx.iC_Properties()->oC_PropertyKeyName().size(); ++i) { |
| 50 | auto propertyKeyName = createPropertyExpression( |
| 51 | *ctx.iC_Properties()->oC_PropertyKeyName(i), child->copy()); |
| 52 | auto expression = transformExpression(*ctx.iC_Properties()->oC_Expression(i)); |
| 53 | setClause->addSetItem(make_pair(std::move(propertyKeyName), std::move(expression))); |
| 54 | } |
| 55 | } else { |
| 56 | for (auto& setItem : ctx.oC_SetItem()) { |
| 57 | setClause->addSetItem(transformSetItem(*setItem)); |
| 58 | } |
| 59 | } |
| 60 | return setClause; |
| 61 | } |
| 62 | |
| 63 | parsed_expr_pair Transformer::transformSetItem(CypherParser::OC_SetItemContext& ctx) { |
| 64 | return make_pair(transformProperty(*ctx.oC_PropertyExpression()), |
nothing calls this directly
no test coverage detected