Commit graph

194550 commits

Author SHA1 Message Date
Sergei Golubchik
e0b4db5ba3 MDEV-29750 triggers can modify history
should be the same behavior as for virtual columns:
* a warning on every inserted row
* silently ignored in a trigger
2022-10-16 01:24:30 +02:00
Oleksandr Byelkin
6b8c43baac Merge branch '10.4' into 10.5 2022-10-14 12:28:32 +02:00
Oleksandr Byelkin
2a62e61511 Merge branch 'bb-10.5-vp-MDEV-27691' into 10.5 2022-10-14 12:25:11 +02:00
Marko Mäkelä
78030b67b9 Do not use C++11 before MariaDB 10.4
This fixes up 3d9b350a9c
2022-10-14 11:54:05 +03:00
Oleksandr Byelkin
291872ec82 Merge branch '10.3' into 10.4 2022-10-14 10:26:22 +02:00
Marko Mäkelä
3d9b350a9c Fix clang -Wunused-but-set-variable 2022-10-14 11:00:34 +03:00
Oleksandr Byelkin
7cad2e94b1 Merge branch 'bb-10.4-vp-MDEV-27691' into 10.4 2022-10-14 09:04:54 +02:00
Oleksandr Byelkin
0cddb1ac99 v5.5.1-stable 2022-10-14 08:33:15 +02:00
Oleksandr Byelkin
89e3815b39 Merge branch 'bb-10.3-vp-MDEV-27691' into 10.3 2022-10-14 08:29:11 +02:00
Marko Mäkelä
66e44afd94 Merge 10.4 into 10.5 2022-10-13 17:05:30 +03:00
Marko Mäkelä
f404911557 Merge 10.3 into 10.4 2022-10-13 16:50:26 +03:00
Marko Mäkelä
1f5615360c Silence clang 13 -Wunused-but-set-variable
WITH_EMBEDDED_SERVER compiles the SQL parsers separately.
Thanks to Vladislav Vaintroub for helping with this.

Fixes up commit e05ab0cfc5
2022-10-13 14:43:35 +03:00
Nikita Malyavin
128356b4b1 MDEV-29753 An error is wrongly reported during INSERT with vcol index
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.
2022-10-12 20:49:45 +03:00
Nikita Malyavin
3cd2c1e8b6 MDEV-29299 SELECT from table with vcol index reports warning
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.
2022-10-12 20:49:45 +03:00
Jan Lindström
5fffdbc8d5 Fixes after 10.4 --> 10.5 merge
* MDEV-29142 : Ignore inconsistency warning as we kill cluster
* galera_parallel_apply_3nodes : Disabled because it is unstable
* MDEV-26597 : Add missing code
* galera_sr.galera_sr_ws_size2 : Remove incorrect assertion
2022-10-12 12:11:28 +03:00
Marko Mäkelä
977c385df3 Merge 10.4 into 10.5 2022-10-12 11:29:32 +03:00
Vladislav Vaintroub
4fec99a2ba MDEV-29102 system_time_zone is incorrect on Windows when TZ is set
MDEV-19243 introduced a regression on Windows.

In (supposedly rare) case, where environment variable TZ was set,
@@system_time_zone no longer derives from TZ. Instead, it incorrecty
refers to system default time zone, eventhough UTC time conversion
takes TZ into account.

