| 117 | std::vector<LogicalType>& columnTypes); |
| 118 | |
| 119 | static std::pair<ColumnEvaluateType, std::shared_ptr<Expression>> matchColumnExpression( |
| 120 | const expression_vector& columns, const PropertyDefinition& property, |
| 121 | ExpressionBinder& expressionBinder) { |
| 122 | for (auto& column : columns) { |
| 123 | if (property.getName() == column->toString()) { |
| 124 | if (column->dataType == property.getType()) { |
| 125 | return {ColumnEvaluateType::REFERENCE, column}; |
| 126 | } else { |
| 127 | return {ColumnEvaluateType::CAST, |
| 128 | expressionBinder.forceCast(column, property.getType())}; |
| 129 | } |
| 130 | } |
| 131 | } |
| 132 | return {ColumnEvaluateType::DEFAULT, expressionBinder.bindExpression(*property.defaultExpr)}; |
| 133 | } |
| 134 | |
| 135 | BoundCopyFromInfo Binder::bindCopyNodeFromInfo(std::string tableName, |
| 136 | const std::vector<PropertyDefinition>& properties, const BaseScanSource* source, |
no test coverage detected