| 143 | } |
| 144 | |
| 145 | std::shared_ptr<binder::Expression> GDSFunction::bindRelOutput(const TableFuncBindInput& bindInput, |
| 146 | const std::vector<catalog::TableCatalogEntry*>& relEntries, |
| 147 | std::shared_ptr<NodeExpression> srcNode, std::shared_ptr<NodeExpression> dstNode, |
| 148 | const std::optional<std::string>& name, const std::optional<uint64_t>& yieldVariableIdx) { |
| 149 | std::string relColumnName = name.value_or(REL_COLUMN_NAME); |
| 150 | StringUtils::toLower(relColumnName); |
| 151 | if (!bindInput.yieldVariables.empty()) { |
| 152 | relColumnName = |
| 153 | bindColumnName(bindInput.yieldVariables[yieldVariableIdx.value_or(0)], relColumnName); |
| 154 | } |
| 155 | auto rel = bindInput.binder->createNonRecursiveQueryRel(relColumnName, relEntries, srcNode, |
| 156 | dstNode, RelDirectionType::SINGLE, {}); |
| 157 | bindInput.binder->addToScope(REL_COLUMN_NAME, rel); |
| 158 | return rel; |
| 159 | } |
| 160 | |
| 161 | std::shared_ptr<Expression> GDSFunction::bindNodeOutput(const TableFuncBindInput& bindInput, |
| 162 | const std::vector<TableCatalogEntry*>& nodeEntries, const std::optional<std::string>& name, |
nothing calls this directly
no test coverage detected