Commit graph

67654 commits

Author SHA1 Message Date
Alexander Nozdrin
9c7629fda3 Merge from mysql-5.1-bugteam. 2010-11-24 13:23:44 +03:00
Alexander Nozdrin
1e43b94c70 Merge from mysql-5.0-bugteam. 2010-11-24 13:07:37 +03:00
Alexander Nozdrin
85f855e0ed A follow-up for Bug#58340 (Remove Server GPL EXCEPTIONS-CLIENT file) -- remove all
EXCEPTIONS-CLIENT from all the places.
2010-11-24 12:53:39 +03:00
Sergey Glukhov
7bf81b15c6 5.1-bugteam->5.5-bugteam merge 2010-11-23 13:47:35 +03:00
Sergey Glukhov
cf0cc723aa Bug#56862 Execution of a query that uses index merge returns a wrong result
In case of low memory sort buffer QUICK_INDEX_MERGE_SELECT creates
temporary file where is stores row ids which meet QUICK_SELECT ranges
except of clustered pk range, clustered range is processed separately.
In init_read_record we check if temporary file is used and choose
appropriate record access method. It does not take into account that
temporary file contains partial result in case of QUICK_INDEX_MERGE_SELECT
with clustered pk range.
The fix is always to use rr_quick if QUICK_INDEX_MERGE_SELECT
with clustered pk range is used.


mysql-test/suite/innodb/r/innodb_mysql.result:
  test case
mysql-test/suite/innodb/t/innodb_mysql.test:
  test case
mysql-test/suite/innodb_plugin/r/innodb_mysql.result:
  test case
mysql-test/suite/innodb_plugin/t/innodb_mysql.test:
  test case
sql/opt_range.h:
  added new method
sql/records.cc:
  The fix is always to use rr_quick if QUICK_INDEX_MERGE_SELECT
  with clustered pk range is used.
2010-11-23 13:18:47 +03:00
Davi Arnaut
2d1d7b1323 Assorted fixes for test failures.
mysql-test/suite/sys_vars/t/shared_memory_base_name_basic.test:
  The server shared memory name is located in the server's
  temporary directory, not in the mysqltest one.
sql/sql_show.cc:
  */ ends a comment, add space to avoid problems.
2010-11-22 14:10:44 -02:00
Alexander Nozdrin
d1f6adcfc4 Merge from mysql-5.1-bugteam. 2010-11-22 18:48:25 +03:00
Alexander Nozdrin
412f11418a Merge from mysql-5.0-bugteam. 2010-11-22 16:32:59 +03:00
Alexander Nozdrin
e9cb14694e Patch for Bug#58340 (Remove Server GPL EXCEPTIONS-CLIENT file). 2010-11-22 16:27:49 +03:00
Alexander Nozdrin
c913f5bd3f Patch for Bug#58339 (Replace Server GPL README file). 2010-11-22 16:25:50 +03:00
MySQL Build Team
cc6fd0a79e merge 2010-11-22 13:58:42 +01:00
Jon Olav Hauglid
6cae1bb971 This patch fixes the bug which caused the funcs_1.storedproc
test case to give valgrind warnings.

The problem was that when comparing two MDL key buffers using
memcmp(), 1 was added to the buffer length. However, this was
no longer needed since the buffer length already included the
'\0' terminator.
2010-11-22 11:50:20 +01:00
Davi Arnaut
4901b37e8d WL#5665: Removal of the autotools-based build system
Remove some more files which are unused.


win/README:
  This information is dated and does not apply anymore.
win/create_manifest.js:
  Unused.
win/mysql_manifest.cmake:
  Unused.
2010-11-22 08:43:36 -02:00
Sunanda Menon
377c783e75 merge 2010-11-22 11:35:48 +01:00
Guilhem Bichot
96b0404940 Fix for Bug#56138 "valgrind errors about overlapping memory when double-assigning same variable",
and related small fixes.

mysql-test/t/user_var.test:
  test for bug
sql/field_conv.cc:
  From the C standard, memcpy() has undefined behaviour if to->ptr==from->ptr
sql/item_func.cc:
  In the case of BUG#56138, entry->value==ptr in which case memcpy()
  has undefined results per the C standard.
sql/sql_select.cc:
  Work around a bug in old gcc
2010-11-22 09:57:59 +01:00
Davi Arnaut
af67d8ae02 WL#5665: Removal of the autotools-based build system
Remove some more leftovers from the initial removal:

o Update relevant mentions of configure.in throughout
the source code.

o Remove win/configure.js, which at this point just
duplicates logic already present in CMake based build
system.

