| 1279 | |
| 1280 | |
| 1281 | class OrderNode : public DsqlNode<OrderNode, ExprNode::TYPE_ORDER> |
| 1282 | { |
| 1283 | public: |
| 1284 | enum NullsPlacement : UCHAR |
| 1285 | { |
| 1286 | NULLS_DEFAULT, |
| 1287 | NULLS_FIRST, |
| 1288 | NULLS_LAST |
| 1289 | }; |
| 1290 | |
| 1291 | OrderNode(MemoryPool& pool, ValueExprNode* aValue); |
| 1292 | |
| 1293 | virtual void getChildren(NodeRefsHolder& holder, bool dsql) const |
| 1294 | { |
| 1295 | DsqlNode::getChildren(holder, dsql); |
| 1296 | holder.add(value); |
| 1297 | } |
| 1298 | |
| 1299 | virtual Firebird::string internalPrint(NodePrinter& printer) const; |
| 1300 | virtual OrderNode* dsqlPass(DsqlCompilerScratch* dsqlScratch); |
| 1301 | virtual bool dsqlMatch(DsqlCompilerScratch* dsqlScratch, const ExprNode* other, bool ignoreMapCast) const; |
| 1302 | |
| 1303 | public: |
| 1304 | NestConst<ValueExprNode> value; |
| 1305 | bool descending; |
| 1306 | NullsPlacement nullsPlacement; |
| 1307 | }; |
| 1308 | |
| 1309 | |
| 1310 | class WindowClause : public DsqlNode<WindowClause, ExprNode::TYPE_WINDOW_CLAUSE> |
no outgoing calls
no test coverage detected