In the case of loose scan used as input for order by, end_send()
didn't detect correctly that a loose scan was used, and didn't copy
the non-aggregated fields from the temp table used for ORDER BY.
The fix uses the fact that the quick select used for sorting is
attached to JOIN::pre_sort_join_tab instead of JOIN::join_tab.
Backport the fix olav.sandstaa@sun.com-20101102184747-qfuntqwj021imy9r:
"Fix for Bug#52660 Perf. regr. using ICP for MyISAM on range queries on an index containing TEXT"
(together with further fixes in that code) into MyISAM and Aria.
Apply the patch from Patryk Pomykalski:
- create_internal_tmp_table_from_heap() will now return information whether
the last row that we tried to write was a duplicate row.
(mysql-5.6 also has this change)
- merge_same_index_scans() may put the same SEL_ARG tree in multiple result plans.
make it call incr_refs() on the SEL_ARG trees that it does key_or() on, because
key_or(sel_arg_tree_1, sel_arg_tree_2) call may invalidate SEL_ARG trees pointed
by sel_arg_tree_1 and sel_arg_tree_2.
When a new master is provisioned that does not have any old binlogs,
the @@gtid_slave_pos is used to know where in the GTID history the
provisioning happened. A slave is allowed to connect at the point of
this value of @@gtid_slave_pos, even if that GTID is not in the
binlogs on the new master.
The code to handle this case when the binlog on the newly provisioned
master is completely empty was just wrong (couple of typos). Clearly it
had never been tested ... :-/
When a new master is provisioned that does not have any old binlogs,
the @@gtid_slave_pos is used to know where in the GTID history the
provisioning happened. A slave is allowed to connect at the point of
this value of @@gtid_slave_pos, even if that GTID is not in the
binlogs on the new master.
But --gtid-strict-mode did not correctly handle this case. When strict
mode was enabled, an attempt to connect at the position would cause an
error about holes in the binlog, which is not correct.
This patch adds a hash of GTIDs that need to be treated specially by
GTID strict mode to deal correctly with this case.
If there is a key cache resize,a thread writing to key cache, will pause waiting until resize finishes. However this thread is won't be woken, because resize does not signaling waiters anymore. This is a regression introduced in WL#86(segmented MyISAM key cache)
The fix is to unconditionally release threads waiting on resize_queue when resize finishes, as in pre-WL#86 code.
added:
storage/connect/mysql-test/connect/r/mul.result
storage/connect/mysql-test/connect/t/mul.test
modified:
storage/connect/domdoc.h
storage/connect/filamfix.cpp
storage/connect/filamtxt.cpp
storage/connect/filamvct.cpp
storage/connect/fmdlex.c
storage/connect/global.h
storage/connect/ha_connect.cc
storage/connect/ha_connect.h
storage/connect/inihandl.c
storage/connect/inihandl.h
storage/connect/libdoc.cpp
storage/connect/libdoc.h
storage/connect/mycat.cc
storage/connect/myconn.cpp
storage/connect/mysql-test/connect/r/dbf.result
storage/connect/mysql-test/connect/t/odbc_sqlite3.test
storage/connect/myutil.cpp
storage/connect/odbconn.cpp
storage/connect/osutil.c
storage/connect/plgdbsem.h
storage/connect/plgdbutl.cpp
storage/connect/plgxml.h
storage/connect/plugutil.c
storage/connect/tabdos.cpp
storage/connect/tabfix.cpp
storage/connect/tabmul.cpp*
storage/connect/tabmysql.cpp
storage/connect/tabmysql.h
storage/connect/taboccur.cpp
storage/connect/taboccur.h
storage/connect/tabodbc.cpp
storage/connect/tabpivot.h
storage/connect/tabsys.cpp
storage/connect/tabtbl.cpp
storage/connect/tabtbl.h
storage/connect/tabvct.cpp
storage/connect/tabxml.cpp
storage/connect/valblk.cpp
storage/connect/value.cpp
storage/connect/xindex.cpp
pending merges:
Olivier Bertrand 2013-07-08 - Suppressing wrong code (INI tables are not...
Alexander Barkov 2013-07-08 Adding instructions on how to install sq...
Alexander Barkov 2013-07-08 Fixing some of the memory leaks in ODBCC...
Alexander Barkov 2013-07-08 Fixing a warning:
Alexander Barkov 2013-07-08 Fixing warnings:
Alexander Barkov 2013-07-08 Fixing a warning:
Alexander Barkov 2013-07-08 Fixing warnings:
Alexander Barkov 2013-07-08 Fixing a warning:
Alexander Barkov 2013-07-08 Fixing warnings:
Alexander Barkov 2013-07-08 Fixing warnings:
Alexander Barkov 2013-07-08 fixing warnings:
Alexander Barkov 2013-07-08 Fixing a typo in the previous push
Alexander Barkov 2013-07-08 fixing warnings:
Alexander Barkov 2013-07-08 Fixing the "no previous declaration for ...
Alexander Barkov 2013-07-08 Fixing numerous "variable is set but nev...
Olivier Bertrand 2013-07-06 - Remove unuseful option causing valgrin...
Olivier Bertrand 2013-07-05 - Try to fix a uninitialised valgrind wa...
Olivier Bertrand 2013-07-04 - Make sure Remark is initialised
Olivier Bertrand 2013-07-04 - Make sure Remark is initialised in ha_...
Olivier Bertrand 2013-07-03 - Makes memory check conditionally
Olivier Bertrand 2013-07-03 - Make sure result are ordered the same ...
Olivier Bertrand 2013-07-02 - Fix memory leak in libdoc.cpp in LIBXM...
Olivier Bertrand 2013-06-30 - Working on eliminating valgrind warnin...
Olivier Bertrand 2013-06-30 - Trying to get rid of some valgrind war...
Olivier Bertrand 2013-06-29 - Release storage allocated by flex
Olivier Bertrand 2013-06-29 - Add the PROFILE_End function in inihan...
Olivier Bertrand 2013-06-28 - Release memory allocated by inihandl i...
Olivier Bertrand 2013-06-26 - Trying to remove those warnings about ...
Olivier Bertrand 2013-06-26 - In connect_assisted_discovery the test...
Olivier Bertrand 2013-06-26 - Fix potential bug in MYSQLCOL::WriteCo...
Olivier Bertrand 2013-06-16 - Implemented: The use of Federated serv...
Olivier Bertrand 2013-06-14 - Add a test case for multiple tables
Olivier Bertrand 2013-06-14 - Fix regression error for multiple 2 ta...
Olivier Bertrand 2013-06-12 - To avoid crashing in debug mode, the e...
Olivier Bertrand 2013-06-12 - Suballocate filename in TDBMUL::InitFi...
Olivier Bertrand 2013-06-12 - Add trace in TDBMUL::GetMaxSize.
Olivier Bertrand 2013-06-12 - Fix MDEV-4638
Olivier Bertrand 2013-06-08 [merge] - Commit merged changes
Alexander Barkov 2013-06-08 Enabling Connect tests
Olivier Bertrand 2013-06-08 - Set timeout values in MYSQLC::Open
- no previous declaration for ‘const char* PLGtoMYSQLtype
- no previous declaration for ‘int MYSQLtoPLG(int)’
- no previous declaration for ‘char* MyDateFmt(int)’
- no previous declaration for ‘char* MyDateFmt(char*)’
- no previous declaration for ‘int MYSQLtoPLG(char*)’
- no previous declaration for ‘enum_field_types PLGtoMYSQL
modified:
storage/connect/myutil.cpp
- no previous declaration for ‘bool OcrSrcCol'
- no previous declaration for ‘bool OcrColumns'
- no previous declaration for ‘_qryres* PivotColumns'
modified:
storage/connect/ha_connect.cc
storage/connect/taboccur.h
storage/connect/tabpivot.h
- no previous declaration for ‘char* GetIni(int)’
- no previous declaration for ‘void SetTrc()’
modified:
storage/connect/plgdbsem.h
storage/connect/plgdbutl.cpp
- no previous declaration for ‘void XmlCleanupParserLib()’
- no previous declaration for ‘void CloseXML2File’
- no previous declaration for ‘void XmlInitParserLib()’
modified:
storage/connect/ha_connect.cc
storage/connect/libdoc.cpp
storage/connect/libdoc.h
storage/connect/plgdbutl.cpp