Commit graph

174632 commits

Author SHA1 Message Date
Monty
838205f0bb Fixed compiler warnings and test failures found by buildbot 2016-06-22 22:04:55 +03:00
Monty
34eb10e406 MDEV-10138 Support for decimals up to 38 digits
Decimals with float, double and decimal now works the following way:

- DECIMAL_NOT_SPECIFIED is used when declaring DECIMALS without a firm number
  of decimals.  It's only used in asserts and my_decimal_int_part.
- FLOATING_POINT_DECIMALS (31) is used to mark that a FLOAT or DOUBLE
  was defined without decimals. This is regarded as a floating point value.
- Max decimals allowed for FLOAT and DOUBLE is FLOATING_POINT_DECIMALS-1
- Clients assumes that float and double with decimals >= NOT_FIXED_DEC are
  floating point values (no decimals)
- In the .frm decimals=FLOATING_POINT_DECIMALS are used to define
  floating point for float and double (31, like before)

To ensure compatibility with old clients we do:

- When storing float and double, we change NOT_FIXED_DEC to
  FLOATING_POINT_DECIMALS.
- When creating fields from .frm we change for float and double
  FLOATING_POINT_DEC to NOT_FIXED_DEC
- When sending definition for a float/decimal field without decimals
  to the client as part of a result set we convert NOT_FIXED_DEC to
  FLOATING_POINT_DECIMALS.
- variance() and std() has changed to limit the decimals to
  FLOATING_POINT_DECIMALS -1 to not get the double converted floating point.
  (This was to preserve compatiblity)
- FLOAT and DOUBLE still have 30 as max number of decimals.

Bugs fixed:

variance() printed more decimals than we support for double values.

New behaviour:
- Strings now have 38 decimals instead of 30 when converted to decimal
- CREATE ... SELECT with a decimal with > 30 decimals will create a column
  with a smaller range than before as we are trying to preserve the number of
  decimals.


Other changes
- We are now using the obsolete bit FIELDFLAG_LEFT_FULLSCREEN to specify
  decimals > 31
- NOT_FIXED_DEC is now declared in one place
- For clients, NOT_FIXED_DEC is always 31 (to ensure compatibility).
  On the server NOT_FIXED_DEC is DECIMAL_NOT_SPECIFIED (39)
- AUTO_SEC_PART_DIGITS is taken from DECIMAL_NOT_SPECIFIED
- DOUBLE conversion functions are now using DECIMAL_NOT_SPECIFIED instead of
  NOT_FIXED_DEC
2016-06-22 22:04:55 +03:00
Monty
e4062d4d20 Fixed compiler warnings
Added my_global.h to PerconeFT to avoid "error <my_config.h> MUST be included first"
2016-06-22 22:04:55 +03:00
Sergei Golubchik
e167806196 compilation failures
windows: use GetProcAddress() to access internal server data structures
rhel5: CONNECT-JDBC requires at least Java 1.6
2016-06-22 16:12:50 +02:00
Dimitri John Ledkov
26bf066d56 MDEV-9479: Enable OQGRAPH Engine to compile with Boost-1.60+
This used to be a compile failure. The defined structure isn't required
in the later versions of boost.

Signed-off-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>
2016-06-22 16:41:38 +03:00
Vicențiu Ciorbaru
b449612907 MDEV-8638: REVOKE ALL PRIVILEGES, GRANT OPTION FROM CURRENT_ROLE breaks replication
Fix the replication failure caused by incorect initialization of
THD::invoker_host && THD::invoker_user.

Breakdown of the failure is this:
Query_log_event::host and Query_log_event::user can have their
LEX_STRING's set to length 0, but the actual str member points to
garbage. Code afterwards copies Query_log_event::host and user to
THD::invoker_host and THD::invoker_user.

Calling code for these members expects both members to be initialized.
Eg. the str member be a NULL terminated string and length have
appropriate size.
2016-06-22 16:41:38 +03:00
Igor Pashev
5fd8087590 [MDEV-9614] Roles and Users longer than 6 characters
The bug is apparent when the username is longer than the rolename.
It is caused by a simple typo that caused a memcmp call to compare a
different number of bytes than necessary.

