Details
-
Task
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Done
Description
Development tasks:
MDEV-406 ANALYZE $stmt
MDEV-6388 ANALYZE $stmt output in the slow query log
MDEV-6382 ANALYZE $stmt and security
MDEV-6109 EXPLAIN JSON
Need to check also for
- Replication (ANALYZE may have an effect. Is it properly binlogged. Can a slave thread run ANALYZE stmt command?)
- Nested VIEWs and single-table UPDATE/DELETE (check EXPLAINs)
<spetrunia>: there was a problem with printing table names in ANALYZE
<spetrunia>: it was resolved
<spetrunia>: but I still had doubts.. so, it would be nice to make a testcase that would use nested update-able VIEW
<spetrunia>: then run EXPLAIN UPDATE/DELETE on it
<spetrunia>: then run ANALYZE UPDATE/DELETE
<spetrunia>: and check that the ouptuts match
<spetrunia>: the problem was : it used to print table aliases (as defined by the VIEW)
<spetrunia>: and not table names
<spetrunia>: or was it vice versa
<spetrunia>: anyhow, it was not what EXPLAIN printed
<spetrunia>: I don't think it's needed to spend much time on this..
<spetrunia>: create a test case; let view definitions use table aliases
<spetrunia>: which are different from the table names
<spetrunia>: if it works, ok - PS (binary protocol)
- Get testcases for
MDEV-6382 - Whether the fact that even basic statements, like "INSERT INTO tbl VALUES ('foo')" will have their "EXPLAIN" printed into the slow query log. This is a consequence of them having EXPLAINs. Do we need a feature that avoids printing 'degenerate' query plans into the slow query log?
Attachments
Issue Links
- is blocked by
-
MDEV-7024 Assertion `! is_set()' failed in Diagnostics_area::set_eof_status on executing ANALYZE SELECT via PS
-
- Closed
-
- relates to
-
MDEV-7025 ANALYZE SELECT/INSERT/UPDATE/DELETE from a view does not check access permissions on the underlying table
-
- Closed
-
-
MDEV-7027 ANALYZE SELECT/INSERT/UPDATE/DELETE from a view does not check SHOW permission on the view
-
- Closed
-
-
MDEV-7115 ANALYZE SELECT FROM empty table produces a plan which looks different from EXPLAIN
-
- Open
-
-
MDEV-7117 ANALYZE SELECT produces strange r_filtered value on a query with ORDER BY
-
- Confirmed
-
-
MDEV-7927 Server crashes in in Time_and_counter_tracker::incr_loops
-
- Closed
-
-
MDEV-8829 Assertion `0' failed in Explain_table_access::tag_to_json
-
- Closed
-
-
MDEV-8830 Weird output in the error log
-
- Closed
-
-
MDEV-406 ANALYZE $stmt
-
- Closed
-
-
MDEV-7023 Error 2027: Malformed packet and assertion `field_types == 0 || field_types[field_pos] == MYSQL_TYPE_INT24 || field_types[field_pos] == MYSQL_TYPE_LONG' failure in Protocol_text::store_long
-
- Closed
-
No obvious issues with replication.
In statement mode ANALYZE INSERT/UPDATE/DELETE is written to the binary log as is and is executed by the slave properly (of course it will cause problems on old slaves, but it's expected).
If the underlying INSERT/UPDATE/DELETE is unsafe for SBR, ANALYZE causes the warning just like the naked statement does.
In row mode the result of the underlying statement is written and replicated as row events, ANALYZE does not play a role.
In mixed mode, the format is chosen accordingly.