Parse PARTITION BY subclauses of window functions.
| 2267 | |
| 2268 | // Parse PARTITION BY subclauses of window functions. |
| 2269 | void WindowSourceNode::parseLegacyPartitionBy(thread_db* tdbb, CompilerScratch* csb) |
| 2270 | { |
| 2271 | SET_TDBB(tdbb); |
| 2272 | |
| 2273 | SSHORT context; |
| 2274 | Window& window = windows.add(); |
| 2275 | window.stream = PAR_context(csb, &context); |
| 2276 | |
| 2277 | const UCHAR count = csb->csb_blr_reader.getByte(); |
| 2278 | |
| 2279 | if (count != 0) |
| 2280 | { |
| 2281 | window.group = PAR_sort_internal(tdbb, csb, false, count); |
| 2282 | window.regroup = PAR_sort_internal(tdbb, csb, false, count); |
| 2283 | } |
| 2284 | |
| 2285 | window.order = PAR_sort(tdbb, csb, blr_sort, true); |
| 2286 | window.map = parseMap(tdbb, csb, window.stream, true); |
| 2287 | window.frameExtent = WindowClause::FrameExtent::createDefault(*tdbb->getDefaultPool()); |
| 2288 | } |
| 2289 | |
| 2290 | // Parse frame subclauses of window functions. |
| 2291 | void WindowSourceNode::parseWindow(thread_db* tdbb, CompilerScratch* csb) |
no test coverage detected