The fix was proposed by Igor Pashev. I have reviewed it and it is the
correct approach. Test case introduced by me, using the details provided
in the MDEV.

Signed-off-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>
2016-06-22 16:41:38 +03:00
Sergei Golubchik
f9b5acfb0c Merge branch 'bb-10.0-serg' into 10.0 2016-06-22 10:54:19 +02:00
Sergei Golubchik
87da7670bd Fixed for failures in buildbot: TokuDB
disable unstable tokudb tests,
(old change that was lost in a merge)
2016-06-22 10:41:38 +02:00
Sergei Golubchik
a10fd659aa Fixed for failures in buildbot: Replication
1. remove unnecessary rpl-tokudb combination file.
2. fix rpl_ignore_table to cleanup properly (not leave test
   grants in memory)
3. check_temp_dir() is supposed to set the error in stmt_da - do
   it even when called multiple times, this fixes a crash when
   rpl.rpl_slave_load_tmpdir_not_exist is run twice.
2016-06-22 10:40:43 +02:00
Sergei Golubchik
805703fa8e Fixed for failures in buildbot: Windows
fix constants to stay 64-bit instead of being truncated by VS.
this fixes a hang on startup.
2016-06-22 10:40:28 +02:00
Sergei Golubchik
25f1a7ae69 revert part of 69f1a32
in particular, revert changes to the spider (avoid diverging from
  the upstream if possible)
2016-06-22 10:23:11 +02:00
Sergey Vojtovich
1f761c5615 MDEV-9728 - Hard crash in metadata_lock_info
Added missing target_thd initialization when processing local thread.
2016-06-21 23:34:31 +04:00
Alexander Barkov
63120090f9 MDEV-10262 ucs2_thai_520_w2: wrong implicit weights on the secondary level 2016-06-21 21:36:23 +04:00
Alexander Barkov
21479a6bb3 MDEV-9524 Cannot load from mysql.event when sql_mode is set to PAD_CHAR_TO_FULL_LENGTH
The patch fixes the problem with loading information from system tables
(e.g. event and help related tables) when PAD_CHAR_TO_FULL_LENGTH is enabled,
as well as includes some additional minor improvements:
- refactoring in get_field() to return an error rather than success
  if strmake_root() failed
- removing of duplicate code in similar functions:
  char *get_field(MEM_ROOT *mem, Field *field)
  bool get_field(MEM_ROOT *mem, Field *field, String *res)
2016-06-21 21:26:31 +04:00
Vladislav Vaintroub
69f1a3215e Replace dynamic loading of mysqld.exe data for plugins, replace with MYSQL_PLUGIN_IMPORT 2016-06-21 19:20:11 +02:00
Oleksandr Byelkin
911af69d1e MDEV-5973: MySQL Bug#11757486:49539: NON-DESCRIPTIVE ERR (ERROR 0 FROM STORAGE ENGINE) WITH MULTI-TABLE UPDATE
Condition in processing IGNORE clause for UPDATE & multi-table UPDATE made the same.
2016-06-21 18:48:14 +02:00
Sergei Golubchik
b760a69e1a Merge branch 'merge-pcre' into 10.0 2016-06-21 16:44:03 +02:00
Sergei Golubchik
1592fbd332 8.39 2016-06-21 16:02:35 +02:00
Sergei Golubchik
c84a40bf8f Merge branch 'connect/10.0' into 10.0 2016-06-21 15:57:20 +02:00
Sergei Golubchik
a69f4c783d Merge branch 'bb-10.0-serg' into 10.0 2016-06-21 15:55:37 +02:00
Sergei Golubchik
61a880d02c Merge branch 'merge-perfschema-5.6' into 10.0 2016-06-21 15:47:55 +02:00
Sergei Golubchik
b3f4cf7c13 Merge branch 'merge-xtradb-5.6' into 0.0 2016-06-21 15:27:09 +02:00
Sergey Vojtovich
8255781d9b MDEV-10258 - Valgrind warnings in buildbot after a set of mroonga tests
Fixed memory leak when mroonga fails to open index files.
Memory leak was detected by valgrind when running
mroonga/storage.repair_table_no_index_file.
2016-06-21 17:04:57 +04:00
Sergey Vojtovich
82a96926a7 MDEV-9728 - Hard crash in metadata_lock_info
metadata_lock_info plugin called MDL_context::find_ticket() to obtain lock
duration, which in turn iterates foreign thread private lists. These lists
can be updated by owner thread without protection.