o Remove support files which relied on the autotools
build system. In any case, MySQL is no longer officially
supported on SCO.

o Remove files which are no longer part of the build.
2010-11-20 20:56:09 -02:00
Guilhem Bichot
8f02025b21 merge of 5.1-bugteam 2010-11-22 10:13:46 +01:00
Marc Alff
9d9699209d local merge 2010-11-21 14:32:48 +01:00
Davi Arnaut
8664de2230 WL#5665: Removal of the autotools-based build system
The autotools-based build system has been superseded and
is being removed in order to ease the maintenance burden on
developers tweaking and maintaining the build system.

In order to support tools that need to extract the server
version, a new file that (only) contains the server version,
called VERSION, is introduced. The file contents are human
and machine-readable. The format is:

MYSQL_VERSION_MAJOR=5
MYSQL_VERSION_MINOR=5
MYSQL_VERSION_PATCH=8
MYSQL_VERSION_EXTRA=-rc

The CMake based version extraction in cmake/mysql_version.cmake
is changed to extract the version from this file. The configure
to CMake wrapper is retained for backwards compatibility and to
support the BUILD/ scripts. Also, a new a makefile target
show-dist-name that prints the server version is introduced.

VERSION:
  Add top-level version file.
cmake/mysql_version.cmake:
  Get version information from the top-level VERSION file.
  Do not cache the version components (MAJOR_VERSION, etc).
  Add MYSQL_RPM_VERSION as a replacement for MYSQL_U_SCORE_VERSION.
2010-11-20 12:47:50 -02:00
Davi Arnaut
766db2b52f Merge of mysql-5.1-bugteam into mysql-5.5-bugteam. 2010-11-20 12:37:55 -02:00
Davi Arnaut
a6294cd5cb Bug#57994: Compiler flag change build error : my_redel.c
Although ICC identifies itself as GCC, even in version numbers,
it does not support the stpcpy built-in.

include/m_string.h:
  Work around ICC. Hacks...
2010-11-20 12:29:51 -02:00
Vladislav Vaintroub
4180ba3d6e avoid useless system check on Windows 2010-11-20 00:56:07 +01:00
Vladislav Vaintroub
8c2462f938 merge 2010-11-20 00:23:13 +01:00
Vladislav Vaintroub
861971428b Bug#58313: CMake stops with VS Express if -DBUILD_CONFIG=mysql_release.cmake
Bug : -DBUILD_CONFIG=mysql_release sets SIGNCODE parameter which requires 
singtool.exe (part of Windows SDK)  in order to be able to sign the binaries (
only if valid certificate is found). However singtool is not a part of the SDK shipped
with Visual Studio Express, so the build fails claiming missing singtools.exe

Fix: Do not  use SIGNCODE  wiith VC Express.

Also, fix broken nmake build (*.rc files could not be compiled due to ADD_DEFINITIONS
contaning C/C++ compiler specific flags)
2010-11-20 00:20:18 +01:00
Alexander Barkov
ba68b26ae9 Bug#58190 BETWEEN no longer uses indexes for date or datetime fields
Regression introduced by WL#2649.

Problem: queries with date/datetime columns did not use indexes:
set names non_latin1_charset;
select * from date_index_test
where date_column between '2010-09-01' and '2010-10-01';

before WL#2649 indexes worked fine because charset of 
date/datetime
columns was BINARY which always won.

Fix: testing that collation of the operation matches collation 
of the field is only needed in case of "real" string data types.
For DATE, DATETIME it's not needed.


  @ mysql-test/include/ctype_numconv.inc
  @ mysql-test/r/ctype_binary.result
  @ mysql-test/r/ctype_cp1251.result
  @ mysql-test/r/ctype_latin1.result
  @ mysql-test/r/ctype_ucs.result
  @ mysql-test/r/ctype_utf8.result
  Adding tests

  @ sql/field.h
  Adding new method Field_str::match_collation_to_optimize_range()
  for use in opt_range.cc to distinguish between
  "real string" types like CHAR, VARCHAR, TEXT
  (Field_string, Field_varstring, Field_blob)

  and "almost string" types DATE, TIME, DATETIME
  (Field_newdate, Field_datetime, Field_time, Field_timestamp)

  @ sql/opt_range.cc
  Using new method instead of checking result_type() against STRING result.