The fix is to restore TZ-aware handling (timezone name derives from
tzname), if TZ is set.
2022-10-11 07:53:52 -07:00
Sergei Golubchik
2aab7f2d0a MDEV-26597 post-fix: cannot add new error messages in 10.4
followup for e8acec8974
2022-10-11 16:20:22 +02:00
Marko Mäkelä
d0c4526ece MDEV-20760 fixup: clang -Winconsistent-missing-override 2022-10-11 15:37:17 +03:00
Marko Mäkelä
2f1a4328cb MDEV-29613 fixup: clang -Wunused-but-set-variable 2022-10-11 15:36:24 +03:00
Marko Mäkelä
7434eb566e Merge 10.3 into 10.4 2022-10-11 15:18:49 +03:00
Marko Mäkelä
e8101a4d03 MDEV-19455/MDEV-29342 fixup: Avoid DEBUG_DBUG=-d,... 2022-10-11 13:56:47 +03:00
Zhibo Zhang
7a28c82dcd
MDEV-29183: Clarify mysqlbinlog command description (#2245)
The statement 'Verify checksum binlog events.' is confusing. Fix word order to make it clear.
2022-10-11 11:40:50 +01:00
Julius Goryavsky
c49ebd2622 MDEV-21905: Galera test galera_var_notify_cmd causes hang
The problem is related to performing operations without switching
wsrep off, this commit fixes this and allows disabled tests.
2022-10-11 10:15:09 +02:00
Julius Goryavsky
3f5b03c415 MDEV-21905: Galera test galera_var_notify_cmd causes hang
The problem is related to performing operations without switching
wsrep off, this commit fixes this and allows disabled tests.
2022-10-11 08:37:13 +02:00
Alexander Barkov
3416315407 A followup for MDEV-29672 Add MTR tests covering key and key segment flags and types
Adding debug output for key and keyseg flags at ha_myisam::open() time.
So now there are three points of debug output:

1. In the very end of mysql_prepare_create_table()
2. In ha_myisam::create(), after the table2myisam() call
3. In ha_myisan::open(), after the mi_open() call

mi_create(), which is is called between 2 and 3, modifies flags for
some data types, so the output in 2 and 3 is different.
2022-10-10 14:10:48 +04:00
Marko Mäkelä
e05ab0cfc5 Silence clang 13 -Wunused-but-set-variable for Bison 2022-10-10 09:36:43 +03:00
Marko Mäkelä
56b97ca03a MDEV-29742 heap number overflow
A previous fix in commit efd8af535a
failed to cover ALTER TABLE.

PageBulk::isSpaceAvailable(): Check for record heap number overflow.
2022-10-10 09:12:55 +03:00
Anel Husakovic
602124bb3b Remove redudant defines USE_MB and USE_MB_IDENT
Reviewer: <wlad@mariadb.com>
2022-10-09 17:33:07 +02:00
Jan Lindström
f6f9b7fc89 MDEV-29707 : Incorrect/bad errno on enabling wsrep_on after setting dummy wsrep_provider on non-Galera build
Fix error message to contain correct errno. This commit was
tested interactively because mtr will notice if you provide
wrong wsrep_provider in config and you may not change
wsrep_provider dynamically.
2022-10-09 10:09:47 +03:00
Jan Lindström
0908a049f8 MDEV-25389 : Assertion `!is_thread_specific || (mysqld_server_initialized && thd)' failed in void my_malloc_size_cb_func(long long int, my_bool)
If wsrep slave thread creation fails for some reason we need to handle
this error correctly and set actual running slave threads accordingly.
2022-10-09 10:09:47 +03:00
Jan Lindström
e8acec8974 MDEV-26597 : Assertion `!wsrep_has_changes(thd) || (thd->lex->sql_command == SQLCOM_CREATE_TABLE && !thd->is_current_stmt_binlog_format_row())' failed.
If repl.max_ws_size is set too low following CREATE TABLE could fail
during commit. In this case wsrep_commit_empty should allow rolling
it back if provider state is s_aborted.

Furhermore, original ER_ERROR_DURING_COMMIT does not really tell anything
clear for user. Therefore, this commit adds a new error
ER_TOO_BIG_WRITESET. This will change some test cases output.
2022-10-09 10:09:47 +03:00
Jan Lindström
ab3ec013c4 MDEV-27123 : auto_increment_increment and auto_increment_offset reset to 1 in current session after alter table on auto-increment column
Problem was that in ALTER TABLE execution variables were set
to 1 even when wsrep_auto_increment_control is OFF. We should
set them only when wsrep_auto_increment_control is ON.
2022-10-09 10:09:47 +03:00
Jan Lindström
7be82a1fec MDEV-29142 : Assertion `!_current_thd()' failed in void destroy_background_thd(THD*)
In test user has set WSREP_ON=OFF this causes streaming replication
recovery to fail and this caused call to unireg_abort(). However,
this call is not necessary and we can let transaction to fail. Naturally,
if real user does this he needs to bootstrap his cluster.
2022-10-09 10:09:47 +03:00
Sergei Golubchik
5f26f50020 typo fixed, followup for 3fe55fa8be 2022-10-07 15:24:02 +02:00
Sergei Golubchik
3fe55fa8be CREATE ... VALUES ... didn't require INSERT privilege 2022-10-07 14:41:03 +02:00
Marko Mäkelä
1d35ec1ae1 Mroonga: GCC 12.2.0 -Og -Wmaybe-uninitialized 2022-10-07 12:49:14 +03:00
Marko Mäkelä
4a8da624b5 Groonga: GCC 12.2.0 -Og -Wuse-after-free
This message would always have been invoked on ptr=NULL.
2022-10-07 12:48:38 +03:00
Marko Mäkelä
9fd91863e6 MDEV-29613 fixup: Mroonga -Wunused-function 2022-10-07 12:46:06 +03:00
Aleksey Midenkov
fa0cada95b MDEV-28576 RENAME COLUMN with NOCOPY algorithm leads to corrupt partitioned table
10.5 part: test cases and comments.
The code is in the merge commit 74fe1c44aa

When f.ex. table is partitioned by HASH(a) and we rename column `a' to
`b' partitioning filter stays unchanged: HASH(a). That's the wrong
behavior.

The patch updates partitioning filter in accordance to the new columns
names. That includes partition/subpartition expression and
partition/subpartition field list.
2022-10-07 00:46:38 +03:00
Aleksey Midenkov
74fe1c44aa Merge 10.4 into 10.5 2022-10-07 00:42:55 +03:00
Aleksey Midenkov
37a86b933e Merge 10.3 into 10.4 2022-10-06 23:37:42 +03:00
Jan Lindström
d099bcadc3 Test results updated. 2022-10-06 13:08:20 +03:00
Jan Lindström
09f7889b5c MDEV-29706 : SIGSEGV in wsrep_TOI_begin on non-Galera builds
Do not allow setting wsrep_on=ON if no provider is set.
2022-10-06 13:08:20 +03:00
Marko Mäkelä
5e66b63d95 MDEV-29710: Disable a timing-sensitive test on Valgrind 2022-10-06 12:33:05 +03:00
Marko Mäkelä
d766a799f4 MDEV-29508 work-around: Disable hanging test on Valgrind 2022-10-06 11:58:28 +03:00
Marko Mäkelä
8d6421aa48 MemorySanitizer: Disable tests that time out 2022-10-06 08:45:42 +03:00
Marko Mäkelä
f54bc7deb7 MDEV-29710: Disable some slow tests on Valgrind 2022-10-06 08:42:26 +03:00
Marko Mäkelä
de078e060e Merge 10.4 into 10.5 2022-10-06 08:29:56 +03:00
Marko Mäkelä
3708bef606 MDEV-27682: Temporarily disable a failing test 2022-10-06 07:40:00 +03:00