Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View


Categories: connectors experimental galera main
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

connectors experimental galera main
tanruixiang
MDEV-26182 Implement JSON_INTERSECT()

The idea is to have simple functions that the user can combine to produce
the exact result one wants, whether the user wants JSON object that has
common keys with another JSON object, or same key/value pair etc. So
making simpler function helps here.

We accomplish this by making three separate functions.
1) JSON_OBJECT_FILTER_KEYS(Obj, Arr_keys):
Put keys ( which are basically strings ) in hash, go over the object and
get key one by one. If the key is present in the hash,
add the key-value pair to result.

2) JSON_OBJECT_TO_ARRAY(Obj) : Create a string variable, Go over the json
object, and add each key value pair as an array into the result.

3) JSON_ARRAY_INTERSECT(arr1, arr2) :
Go over one of the json and add each item of the array
in hash (after normalizing each item). Go over the second array,
search the normalized item one by one in the hash. If item is found,
add it to the result.

Implementation Idea: Holyfoot ( Alexey Botchkov)
Author: tanruixiang and Rucha Deodhar
Sergei Golubchik
MDEV-36030 sysschema.v_privileges_by_table_by_level test fails in network sandbox with hostname set to localhost

skip the test in the unlikely case of hostname being "localhost"
Sergei Golubchik
fixes for MariaDB-connect-engine* rpms

* don't introduce random four-space-gaps into the middle of description
  (meaning, nicely aligned wrapped string in the code gets ugly
  in the rpm)
* remove obsolete comment
* MariaDB-connect-engine is a required package for MariaDB-connect-engine-jdbc
  not "recommended"
* don't recommend both mariadb-java-client and mysql-connector-java
* in fact, don't recommend anything, it works badly for old rpm < 4.13,
  installs something that user may not want, and install redundand deps.
  Let's rethink how to do it meaningfully. And not break tests.

followup for 7ba9c7fb84b
Lawrin Novitsky
Fix of error in connstring in actions on MacOS

Fixed some testcases(merged from 3.2 and new fix).
Added output of additional debug info to actions config and to failing
tests.
Dmitry Shulga
MDEV-5816: Stored programs: validation of stored program statements

Added mtr tests for MDEV-5816
Georg Richter
Test windows msi
Sergei Golubchik
MDEV-26182 fixes for --ps

* invoke parent's cleanup()
* don't reinit memroot, if already inited (causes memory leak)

also move free_root() from destructor to cleanup() to not accumulate
allocations from prepare and multiple executes
Dmitry Shulga
MDEV-5816: Stored programs: validation of stored program statements

The follow-up patch to check in mtr tests that recompilation of
a SP's instruction doesn't lead to eviction of SP from sp_cache.

This patch adds the debug keyword 'check_sp_cache_not_invalidated'
checked in sp_cache_flush_obsolete. In case this debug keyword
is set the macros DBUG_SUICIDE() called to cause test failure.

The function sp_cache_flush_obsolete() is called on opening
a stored routine. So setting this keyword before second execution
of some stored routine that supposed to cause recompilation of
SP's statement will guarantee that this stored routing not evicted
from sp_cache.

Suggested approach has one limitation - the statement
CREATE/ALTER/DROP VIEW
forces invalidation of the whole sp_cache (by invoking the function
sp_cache_invalidate()).
So, for those tests (actually, there are very small number of such tests)
that create/alter/drop a view before the second execution of some stored
routine, the debug keyword 'check_sp_cache_not_invalidated' isn't set.

The proposal to add some way a check that a stored routine is not force out
from sp_cache on re-parsing a failing statement of a stored routine was
done during reiew, that is the reason the proposed change has been formatted
as a separate patch.
Thirunarayanan Balathandayuthapani
MDEV-14795 InnoDB system tablespace cannot be shrunk

- Patch does shrinking the system tablespace during startup
process. Steps for shrinking the system tablespace:

1) Find the last used extent in the system tablespace
by iterating through the BITMAP in extent descriptor page

2) Check whether tablespace is being used within fixed size
and If the last used extent is lesser than fixed size then
set the desired target size to fixed size

3) Flush all the pages belong to system tablespace in flush list

4) Truncate the truncated pages from FSP_FREE and FSP_FREE_FRAG list

5) Reset the bitmap in descriptor pages for the truncated pages

6) Update the FSP_SIZE and FSP_FREE_LIMIT in header page

7) In case of multiple files, calculate the truncated last
file size and do the truncation in last file

- recv_sys_t::apply(): Handle the truncation of the system
tablespace only if we have recv_size of tablespace exists
Nikita Malyavin
cleanup: add Field::store_yesno
Thirunarayanan Balathandayuthapani
MDEV-31442 page_cleaner thread aborts while releasing the tablespace

After further I/O on a tablespace has been stopped
(for example due to DROP TABLE or an operation that
rebuilds a table), page cleaner thread tries to
flush the pending writes for the tablespace and
releases the tablespace reference even though it was not
acquired.