Fixed by iterating threads (instead of MDL locks and tickets) and obtaining
data through APC.

Also fixed mdl_iterate_lock() to initialize iterator under prlock protection.
2016-06-21 17:04:57 +04:00
Sergey Vojtovich
15313216bf MDEV-9993 - connect.json_udf_bin valgrind warnings
"result" may be uninitialized when json_set_item() is called directly.
2016-06-21 17:04:57 +04:00
Sergei Golubchik
a79d46c3a4 Merge branch 'merge-innodb-5.6' into 10.0 2016-06-21 14:58:19 +02:00
Sergei Golubchik
51ed64a520 5.6.31 2016-06-21 14:22:52 +02:00
Sergei Golubchik
720e04ff67 5.6.31 2016-06-21 14:21:03 +02:00
Sergei Golubchik
b42664e85e 5.6.30-76.3 2016-06-21 14:20:09 +02:00
Sergei Golubchik
c081c978a2 Merge branch '5.5' into bb-10.0 2016-06-21 14:11:02 +02:00
Jan Lindström
fa10a65dc2 MDEV-9356: innodb.innodb_bug53290 fails (crashes) on sol10-64 in buildbot
Analysis: In storage/innobase/row/row0merge.cc InnoDB calls
thd_progress_init, thd_progress_report and thd_progress_end
functions. These seem to cause crash on solaris 10 64-bit.

Fix: Disable progress reporting on UNIV_SOLARIS until the
actual issue causing the crash is fixed. The actual bug
is not on InnoDB code base.
2016-06-21 12:43:46 +03:00
Jan Lindström
c3c4d55e7e Merge commit from 10.1:
commit 4165961d54
Author:	Sergei Golubchik <serg@mariadb.org>  Fri Oct 16 02:07:06 2015
Committer:	Sergei Golubchik <serg@mariadb.org>  Mon Nov 16 08:55:55 2015

disable innodb on sol10-64

because buildbot config invokes BUILD/compile-solaris-amd64
with the --extra-args=--without-plugin-innodb argument, but
BUILD/compile-solaris-amd64 doesn't take arguments and doesn't
invoke configure.pl, so this extra-args is lost.
2016-06-20 22:10:30 +03:00
Olivier Bertrand
7e64b07968 - Add column pattern and table type argument to catalog tables
modified:   storage/connect/ha_connect.cc
  modified:   storage/connect/jdbconn.cpp
  modified:   storage/connect/jdbconn.h
  modified:   storage/connect/odbccat.h
  modified:   storage/connect/odbconn.cpp
  modified:   storage/connect/tabjdbc.cpp
  modified:   storage/connect/tabjdbc.h
  modified:   storage/connect/tabodbc.cpp
  modified:   storage/connect/tabodbc.h

- Avoid longjump in AllocCatInfo functions
  modified:   storage/connect/jdbconn.cpp
  modified:   storage/connect/jdbconn.h
  modified:   storage/connect/odbconn.cpp

- Change GetColumns error return value from 0 to -1
  modified:   storage/connect/JdbcInterface.class
  modified:   storage/connect/JdbcInterface.java
2016-06-20 16:37:57 +02:00
Sergei Golubchik
a482e76e65 fix a mysql-5.5.50 merge: mysqlcheck
quote identifiers correctly
2016-06-20 16:12:54 +02:00
Olivier Bertrand
7992dae6eb Merge branch '10.1' of https://github.com/MariaDB/server into ob-10.1 2016-06-20 16:12:19 +02:00
Sergei Golubchik
95bf696d2c MDEV-9749 InnoDB receives 'Bad file descriptor' error, possibly related to feedback plugin
and
MDEV-10250 InnoDB: Error: File (unknown): 'close' returned OS error 209. Cannot continue operation"

after a failed connect() feedback plugin was continuing with the
file descriptor, trying to send the data (which failed) and
closing it at the end. Even though this fd might've been reused for
something else already.
2016-06-20 15:49:00 +02:00
Olivier Bertrand
f2dded9bac Merge branch '10.0' of https://github.com/MariaDB/server into 10.0 2016-06-20 15:26:05 +02:00
Sergey Vojtovich
7f38a070ba MDEV-10043 - main.events_restart fails sporadically in buildbot (crashes upon
shutdown)

