| 658 | } |
| 659 | |
| 660 | AttributeTrail OptimizedSelectImpl::GetAttributeTrail( |
| 661 | const AttributeTrail& operand_trail) const { |
| 662 | if (operand_trail.empty()) { |
| 663 | return AttributeTrail(); |
| 664 | } |
| 665 | std::vector<AttributeQualifier> qualifiers = std::vector<AttributeQualifier>( |
| 666 | operand_trail.attribute().qualifier_path().begin(), |
| 667 | operand_trail.attribute().qualifier_path().end()); |
| 668 | qualifiers.reserve(qualifiers_.size() + qualifiers.size()); |
| 669 | absl::c_copy(qualifiers_, std::back_inserter(qualifiers)); |
| 670 | return AttributeTrail( |
| 671 | Attribute(std::string(operand_trail.attribute().variable_name()), |
| 672 | std::move(qualifiers))); |
| 673 | } |
| 674 | |
| 675 | class StackMachineImpl : public ExpressionStepBase { |
| 676 | public: |
no test coverage detected