- 13 Mar, 2016 1 commit
-
-
Sergei Petrunia authored
Add support for "RANGE n PRECEDING|FOLLOWING" frame bounds. - n is currently limited to whatever Item and Item_sum_plus/minus can handle (i.e. no DATETIME intervals). - Didn't check NULL value handling yet.
-
- 11 Mar, 2016 3 commits
-
-
Sergei Petrunia authored
-
Sergei Petrunia authored
Also added win_bit.result (result values checked)
-
Sergei Petrunia authored
Part#2: Fix a couple more issues in rows-type frames. This also has a code cleanup: - introduce a separate Frame_rows_current_row_(top,bottom). This is is a special case which doesn't need its cursor or partition bound check - Split Frame_n_rows into = Frame_n_rows_preceding (this one is now much simpler) = Frame_n_rows_following (simpler and works but may need some work still)
-
- 10 Mar, 2016 1 commit
-
-
Sergei Petrunia authored
Part#1: Frame_n_rows::next_partition() should not assume that the current table->record[0] points to the first row in the partition. Since cursor supports move_to() operation, we dont need this.
-
- 07 Mar, 2016 3 commits
-
-
Vicențiu Ciorbaru authored
The results for this test case are blocked by MDEV-9695.
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
- 06 Mar, 2016 2 commits
-
-
Sergei Petrunia authored
Add testcases for RANGE UNBOUNDED PRECEDING|FOLLOWING
-
Sergei Petrunia authored
Support RANGE ... CURRENT ROW as frame's first and second bound.
-
- 03 Mar, 2016 2 commits
-
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
- 02 Mar, 2016 3 commits
-
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
- 01 Mar, 2016 1 commit
-
-
Sergei Petrunia authored
Introduce explicitly-defined cursors. - Rowid_seq_cursor just reads the rowid sequence - Table_read_cursor also reads rows for the rowids - Also, we need a kind of cursor that stops at partition boundary?
-
- 27 Feb, 2016 1 commit
-
-
Sergei Petrunia authored
... into Frame_unbounded_preceding and Frame_unbounded_following
-
- 25 Feb, 2016 1 commit
-
-
Sergei Petrunia authored
- Item_sum_count::remove() should check if the argument's value is NULL. - Window Function item must have its Item_window_func::split_sum_func called, - and it must call split_sum_func for aggregate's arguments (see the comment near Item_window_func::split_sum_func for explanation why)
-
- 20 Feb, 2016 1 commit
-
-
Igor Babaev authored
Resolved window names. Checked some constraints for window frames. Added test cases for window name resolution.
-
- 17 Feb, 2016 1 commit
-
-
Sergei Petrunia authored
- Add temporary code: clone_read_record() clones READ_RECORD structure, as long as it is used for reading filesort() result that fits into memory. - Add frame bounds for ROWS-type frames. ROWS n PRECEDING|FOLLOWING, ROWS UNBOUNDED PRECEDING|FOLLOWING, CURRENT ROW are supported. - Add Item_sum_count::remove() which allows "streaming" computation of COUNT() over a moving frame.
-
- 15 Feb, 2016 5 commits
-
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Sergei Petrunia authored
- Make queries that use multiple window functions not to leak memory - Code cleanup in sql_window.cc
-
Sergei Petrunia authored
-
Sergei Petrunia authored
These do not have any meaning after MDEV-8646. Their only valid values are - table_access_tabs= join_tab; - top_table_access_tabs_count= top_join_tab_count;
-
- 14 Feb, 2016 11 commits
-
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Sergei Petrunia authored
Disable the code that attempts to group window functions together by their PARTITION BY / ORDER BY clauses, because 1. It doesn't work: when I issue a query with just one window function, and no indexes on the table, filesort is not invoked at all. 2. It is not possible to check that it works currently. Add my own code that does invoke filesort() for each window function. - Hopefully the sort criteria is right - Debugging shows that filesort operates on {sort_key, rowid} pairs (OK) - We can read the filesort rowid result in order.
-
Sergei Petrunia authored
a separate function, JOIN::process_window_functions().
-
Sergei Petrunia authored
-
Vicențiu Ciorbaru authored
-
- 13 Feb, 2016 3 commits
-
-
Sergei Petrunia authored
Debug printout should not attempt to print Ref_ptr_array value as %p.
-
Sergei Petrunia authored
"Distinct" optimization is not used by this query (both in this tree and in mainline 10.2). Verified this in debugger.
-
Igor Babaev authored
- All parsing problems look like resolved - Stub performing name resolution of window functions in simplest queries has been added.
-
- 09 Feb, 2016 1 commit
-
-
Igor Babaev authored
"Re-factor the code for post-join operations". The patch mainly contains the code ported from mysql-5.6 and created for two essential architectural changes: 1. WL#5558: Resolve ORDER BY execution method at the optimization stage 2. WL#6071: Inline tmp tables into the nested loops algorithm The first task was implemented for mysql-5.6 by Ole John Aske. It allows to make all decisions on ORDER BY operation at the optimization stage. The second task implemented for mysql-5.6 by Evgeny Potemkin adds JOIN_TAB nodes for post-join operations that require temporary tables. It allows to execute these operations within the nested loops algorithm that used to be used before this task only for join queries. Besides these task moves all planning on the execution of these operations from the execution phase to the optimization phase. Some other re-factoring changes of mysql-5.6 were pulled in, mainly because it was easier to pull them in than roll them back. In particular all changes concerning Ref_ptr_array were incorporated. The port required some changes in the MariaDB code that concerned the functionality of EXPLAIN and ANALYZE. This was done mainly by Sergey Petrunia.
-