- 20 Sep, 2022 2 commits
-
-
Marko Mäkelä authored
-
Alexander Barkov authored
-
- 19 Sep, 2022 8 commits
-
-
Andrew Hutchings authored
* MDEV-29426 Fix memory leak in CONNECT JSON/BSON If information is being gathered on JSON/BSON tables we leak the heap allocated to the table class. With this fix we close and cleanup instead, just as we do for XML tables.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The reason why mysql/mysql-server@8020cfac20c55a870a874446870d5e90bdc181ed split the files was some unit tests that never existed in the MariaDB Server code base. The storage/innobase/unittest/ works just fine with this file. This is reverting part of 2e814d47 which applied InnoDB changes from MySQL 5.7.9.
-
Marko Mäkelä authored
The futex system calls were introduced in Linux 2.6.0, which was released in December 2003. It should be safe to assume that the system calls are always available on the Linux kernels that MariaDB Server 10.3 would run on.
-
Marko Mäkelä authored
There should be no point to disable branch prediction hints or prefetch.
-
Marko Mäkelä authored
Let us use the normal platform-specific preprocessor symbols __linux__, __sun__, _AIX instead of some homebrew ones. The preprocessor symbol UNIV_HPUX must have lost its meaning by f6deb00a (note: the symbol UNIV_HPUX10 is being checked for, but only UNIV_HPUX is defined).
-
Marko Mäkelä authored
Thanks to Thirunarayanan Balathandayuthapani for spotting this.
-
Ian Gilfillan authored
-
- 15 Sep, 2022 1 commit
-
-
Vladislav Vaintroub authored
Force using english for error messages (i.e ASCII) to avoid encoding mixup.
-
- 14 Sep, 2022 9 commits
-
-
Sergei Golubchik authored
check_audit_mask(mysql_global_audit_mask, event_class_mask) is tested in mysql_audit_general_log() and then assert in mysql_audit_acquire_plugins() verifies that the condition still holds. But this code path is not protected by LOCK_audit_mask, so mysql_global_audit_mask can change its value between the if() and the assert. That is, the assert is invalid and will fire if the audit plugin is unloaded concurrently with mysql_audit_general_log(). Nothing bad will happen in this case though, we'll just do a useless loop over all remaining installed audit plugins. That is, the fix is simply to remove the assert.
-
Anel Husakovic authored
- Commit c8948b0d introduced `get_one_variable()` - updating missing argument. - Remove caller setting of empty string in `rpl_filter`, since underlying functions will do the same (commit 9584cbe7 introduced). Reviewed by: <brandon.nesterenko@mariadb.com>
-
Vicențiu Ciorbaru authored
The issue manifests due to a bug in mysql_routine_grant. This was a side effect of e46eea86 which fixed the problem of not giving appropriate error message (ER_NONEXISTING_PROC_GRANT) when a routine grant existed due to role inheritance. When granting a routine privilege, it is possible to have a GRANT_NAME entry already created from an inherited role, but with it's init_privs set to 0. In this case we must not create a *new* grant entry, but we must edit this grant entry to set its init_privs. Note that this case was already covered by MDEV-29458, however due to a forgotten "flush privileges;" the actual code path never got hit. Remove the flush privilege command as it was never intended to be there in the first place.
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
There was an issue in updating in-memory role datastructures when propagating role grants. The issue is that changing a particular role's privilege (on any privilege level, global, database, etc.) was done such that it overwrote the entire set of bits for that particular level of privileges. For example: grant select on *.* to r1 -> sets the access bits to r1 to select, regardless of what bits were present for role r1 (inherited from any other roles). Before this fix, the rights of role r1 were propagated to any roles r1 was granted to, however the propagated rights did *not* include the complete rights r1 inherited from its own grants. For example: grant r2 to r1; grant select on *.* to r2; grant insert on *.* to r1; # This command completely disregards the # select privilege from r2. In order to correct this, ensure that before rights are propagated onwards, that the current's role rights have been updated from its grants. Additionally, the patch exposed a flaw in the DROP ROLE code. When deleting a role we removed all its previous grants, but what remained was the actual links of roles granted to the dropped role. Having these links present when propagating grants meant that we would have leftover ACL_xxx entries. Ensure that the links are removed before propagating grants.
-
Vicențiu Ciorbaru authored
There was a bug in the ACL internal data structures GRANT_TABLE and GRANT_COLUMN. The semantics are: GRANT_TABLE::init_cols and GRANT_COLUMN::init_privs represent the bits that correspond to the privilege bits stored in the physical tables. The other struct members GRANT_TABLE::cols and GRANT_COLUMN::privs represent the actual access bits, as they may be modified through role grants. The error in logic was mixing the two fields and thus we ended up storing the logical access bits in the physical tables, instead of the physical (init_xxx) bits. This caused subsequent DBUG_ASSERT failures when dropping the involved roles.
-
Marko Mäkelä authored
xb_read_delta_metadata(): For ROW_FORMAT=COMPRESSED tables, initialize the info.zip_size with the physical page size and let info.page_size remain the logical page size, like xb_delta_open_matching_space() expects it to be ever since commit 0a1c3477 (MDEV-18493).
-
Thirunarayanan Balathandayuthapani authored
- innodb_sys_tablespaces view in information schema displays temporary tablespace information too.
-
Alexander Barkov authored
Recording test results according to MDEV-29446 changes: mysql-test/suite/galera/r/MDEV-25494.result mysql-test/suite/galera/r/galera_ctas.result mysql-test/suite/galera/r/galera_schema.result mysql-test/suite/galera_3nodes/r/galera_wsrep_schema.result mysql-test/suite/galera_sr/r/galera_sr_create_drop.result
-
- 13 Sep, 2022 6 commits
-
-
Sergei Golubchik authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_lift_page_up(): If the leaf page only contains a hidden metadata record for MDEV-11369 instant ADD COLUMN, convert the table to the canonical format like we are supposed to do whenever the table becomes empty.
-
Alexander Barkov authored
Recording test results according to MDEV-29446 changes: storage/rocksdb/mysql-test/rocksdb/r/use_direct_io_for_flush_and_compaction.result
-
Sergei Golubchik authored
use correct python on rocky8 and alma8
-
Marko Mäkelä authored
row_merge_read_clustered_index(): Do not call mem_heap_empty(row_heap) before row_merge_spatial_rows() has been able to read the data.
-
- 12 Sep, 2022 2 commits
-
-
Alexander Barkov authored
-
Marko Mäkelä authored
lock_place_prdt_page_lock(): Do not place locks on temporary tables. Temporary tables can only be accessed from one connection, so it does not make any sense to acquire any transactional locks on them.
-
- 08 Sep, 2022 1 commit
-
-
Vlad Lesin authored
Use suspend thread syncpoint instead of include/wait_condition.inc to make sure DELETE created waiting lock before the next UPDATE begins locking. This is backport of commit 0fa4dd07 from 10.6.
-
- 07 Sep, 2022 3 commits
-
-
Tuukka Pasanen authored
Preset include directory for configuration files below MariaDB 10.5 is /etc/mysql/conf.d Change installation location wrong plugin installation location from /etc/mysql/mariadb.d to default include directory /etc/mysql/conf.d. Change makes gssapi-server, oqgraph, rocksdb and tokudb plugins loading work after installation NOTE TO MERGERS: This commit should be upstream to MariaDB 10.4 only! Merging to MariaDB 10.5 and above leads to major problems.
-
Vladislav Vaintroub authored
Do not repeat yourself. Instead of having the same DBUG_EXECUTE_IF code in threadpool and thread-per-connection, add this code to setup_connection_thread_globals() which is executed in all scheduling modes.
-
Marko Mäkelä authored
-
- 06 Sep, 2022 1 commit
-
-
Thirunarayanan Balathandayuthapani authored
- During shutdown, InnoDB fts fails to update synced doc id when there is only one doc id about to sync. While starting the server, InnoDB fetches the already synced doc id from config table. In the subsequent sync operation, InnoDB fails with DB_DUPLICATE_KEY error.
-
- 03 Sep, 2022 2 commits
-
-
Andrei authored
The replication unsafe warning's pattern gets corrected in the punctuation part.
-
Brandon Nesterenko authored
MDEV-28530: Revoking privileges from a non-existing user on a master breaks replication on the slave in the presence of replication filters Problem: ======== Replication can break while applying a query log event if its respective command errors on the primary, but is ignored by the replication filter within Grant_tables on the replica. The bug reported by MDEV-28530 shows this with REVOKE ALL PRIVILEGES using a non-existent user. The primary will binlog the REVOKE command with an error code, and the replica will think the command executed with success because the replication filter will ignore the command while accessing the Grant_tables classes. When the replica performs an error check, it sees the difference between the error codes, and replication breaks. Solution: ======== If the replication filter check done by Grant_tables logic ignores the tables, reset thd->slave_expected_error to 0 so that Query_log_event::do_apply_event() can be made aware that the underlying query was ignored when it compares errors. Note that this bug also effects DROP USER if not all users exist in the provided list, and the patch fixes and tests this case. Reviewed By: ============ andrei.elkin@mariadb.com
-
- 01 Sep, 2022 1 commit
-
-
Nayuta Yanagisawa authored
Spider converts HA_READ_KEY_EXACT to the equality (=) in the function spider_db_append_key_where_internal() but the conversion is not necessarily correct for tables with prefix indices. We fix the bug by converting HA_READ_KEY_EXACT to 'LIKE "foo%"' when a target key is a prefix key. The fix is partly inspired by FEDERATED. See ha_federated::create_where_from_key() for more details.
-
- 31 Aug, 2022 4 commits
-
-
Marko Mäkelä authored
-
Daniele Sciascia authored
Making changes to wsrep_mysqld.h causes large parts of server code to be recompiled. The reason is that wsrep_mysqld.h is included by sql_class.h, even tough very little of wsrep_mysqld.h is needed in sql_class.h. This commit introduces a new header file, wsrep_on.h, which is meant to be included from sql_class.h, and contains only macros and variable declarations used to determine whether wsrep is enabled. Also, header wsrep.h should only contain definitions that are also used outside of sql/. Therefore, move WSREP_TO_ISOLATION* and WSREP_SYNC_WAIT macros to wsrep_mysqld.h. Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
-
Daniel Black authored
-
Daniel Black authored
-