- 21 Oct, 2022 2 commits
-
-
Anel Husakovic authored
- Cosmetic fixes Reviewer:Brandon Nesterenko <brandon.nesterenko@mariadb.com>
-
Anel Husakovic authored
- Add `replicate_rewrite_db` status variable, that may accept comma separated key-value pairs. - Note that option `OPT_REPLICATE_REWRITE_DB` already existed in `mysqld.h` from this commit 23d8586d Reviewer:Brandon Nesterenko <brandon.nesterenko@mariadb.com>
-
- 17 Oct, 2022 10 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
- 16 Oct, 2022 3 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Hartmut Holzgraefe authored
The mysqld_multi script template used @datadir@ as default log destination, this is not the MariaDB datadir in this context though but rather the -- typically write-only -- /share dir. The correct placeholder to use here is @localstatedir@ which gets replaced with the actual MariaDB datadir Co-authored-by: Hartmut Holzgraefe <hartmut@php.net>
-
- 15 Oct, 2022 2 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
- 14 Oct, 2022 6 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
- 13 Oct, 2022 15 commits
-
-
Alexander Barkov authored
Increasing the data type from char(32) to char(64) for the following system columns: - mysql.event.collation_connection - mysql.event.db_collation - mysql.proc.collation_connection - mysql.proc.db_collation This change was forgotten during MDEV-27009. Also fixing the comment "Start/End of 10.9 tests" in ctype_utf8_uca.test to "Start/End of 10.10 tests", as MDEV-27009 was actually released in 10.10.
-
Oleg Smirnov authored
For queries like "SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_NAME='proc_name'" and "SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME='proc_name'" there is a possibility to avoid loading of the stored procedure code and parsing it to retrieve parameters. If the name of the procedure/function is specified explicitly then it is possible to filter out routines that do not match at an early stage.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
WITH_EMBEDDED_SERVER compiles the SQL parsers separately. Thanks to Vladislav Vaintroub for helping with this. Fixes up commit e05ab0cf
-
Oleg Smirnov authored
-
Rucha Deodhar authored
SELECT FROM JSON_TABLE Analysis: When fix_fields_if_needed() is called, it doesnt check if operands are valid because check_cols() is not called. So it doesn't error out and eventually crashes. Fix: Use fix_fields_if_needed_for_scalar() instead of fix_fields_if_needed(). It filters the scalar and returns the error if it occurs.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Oleg Smirnov authored
Queries to INFORMATION_SCHEMA.PARAMETERS and ROUTINES tables are always performed using full index scan of the mysql.proc primary key on fields (`db`,`name`,`type`). This can be done in a much more effective way if `db` and `name` field values can be derived from the WHERE statement, like here: SELECT * FROM INFORMATION_SCHEMA.PARAMETERS WHERE SPECIFIC_SCHEMA = 'test' AND SPECIFIC_NAME = 'my_func' or here: SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA='test' AND ROUTINE_NAME='my_func'. In such cases index range scan may be employed instead of full index scan. This commit makes the server retrieve lookup field values from the SQL statement and perform index range scan instead of full index scan if possible.
-
- 12 Oct, 2022 2 commits
-
-
Nikita Malyavin authored
See also commits aa8a31da and 64678c for a Bug #22990029 fix. In this scenario INSERT chose to check if delete unmarking is available for a just deleted record. To build an update vector, it needed to calculate the vcols as well. Since this INSERT was not IGNORE-flagged, recalculation failed. Solutiuon: temporarily set abort_on_warning=true, while calculating the column for delete-unmarked insert.
-
Nikita Malyavin authored
As of now innodb does not store trx_id for each record in secondary index. The idea behind is following: let us store only per-page max_trx_id, and delete-mark the records when they are deleted/updated. If the read starts, it rememders the lowest id of currently active transaction. Innodb refers to it as trx->read_view->m_up_limit_id. See also ReadView::open. When the page is fetched, its max_trx_id is compared to m_up_limit_id. If the value is lower, and the secondary index record is not delete-marked, then this page is just safe to read as is. Else, a clustered index could be needed ato access. See page_get_max_trx_id call in row_search_mvcc, and the corresponding switch (row_search_idx_cond_check(...)) below. Virtual columns are required to be updated in case if the record was delete-marked. The motivation behind it is documented in Row_sel_get_clust_rec_for_mysql::operator() near row_sel_sec_rec_is_for_clust_rec call. This was basically a description why virtual column computation can normally happen during SELECT, and, generally, a vcol index access. Sometimes stats tables are updated by innodb. This starts a new transaction, and it can happen that it didn't finish to the moment of SELECT execution, forcing virtual columns recomputation. If the result was a something that normally outputs a warning, like division by zero, then it could be outputted in a racy manner. The solution is to suppress the warnings when a column is computed for the described purpose. ignore_wrnings argument is added innobase_get_computed_value. Currently, it is only true for a call from row_sel_sec_rec_is_for_clust_rec.
-