| 89 | |
| 90 | |
| 91 | void ExpressionFilter::prepared(PointTableRef table) |
| 92 | { |
| 93 | for (auto& expression: m_args->m_expressions) |
| 94 | { |
| 95 | if (!expression.valid()) |
| 96 | { |
| 97 | std::stringstream oss; |
| 98 | oss << "The expression '" << expression |
| 99 | << "' is invalid"; |
| 100 | throwError(oss.str()); |
| 101 | } |
| 102 | |
| 103 | auto status = expression.prepare(table.layout()); |
| 104 | if (!status) |
| 105 | throwError(status.what()); |
| 106 | } |
| 107 | } |
| 108 | |
| 109 | |
| 110 | bool ExpressionFilter::processOne(PointRef& point) |