There was race condition between shutdown thread and event worker threads.

Shutdown thread waits for thread_count to become 0 in close_connections(). It
may happen so that event worker thread was started but didn't increment
thread_count by this time. In this case shutdown thread may miss wait for this
working thread and continue deinitialization. Worker thread in turn may continue
execution and crash on deinitialized data.

Fixed by incrementing thread_count before thread is actually created like it is
done for connection threads.

Also let event scheduler not to inc/dec running threads counter for symmetry
with other "service" threads.
2016-06-20 15:17:10 +04:00
Alexander Barkov
a80dbe068c MDEV-10020 InnoDB NOT IN Query Crash When One Item Is NULL
The problem was that the loop in get_func_mm_tree()
accessed improperly initialized instances of String,
which resided in the bzero'ed part of the in_vector::base array.

Strings in in_vector::base are originally initialized
in Item_func_in::fix_length_and_dec(),
in in_vector::in_vector() using sql_calloc,
rather than using a String constructor, so their str_charset
members are originally equal to NULL.

Strings in in_vector::base are later initialized
to good values in Item_func_in::fix_length_and_dec(),
using array->set(), in this code:

      uint j=0;
      for (uint i=1 ; i < arg_count ; i++)
      {
        array->set(j,args[i]);
        if (!args[i]->null_value)                      // Skip NULL values
          j++;
        else
          have_null= 1;
      }
      if ((array->used_count= j))
        array->sort();

NULLs are not taken into account, so at the end
array->used_count can be smaller than array->count.

This patch fixes the loop in opt_range.cc, in get_func_mm_tree(),
to access only properly initialized elements in in_vector::base,
preventing access to its bzero'ed non-initialized tail.
2016-06-20 14:11:01 +04:00
Jan Lindström
70ad689b11 MDEV-8633: information_schema.index_statistics doesn't delete
item when drop table indexes or drop table;

Problem was that table and index statistics is removed from
persistent tables but not from memory cache. Added functions
to remove table and index statistics from memory cache.
2016-06-20 09:58:31 +03:00
Elena Stepanova
cc3190e367 Follow-up for MDEV-6720 (enable connection log in mysqltest by default)
Some rdiff files in storage_engine test suite need to be updated accordingly
2016-06-19 20:30:03 +03:00
Monty
61492ea5dd Reset user status after unix_socket.test
Fixed mysql-test-run failures for roles.acl_statistics
2016-06-19 15:03:13 +03:00
Alexey Botchkov
e24a183370 MDEV-9969 mysql_install_db error processing ignore_db_dirs.
test failed on Windows so fixed by testing slightly differently.
2016-06-18 10:46:55 +04:00
Daniel Bartholomew
128930c19b bump the VERSION 2016-06-17 12:39:20 -04:00
Vicențiu Ciorbaru
7ff86b4991 MDEV-10247 TokuDB assertion error when building with DEBUG
Fix the assertion failure by setting the struct to 0. This can not be
done using a macro due to different definitions of mutexes on various
OS-es.
Afterwards we call toku_mutex_init and completely initialize the locks.
2016-06-17 14:59:17 +03:00
Vicențiu Ciorbaru
12ae840375 Fix typo bug that cause myisam repair to fail
We need to return TRUE if got_error == 1, not error, which is
initialized to FALSE.
2016-06-16 22:04:24 +03:00
Vicențiu Ciorbaru
c7eef02953 Increase the number of default build thread ids possibilities
When running mysql-test-run without a parallel parameter, it might
be impossible to find a free port.
2016-06-16 22:02:45 +03:00
Vicențiu Ciorbaru
7ab7abdb51 Fix compilation failure when compiling with std=c90
Change variable declaration to be before any other statements.
2016-06-16 18:52:46 +03:00
Alexander Barkov
0a50e43e9d MDEV-9374 having '2015-01-01 01:00:00.000001' > coalesce(NULL) returns true
The problem was earlier fixed by the patch for MDEV-9521.
Adding tests only.
2016-06-16 14:57:32 +04:00