- 20 Apr, 2016 1 commit
-
-
Igor Babaev authored
When the specification of a WITH table referred to a view that used a based table with the same name as the WITH table the server went into an infinite loop because it erroneously resolved the reference to the base table as the reference to the WITH table. With tables used in a view cannot be searched for beyond the scope the view.
-
- 17 Apr, 2016 1 commit
-
-
Sergei Petrunia authored
The issues themselves were fixed as part of MDEV-8646
-
- 16 Apr, 2016 2 commits
-
-
Sergei Petrunia authored
-
Sergei Petrunia authored
When join output is just one row, we still need to compute window function values for it. We could skip invoking filesort for it, but it doesn't seem to be worth it to do such optimization.
-
- 15 Apr, 2016 2 commits
-
-
Sergei Petrunia authored
Make Frame_range_current_row_bottom to take into account partition bounds. Other partition bounds that could potentially hit the end of partition are Frame_range_n_bottom, Frame_n_rows_following, Frame_unbounded_following, and they all had end-of-partition protection. To simplify the code, factored out end-of-partition checks into class Partition_read_cursor.
-
Sergei Petrunia authored
-
- 14 Apr, 2016 2 commits
-
-
Igor Babaev authored
-
Igor Babaev authored
This bug revealed a serious problem: if the same partition list was used in two window specifications then the temporary table created to calculate window functions contained fields for two identical partitions. This problem was fixed as well.
-
- 13 Apr, 2016 2 commits
-
-
Vicențiu Ciorbaru authored
Don't hold a separate pointer as args[0] changes during fix_fields / split_sum_func.
-
Vicențiu Ciorbaru authored
When ordering by a column and partitioning by another, we must reset the peer_tracker for dense_rank, regardless if the value for the order column changes or not. Example: select a, b, dense_rank() over (partition by b order by a) a | b | dense_rank ---------------------- 1 | p1 | 1 2 | p1 | 2 2 | p2 | 1 // Here, without this fix we returned 0. 2 | p2 | 2 // And 1 here.
-
- 11 Apr, 2016 4 commits
-
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Vicențiu Ciorbaru authored
The bug was caused by a weird behaviour in test_if_group_changed, not returning true when testing for the first time after initializing the Cached_item list.
-
Sergei Petrunia authored
-
- 10 Apr, 2016 4 commits
-
-
Sergei Petrunia authored
Implement the "DISTINCT must not be converted into GROUP BY when window functions are present" part.
-
Sergei Petrunia authored
n=0 in "ROWS 0 PRECEDING" is valid, add handling for it: - Adjust the assert - Bottom bound of 'ROW 0 PRECEDING' is actually looking at the current row, that is, it needs to process partition's first row directly in Frame_n_rows_preceding::next_partition(). - Added testcases
-
Sergei Petrunia authored
-
Sergei Petrunia authored
Window functions need to have their own column in the work (temp) table, like aggregate functions do. They don't need val_int() -> val_int_result() conversion though, so they should be wrapped with Item_direct_ref, not Item_aggregate_ref.
-
- 09 Apr, 2016 1 commit
-
-
Sergei Petrunia authored
-
- 08 Apr, 2016 5 commits
-
-
Sergei Petrunia authored
-
Alexander Barkov authored
individual records when displaying diff.
-
Alexander Barkov authored
Adding tests for the sequence 0xEE5C5C which should be treated in GBK context as GBK double-byte character 0xEE5C (with 5C in the second byte) followed by 0x5C (as a normal REVERSE SOLIDUS).
-
Alexander Barkov authored
-
Sergei Petrunia authored
- When window functions are present, JOIN::simple_order should be set to FALSE. (Otherwise, the optimizer may attempt to do a "pre-sorting" on the first join_tab. Which can work in some cases, but generally isn't) - filesort tries to only read table fields that it requires. Window function requires its temp.table field. In order to pass this info to filesort, added an implementation of Item_window_func:: register_field_in_read_map.
-
- 07 Apr, 2016 6 commits
-
-
Alexander Barkov authored
-
Michael Widenius authored
-
Michael Widenius authored
deciced to use it even before bootstrap.
-
Alexander Barkov authored
-
Alexander Barkov authored
"LOAD DATA INFILE" with various command line and CHARACTER SET clause options.
-
Alexander Barkov authored
export with SELECT INTO OUTFILE followed by import with LOAD DATA INFILE, with various command line --default-character-set=xxx and "CHARACTER SET xxx" clause combinations.
-
- 06 Apr, 2016 10 commits
-
-
Sergei Petrunia authored
- Make Window Functions errors use the MariaDB's extra error range. - Fix a trivial bug in check_error_mesg
-
Sergei Petrunia authored
" The sort order for the sub-sequence of window functions starting from the element marked by SORTORDER_CHANGE_FLAG up to the next element marked by SORTORDER_CHANGE_FLAG must be taken from the last element of the sub-sequence (not from the first one)."
-
Sergei Petrunia authored
- Move filesort's sort_positions argument into class Filesort. - Make window function code construct Filesort with sort_positions=true.
-
Sergei Petrunia authored
length is now calculated in Filesort::make_sortorder.
-
Sergei Petrunia authored
As discussed on the call: - s/Window_funcs_computation_step/Window_funcs_computation/g - s/Window_func_sort/Window_funcs_sort/g
-
Sergei Petrunia authored
-
Sergei Petrunia authored
-
Vicențiu Ciorbaru authored
-
Alexander Barkov authored
- Moving the new my_charlen()-based code handling multi-byte characters from READ_INFO::field_field() to a new method READ_INFO::read_mbtail() - Reusing read_mbtail() in READ_INFO::read_value(), instead of the old my_mbcharlen()-based code which did not catch broken byte sequences
-
Alexander Barkov authored
-