Note:

  Another part of this problem (which is not regression) 
  is submitted separately (see bug##58329).
2010-11-19 20:15:47 +03:00
Alexander Barkov
76ce2feb5f Bug#58175 xml functions read initialized bytes when conversions happen
Problem:

 nr_of_decimals could read behind the end of the buffer
 in case of a non-null-terminated string, which caused
 valgring warnings.

Fix:

  fixing nr_of_decimals not to read behind the "end" pointer.

modified:

  @ mysql-test/r/xml.result
  @ mysql-test/t/xml.test
  @ sql/item.cc
2010-11-19 18:24:29 +03:00
Georgi Kodinov
e436148143 Bug #58119: Typo in warning on log: [Warning] 'proxes_priv' entry
Fixed a typo in an error message.
2010-11-19 13:37:25 +02:00
Vladislav Vaintroub
be0ff40864 merge 2010-11-19 11:20:47 +01:00
Sunanda Menon
92db6e9af9 Bug #58227 improve error message "aio is required on Linux" 2010-11-19 10:34:22 +01:00
Dmitry Lenev
86da427a92 Fix tree name which was accidentally changed
during the merge.
2010-11-19 11:31:56 +03:00
Dmitry Lenev
df2c54f2b2 Merged recent change from mysql-5.5-bugteam into
mysql-5.5-runtime tree.
2010-11-19 10:46:50 +03:00
Dmitry Lenev
ce16c4fb3c Suppress false-positive uninitialized variable use
warnings in Event_queue::get_top_for_execution_if_time()
method which has caused -Werror build to fail.
2010-11-19 10:41:09 +03:00
Dmitry Lenev
602a22259e Fix for bug #57985 "ONLINE/FAST ALTER PARTITION can fail and
leave the table unusable".
 
Failing ALTER statement on partitioned table could have left
this table in an unusable state. This has happened in cases
when ALTER was executed using "fast" algorithm, which doesn't 
involve copying of data between old and new versions of table, 
and the resulting new table was incompatible with partitioning
function in some way.
 
The problem stems from the fact that discrepancies between new 
table definition and partitioning function are discovered only 
when the table is opened. In case of "fast" algorithm this has
happened too late during ALTER's execution, at the moment when
all changes were already done and couldn't have been reverted.
 
In the cases when "slow" algorithm, which copies data, is used 
such discrepancies are detected at the moment new table
definition is opened implicitly when new version of table is
created in storage engine. As result ALTER is aborted before 
any changes to table were done.
 
This fix tries to address this issue by ensuring that "fast"
algorithm behaves similarly to "slow" algorithm and checks
compatibility between new definition and partitioning function 
by trying to open new definition after .FRM file for it has 
been created.
 
Long term we probably should implement some way to check
compatibility between partitioning function and new table
definition which won't involve opening it, as this should
allow much cleaner fix for this problem.

mysql-test/r/partition_innodb.result:
  Added test for bug #57985 "ONLINE/FAST ALTER PARTITION can
  fail and leave the table unusable".
mysql-test/t/partition_innodb.test:
  Added test for bug #57985 "ONLINE/FAST ALTER PARTITION can
  fail and leave the table unusable".
sql/sql_table.cc:
  Ensure that in cases when .FRM for partitioned table is
  created without creating table in storage engine (e.g.
  during "fast" ALTER TABLE) we still open table definition. 
  This allows to check that definition of created table/.FRM 
  is compatible with its partitioning function.
2010-11-19 10:26:09 +03:00
Alexander Barkov
ee66d905f2 Bug#57306 SHOW PROCESSLIST does not display string literals well.
A post-patch fixing test failures on Windows.

Host name in "SHOW PROCESSLIST" is displayed with port number
for some reasons.
2010-11-19 08:33:34 +03:00
Jon Olav Hauglid
7771250d2b Merge from mysql-5.5-bugteam to mysql-5.5-runtime
No conflicts
2010-11-18 17:52:53 +01:00
Georgi Kodinov
05c9acaaf7 Bug #50021: Windows standard configuration files are showing Linux
options/settings
 
 1. Changed the default value for socket on Windows to the windows
 default
 2. Removed hard-coded trailing slashes from innodb_data_home_dir
 and innodb_log_group_name_dir.
 3. Added extra backslashes to the innodb directory example
 4. Made the tempdir platform "dependent"
 5. Fixed the comments in the .ini files
 6. Removed the tmpdir from the templates and the scripts
2010-11-18 18:02:37 +02:00
Bjorn Munch
6580097adc merge from 5.1-mtr 2010-11-19 10:29:08 +01:00
Jon Olav Hauglid
2215dc3cc1 Merge from mysql-5.5-runtime to mysql-5.5-bugteam
No conflicts
2010-11-18 16:01:58 +01:00
Alexander Barkov
a6f40e5071 Auto-merge 2010-11-18 17:10:43 +03:00
Vasil Dimov
4ea01e28d7 Merge mysql-5.1-bugteam -> mysql-5.5-bugteam (empty) 2010-11-18 16:12:13 +02:00
Alexander Barkov
185e189da3 Bug#57306 SHOW PROCESSLIST does not display string literals well.
Problem: Extended characters outside of ASCII range where not displayed
properly in SHOW PROCESSLIST, because thd_info->query was always sent as 
system_character_set (utf8). This was wrong, because query buffer
is never converted to utf8 - it is always have client character set.

Fix: sending query buffer using query character set

  @ sql/sql_class.cc
  @ sql/sql_class.h
    Introducing a new class CSET_STRING, a LEX_STRING with character set.
    Adding set_query(&CSET_STRING)
    Adding reset_query(), to use instead of set_query(0, NULL).

  @ sql/event_data_objects.cc
    Using reset_query()

  @ sql/log_event.cc
    Using reset_query()
    Adding charset argument to set_query_and_id().

  @ sql/slave.cc
    Using reset_query().

  @ sql/sp_head.cc
    Changing backing up and restore code to use CSET_STRING.

  @ sql/sql_audit.h
    Using CSET_STRING.
    In the "else" branch it's OK not to use
    global_system_variables.character_set_client.
    &my_charset_latin1, which is set in constructor, is fine
    (verified with Sergey Vojtovich).

  @ sql/sql_insert.cc
    Using set_query() with proper character set: table_name is utf8.

  @ sql/sql_parse.cc
    Adding character set argument to set_query_and_id().
    (This is the main point where thd->charset() is stored
     into thd->query_string.cs, for use in "SHOW PROCESSLIST".)
    Using reset_query().
    
  @ sql/sql_prepare.cc
    Storing client character set into thd->query_string.cs.

  @ sql/sql_show.cc
    Using CSET_STRING to fetch and send charset-aware query information
    from threads.

  @ storage/myisam/ha_myisam.cc
    Using set_query() with proper character set: table_name is utf8.

  @ mysql-test/r/show_check.result
  @ mysql-test/t/show_check.test
    Adding tests
2010-11-18 17:08:32 +03:00
Vasil Dimov
cae834561e Merge mysql-5.1-bugteam from bk-internal into my local repo 2010-11-18 16:04:53 +02:00
Vasil Dimov
c8353d51ae Merge mysql-5.5-bugteam from bk-internal into my local repo 2010-11-18 16:02:30 +02:00
Vasil Dimov
759c5b0a1f Merge mysql-5.1-bugteam -> mysql-5.5-bugteam (empty) 2010-11-18 15:48:45 +02:00
Vasil Dimov
5aa89abf59 Merge mysql-5.5-innodb -> mysql-5.5-bugteam 2010-11-18 15:47:05 +02:00
Vasil Dimov
dacd97b487 Merge mysql-5.1-innodb -> mysql-5.1-bugteam 2010-11-18 15:45:36 +02:00
Davi Arnaut
e0a17f5698 In certain phases of query processing, a interrupted error might
be sent to a user even if its the connection that is actually
being killed.
2010-11-18 11:41:08 -02:00
Alexander Barkov
eab35cc8cf Merging from mysql-5.1-bugteam. 2010-11-18 16:35:15 +03:00
Alexander Barkov
8f4af42145 Bug#57279 updatexml dies with: Assertion failed: str_arg[length] == 0
Problem: crash in Item_float constructor on DBUG_ASSERT due
to not null-terminated string parameter.

Fix: making Item_float::Item_float non-null-termintated parameter safe:
- Using temporary buffer when generating error

modified:
  @ mysql-test/r/xml.result
  @ mysql-test/t/xml.test
  @ sql/item.cc
2010-11-18 16:11:18 +03:00
Magne Mahre
54d6357837 Bug#58199 name_const in the having clause crashes
NAME_CONST(..) was used wrongly in a HAVING clause, and
should have caused a user error.  Instead, it caused a
segmentation fault.
      
During parsing, the value parameter to NAME_CONST was
specified to be an uninitialized Item_ref object (it
would be resolved later).   During the semantic analysis,
the object is tested, and since it was not initialied,
the server seg.faulted.
      
The fix is to check if the object is initialized
before testing it.  The same pattern has already been
applied to most other methods in the Item_ref class.
      
Bug was introduced by the optimization done as part of
Bug#33546.
2010-11-18 14:02:24 +01:00