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
Sergei Golubchik
reject out of range rec_per_key in replay context

Index_statistics::set_avg_frequency() casts rec_per_key * 100000 to
ulonglong, which is undefined for negative or too large values.

Reject them when parsing the context.

Assisted-by: Claude:claude-5.5-opus
Oleksandr Byelkin
Merge branch 'bb-11.4-release' into bb-11.8-release
Sergei Golubchik
MDEV-41541 uninitialized memory read in optimizer replay

init all frequencies - not all of them might be present in the replay
Sergei Golubchik
disable DuckDB in the server in favor of the externally built

Fixes #6045
Sergei Golubchik
CONNECT: JSON/BSON/MongoDB discovery overflows column name and path buffers

JSONDISC::Find, BSONDISC::Find, CMGDISC::FindInDoc and JMGDISC::ColDesc
built column names and JSON paths in colname[65] and fmt[129] with
strncat() whose size argument wrapped around once the buffer was full,
or with a bare strcpy(), so long or deeply nested keys wrote past the
buffers. A top-level key of 64 characters or more was copied with
strncpy() and left colname unterminated.

Add PlugAppend() that appends with safe_strcat() and fails with
"Column name or path too long" if the result does not fit, and use
it for all these buffers.

Assisted-by: Claude:claude-opus-5-5
Yuchen Pei
MDEV-40808 Zero the new tmp TABLE_LIST struct in close_cached_connection_tables_callback

Otherwise garbage non-NULL view field would result in garbage view_db
field returned in get_db_name which would cause crash in
Lex_ident_fs::check_db_name().

If we simply initialise a NULL view field, the garbage non-NULL
derived field would cause the tables->is_anonymous_derived_table() to
return true and skip the tmp table created in
close_cached_connection_tables_callback so the open HANDLER is not
closed and `tdc_remove_table()` waits forever for the session's own
reference.
Oleksandr Byelkin
Merge branch 'bb-11.8-release' into bb-12.3-release
Sergei Golubchik
cleanup: don't malloc every single String for every single byte
Oleksandr Byelkin
Merge branch '10.11' into 11.4
Oleksandr Byelkin
Merge branch 'bb-12.3-release' into bb-13.1-release
Oleksandr Byelkin
new columnstore 25.10.8
Sergei Golubchik
MDEV-40374 I_S.metadata_lock_info shows schema/table that user has no privileges on

Apply the SHOW PROCESSLIST visibility rule: without PROCESS a user
sees only locks held by threads of the same account. That is enough
to find who blocks one's own statement in the case where the user
can KILL the blocker.

Assisted-by: Claude:claude-opus-5-5
Sergei Golubchik
replay infuses statistics into INFORMATION_SCHEMA tables

fill_schema_table_by_open() opens and closes tables in the middle of
the statement. set_statistics_for_table() in get_schema_stat_record()
infused replayed statistics into them, which then went back to the
table cache before the replay restored them, and I_S.STATISTICS
showed the replayed cardinality.

Disable the replay while I_S opens tables.

Assisted-by: Claude:claude-5.5-opus
Oleksandr Byelkin
Merge branch '13.1' into bb-13.1-release
Sergei Golubchik
MDEV-41946 CONNECT: table option value used as printf format string, crash in ha_connect::GetRealString

For partitioned tables GetRealString() and FileExists() substituted
the partition name into FILE_NAME (and other options) by passing the
option value to snprintf() as the format string.

Replace the first "%s" with the partition name and copy the rest
literally, as already done for SRCDEF.

Assisted-by: Claude:claude-opus-5-5
Oleksandr Byelkin
Merge branch '11.4' into bb-11.4-release
Sergei Golubchik
MDEV-39615 CONNECT: Privilege validation gap

A CONNECT sub-table of PROXY, TBL, XCL, OCCUR, PIVOT was opened
in-process without any privilege check, so a user with CREATE could
read and write any existing CONNECT table, including file-based ones
that otherwise require FILE.

Check privileges on the sub-table as if it were used directly instead
of the PROXY table, like in a SQL SECURITY INVOKER view: SELECT, INSERT,
SELECT+UPDATE or SELECT+DELETE depending on the mode, plus the
sub-table's own FILE privilege checks. Info commands fail silently,
as for other sub-table errors.