fil_space_t::flush(): Don't release the tablespace when it is
being stopped and closed

Thanks to Marko Mäkelä for suggesting this patch.
Sergei Golubchik
MDEV-37088 main.information_schema_db test fails in Gentoo network sandbox

skip the test in the unlikely case of hostname being "localhost"
Yuchen Pei
MDEV-15935 Adding global/session system var redirect_url

Adding a global/session var `redirect_url' of string type. The initial
value is empty. Can be supplied in mysqld with --redirect-url or set
in --init-connect. A valid redirect_url should be of the format

{mysql,mariadb}://host[:port]

where <host> is an arbitrary string not containing colons, and <port>
is a number between 0 and 65535 inclusive.

The variable will be used by the server to notify clients that they
should connect to another server, specified by the value of the
variable, if not empty.

The notification is done by the inclusion of the variable in
session_track_system_variable.
Sergei Golubchik
MDEV-9069 extend AES_ENCRYPT() and AES_DECRYPT() to support IV and the algorithm

AES_ENCRYPT(str, key, [, iv [, mode ]])
AES_DECRYPT(str, key, [, iv [, mode ]])

mode is aes-{128,192,256}-{ecb,cbc,ctr} e.g. "aes-128-cbc".

and a @@block_encryption_mode variable for the default value of mode

change in behavior: AES_ENCRYPT(str, key) can no longer
be used in persistent virtual columns (and alike)
Yuchen Pei
MDEV-28856 Add remaining Spider table options

MDEV-27106 added REMOTE_TABLE, REMOTE_DATABASE, REMOTE_SERVER spider
table options. In this commit, we add all remaining options for table
params that are not marked to be deprecated.

All these options are parsed as strings from sql statements and have
string values at the sql level, so that we can determine whether it is
specified by checking its nullness.

The string values are further parsed by Spider into their actual types
in the SPIDER_SHARE, including string list, bounded nonnegative int,
bounded nonnegative int list, nonnegative longlong, boolean, and key
hints. Except for string lists, all other types are validated during
this parsing process.

Most of the options are backward compatible, i.e. they accept any
values that is accepted by there corresponding param parser. The only
exception is the index hint IDX which corresponds to the idxNNN param
name. For example,

'idx000 "f PRIMARY", idx001 "u k1"'

translates to

IDX="f PRIMARY u k1".

We include a test with all options specified, and tests involving
spider table options of all actual types.

Any table options, if present, will cause comments to be ignored with
a warning. The warning can be disabled by setting a new spider
global/session system variable spider_suppress_comment_ignored_warning
to 1.

Another global/session variable introduced is spider_ignore_comments,
which if set to 1, will cause COMMENT and CONNECTION strings to be
ignored unconditionally, whether or not table options are specified.
Sergei Golubchik
Revert "MDEV-30610 Update RocksDB to v8.1.1"

Not ready yet, it fails its own test suite

This reverts commit 485c9b1fb32
Lawrin Novitsky
Fix of error in connstring in actions on MacOS

Fixed some testcases(merged from 3.2 and new fix).
Added output of additional debug info to actions config and to failing
tests.
Sergei Golubchik
auto-disable  --ssl-verify-server-cert in mariadb client, if

* --ssl-verify-server-cert was not enabled explicitly
* CA was not specified
* fingerprint was not specified
* protocol is TCP
* no password was provided

insecure passwordless logins are common in test environment, let's
not break them. practically, it hardly makes sense to have strong
MitM protection if an attacker can simply login without a password.
Dmitry Shulga
MDEV-5816: Stored programs: validation of stored program statements

Fix of existing mtr tests.
Sergei Golubchik
compilation errors on 32bit

storage/innobase/fsp/fsp0fsp.cc:3108:58: error: conversion to ‘uint16_t {aka short unsigned int}’ from ‘unsigned int’ may alter its value [-Werror=conversion]
storage/innobase/handler/handler0alter.cc:10202:25: error: conversion to ‘unsigned char:7’ from ‘ulint {aka unsigned int}’ may alter its value [-Werror=conversion]
Sergei Golubchik
MDEV-31684 post-review changes
Sergei Golubchik
MDEV-31474 KDF() function

KDF(key_str, salt [, {info | iterations} [, kdf_name [, width ]]])

kdf_name is hkdf (default) or pbkdf2_hmac.
width (in bits) can be any number divisible by 8,
by default it's taken from @@block_encryption_mode
Nikita Malyavin
MDEV-22597 Add views for periods in information_schema

Two new information_schema views are added:
* PERIOD table -- columns TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME,
  PERIOD_NAME, START_COLUMN_NAME, END_COLUMN_NAME.
* KEY_PERIOD_USAGE -- works similar to KEY_COLUMN_USAGE, but for periods.
  Columns CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME,
  TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, PERIOD_NAME

Two new columns are added to the COLUMNS view:
IS_SYSTEM_TIME_PERIOD_START, IS_SYSTEM_TIME_PERIOD_END - contain YES/NO.
Rucha Deodhar
MDEV-31684 Add timezone information to DATE_FORMAT

Before starting to go over the format string, prepare the current time
zone information incase '%z' or '%Z' is encountered.
This information can be obtained as given below:

A) If timezone is not set ( meaning we are working with system timezone):
Get the MYSQL_TIME representation for current time and GMT time using
current thread variable for timezone and timezone variable for UTC
respectively. This MYSQL_TIME variable will be used to calculate time
difference. Also convert current time in second to tm structure to
get system timezone information.

B) If timezone is set as offset:
Get timezone information using current timezone information and store
in appropriate variable.

C) If timezone is set as some place (example: Europe/Berlin)
Get timezone information by searching the timezone. During internal
timezone search, information like timeoffset from UTC and abbrevation
is stored in another relevant structure. Hence use the same information.
Sergei Golubchik
MDEV-5816: fixes for --view

view creation (that mysqltest automatically does in --view protocol)
can cause sp cache invalidation, and that will cause the test to fail
(because the test checks that invalidation did not happen).

disable view protocol in the parts of the test where this is the case
Sergei Golubchik
MDEV-37025 Incorrect error/docs for Vector column lengths (max = 65532
Sergei Golubchik
MDEV-3953 Add columns for ROWS_EXAMINED, ROWS_SENT, and ROWS_READ to I_S and processlist

Added ROWS_SENT to information_schema.processlist

This is to have the same information as Percona server (SENT_ROWS)

I also extended the display size for the columns in processlist to ensure
that most results will fit in the display size.
Sergei Golubchik
MDEV-30905 Remove old_alter_table variable
Georg Richter
github-ci: Install msi
Sergei Golubchik
fix windows packaging

followup for 7ba9c7fb84b
Sergei Golubchik
enable AES-CTR with wolfssl

apparently it works now just fine, tests don't fail anymore
Dmitry Shulga
MDEV-5816: Stored programs: validation of stored program statements

This patch is the second part of implementation for cursor's statement
re-parsing. The patch does the following changes:
  - on re-parsing a failed SP instruction that does need to get access
    to LEX a new lex is instantiated for every SP instruction except
    cursor relating SP instructions.
  - items created on re-parsing a cursor relating statement are moved
    to the free_list of sp_lex_cursor.
Yuchen Pei
cleanup: string sys_var types

Merge sys_var_charptr with sys_var_charptr_base, as well as merge
Sys_var_session_lexstring into Sys_var_lexstring. Also refactored
update methods of sys_var_charptr accordingly.

Because the class is more generic, session_update() calls
sys_var_charptr::session_update() which does not assume a buffer field
associated with THD, but instead call strdup/free, we get rid of
THD::default_master_connection_buff accordingly. This also makes THD
smaller by ~192 bytes, and there can be many thousands of concurrent
THDs.
Sergei Golubchik
cleanup: make some json* helper functions static
Rucha Deodhar
MDEV-30145: JSON_TABLE: allow to retrieve the key when iterating on JSON
objects

Idea behind implementation:
We get the json object specified by the json path. Then, transform it into
key-value pairs by going over the json. Get each key-value pair
one-by-one and return the result.
Sergei Golubchik
10.x fixes for --view and --embedded
Dmitry Shulga
MDEV-5816: Stored programs: validation of stored program statements

This patch fixes the issue with missing warnings generated on re-parsing
a failing SP instruction's statement. That is, any warning generated
on re-parsing a statement was discarded after SP instruction's a statement
has been successfully re-parsed.

The reason for discarding warnings after re-parsing is that the method
  THD::set_query_id()
called every time when a failing SP instruction re-parsed.
In result,
  Warning_info::m_warn_id != thd->query_id
and when the method
  Diagnostics_area::opt_clear_warning_info(thd->query_id)
is invoked from sp_head::execute all warnings accumulated during
execution of the current SP instruction is cleared.

So, to fix the issue invokes the method THD::set_query_id()
once per SP instruction, on its first execution. Re-parsing of failing
SP instruction and following run of it don't invoke the method
THD::set_query_id().
Sergei Golubchik
MDEV-37087 main.mariadb-import test fails in Gentoo network sandbox

skip the test in the unlikely case of hostname being "localhost"
Marko Mäkelä
WIP MDEV-32067 InnoDB linear read ahead had better be logical

The linear read-ahead (enabled by nonzero innodb_read_ahead_threshold)
only works if index leaf pages or undo log pages have been allocated
on adjacent page numbers. That is not always the case.

btr_cur_t::search_leaf(), btr_cur_t::open_leaf(): Replace
buf_read_ahead_linear() with a logical read-ahead for accessing
leaf-level B-tree pages.

TODO: Instead of reading ahead up all leaf pages from the key onwards
(up to children[16] pages), try to limit the read-ahead to the range
of interest, by referring to the end_key that is passed to
handler::read_range_first().
Georg Richter
github-ci: install msi