| 262 | } |
| 263 | |
| 264 | static std::shared_ptr<PropertyExpression> construct(LogicalType type, |
| 265 | const std::string& propertyName, const Expression& child) { |
| 266 | DASSERT(child.expressionType == ExpressionType::PATTERN); |
| 267 | auto& patternExpr = child.constCast<NodeOrRelExpression>(); |
| 268 | auto variableName = patternExpr.getVariableName(); |
| 269 | auto uniqueName = patternExpr.getUniqueName(); |
| 270 | // Assign an invalid property id for virtual property. |
| 271 | table_id_map_t<SingleLabelPropertyInfo> infos; |
| 272 | for (auto& entry : patternExpr.getEntries()) { |
| 273 | infos.insert({entry->getTableID(), |
| 274 | SingleLabelPropertyInfo(false /* exists */, false /* isPrimaryKey */)}); |
| 275 | } |
| 276 | return std::make_unique<PropertyExpression>(std::move(type), propertyName, uniqueName, |
| 277 | variableName, std::move(infos)); |
| 278 | } |
| 279 | |
| 280 | std::shared_ptr<RelExpression> Binder::createNonRecursiveQueryRel(const std::string& parsedName, |
| 281 | const std::vector<TableCatalogEntry*>& entries, std::shared_ptr<NodeExpression> srcNode, |
no test coverage detected