Non-CONNECT sub-tables are still accessed via a client connection with
the table's credentials.

Assisted-by: Claude:claude-5.5-opus
Dave Gosselin
MDEV-41746:  IN-subquery not allowed with OFFSET

Prevent OFFSET from appearing in IN, ALL, or ANY subqueries with
error ER_NOT_SUPPORTED_YET.  This mirrors how we prevent LIMIT
from appearing in similar queries.

Previously, OFFSET queries within IN-subqueries could return
wrong results if for example the OFFSET was past the end of the
table.

Also print OFFSET n ROWS when there is no FETCH clause.  Before,
view definitions and EXPLAIN EXTENDED omitted such an OFFSET.  Views
and derived tables with such an OFFSET are no longer merged into the
outer query because merging discarded the OFFSET.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Sergei Golubchik
MDEV-40730 SHOW DATABASES allows users with only GRANT OPTION privilege to read all databases names

Followup for MDEV-37951, GRANT OPTION is an *OPTION* and alone on
itself shouldn't make the table or schema visible
Sergei Golubchik
UBSAN: runtime error: downcast of address 0x7ea259447dc8 which does not point to an object of type 'Item_row'

sql/item_cmpfunc.h:1184:34: runtime error: downcast of address 0x7ea259447dc8 which does not point to an object of type 'Item_row'
sql/item_cmpfunc.cc:2083:30: runtime error: member call on address 0x7ea259447dc8 which does not point to an object of type 'Item_row'
sql/item_cmpfunc.cc:2084:29: runtime error: member call on address 0x7ea259447dc8 which does not point to an object of type 'Item_row'
sql/item_cmpfunc.cc:2125:29: runtime error: member call on address 0x7ea259447dc8 which does not point to an object of type 'Item_row'
sql/item_cmpfunc.cc:2127:35: runtime error: member call on address 0x7ea259447dc8 which does not point to an object of type 'Item_row'

Indeed, the address was pointing to an object of type 'Item_aggregate_ref'
Sergei Golubchik
MDEV-41944 CONNECT CSV discovery header overflows colname[]/len[]/typ[]/prc[]

CSVColumns() stored a column name pointer for every separator in the
header line without checking MAXCOL, so a header with more than 200
fields wrote past the end of the colname[] stack array, and the
resulting column count indexed len[], typ[], prc[] out of bounds.

Reject such headers with TOO_MANY_FIELDS, the same way data lines
are rejected.

Assisted-by: Claude:claude-opus-5-5
Sergei Golubchik
replay loses infused statistics in stored functions

Every sub-statement (stored function, trigger) replaced
thd->opt_ctx_replay, leaking the top-level one, so the top-level
tables were never restored and kept key_info->read_stats pointing
into the freed statement mem_root. Saved and infused statistics were
allocated on whatever arena was active, e.g. the stored function
execution arena, freed before the restore.

* create the replay object only for a top-level statement, and let
  sub-statements use it; restore only at the end of the top-level one
* allocate everything the replay object owns in its own MEM_ROOT
* empty the saved list after restoring

Assisted-by: Claude:claude-5.5-opus
Sergei Golubchik
compilation failure

storage/innobase/row/row0import.cc:678:17: error: conversion from 'uint32_t' {aka 'unsigned int'} to 'uint16_t' {aka 'short unsigned int'} may change value [-Werror=conversion]
  678 |                ? 0 : FSP_FLAGS_GET_ZIP_SSIZE(m_space_flags);
Sergei Golubchik
replay leaves stale index statistics after DELETE

A table can be infused twice per statement (DELETE without WHERE on an
engine without delete_all_rows() calls set_statistics_for_table() twice).
The second save holds the first infused Index_statistics as "original",
and restore_modified_table_stats() restored it last, leaving
key_info->read_stats pointing into the freed statement mem_root.

Restore in the reverse order of saving.

Assisted-by: Claude:claude-5.5-opus
Sergei Golubchik
CONNECT: CSV table discovery does not check the FILE privilege

connect_assisted_discovery() checks the FILE privilege before reading
the file for FMT, DBF, XML, INI, VEC, REST, JSON and BSON tables, but
not for CSV, so a user without FILE could make CSVColumns() open and
parse any file.

Add TAB_CSV to the list.

Assisted-by: Claude:claude-opus-5-5