The nightly scan showed the loop refactors fix the false positives for
std::vector but not for std::list/std::set, which Infer has no precise
model for. Re-add targeted @infer-ignore comments at the five surviving
sites (threadpool.h, we_chunkmanager.cpp x2, we_dctnry.cpp,
lbidresourcegraph.cpp), keeping the refactored loops.
Per review feedback, replace the @infer-ignore comments with refactors
that remove the patterns Infer trips on:
- destructor delete-loops: use range-based for
(altertable, tabledef, calpontsystemcatalog, threadpool, we_chunkmanager)
- we_dctnry freeStringCache(): iterate by const reference, dropping the
local Signature copy and its dead store
- LBIDResourceGraph::releaseResources(): scope rNode per iteration and
advance the iterator before the erase, removing the dummy_sit juggling
This patch adds logic to read block offsets of a dictionary column
from tokens in a pseudo-column. These block offsets then are used to
restore LBIDs in extent map and set proper HWM for a proper LBID.
An accompanying test tests rebuild process and integrity of the
restored data.
#1484,#1487,#1490,#1492 we_colop.cpp - dataFbo uninitialized
#1485,#1486,#1488,#1489,#1491,#1493,#1494 we_colop.cpp - dataBio uninitialized
Both are output params from calculateRowId(), but initializing to 0
ensures safety if the while loop condition changes.
#1474 we_ddlcommandproc.cpp:2064 Uninitialized Value - column.oid
#1475 we_ddlcommandproc.cpp:2253 Uninitialized Value - column.oid
#1476 we_ddlcommandproc.cpp:2684 Uninitialized Value - column.oid
#1477 we_ddlcommandproc.cpp:2713 Uninitialized Value - DctnryTuple.sigValue
#1478 we_ddlcommandproc.cpp:3842 Uninitialized Value - column.oid
#1479 we_ddlcommandproc.cpp:3943 Uninitialized Value - DctnryTuple.sigValue
Added default constructors to DDLColumn (both in we_ddlcommon.h and
ddlpackageprocessor.h) and DctnryTuple in we_type.h.
#1468 we_colextinf.cpp:80 Uninitialized Value - ColExtInfEntry constructors
missed initializing fbigMinVal/fbigMaxVal or fMinVal/fMaxVal depending on
which constructor was called. Fixed all 4 non-default constructors.
#1469 we_columninfo.cpp:631 Uninitialized Value - startLbid output param
#1470 we_columninfocompressed.cpp:191 Uninitialized Value - startFileOffset
* fix(cpimport): MCOL-6243 - cpimport fails at fields longer than 1M
This patch makes cpimport buffers resizeable, thus cpimport's
command-line buffer size argument is nothing but a hint now.
* No read past EOF
This patch does exactly this, it implements support for JSON in DDL.
Right now we use server's check for JSON validity on INSERT. We do not implement
JSON validity check during updates, it is postponed for later work.
This patch changes logic from counting all nodes to counting only
read-write nodes when messaging about DML operations.
feat(MCOL-6082): Multiple readers of dbroots using OamCache logic
This patch introduces centralized logic of selecting what dbroot is
accessible in PrimProc on what node. The logic is in OamCache for time
being and can be moved later.
Fix build
* MSan added with fixes for libc++
* libc++ sepatare build
* add libc++ to ci
* libstdc++ in CI
* libcpp and msan to external projects
* std::sqrt
* awful_hack(ci): install whole llvm instead of libc++ in terrible way for test containers
* Adding ddeb packages for teststages and repos
* libc++ more for test container
* save some money on debug
* colored coredumps
* revert ci
* chore(ci): collect asan ubsan and libc++ build with mtr and regression status ignored
* configcpp refactored
* chore(build): massive removals, auto add files to debian install file
* chore(build): configure before autobake
* chore(build): use custom cmake commands for components, mariadb-plugin-columnstore.install generated
* chore(build): install deps as separate step for build-packages
* more deps
* chore(codemanagement, build): build refactoring stage2
* chore(safety): Locked Map for MessageqCpp with a simpler way
Please enter the commit message for your changes. Lines starting
* chore(codemanagement, ci): better coredumps handling, deps fixed
* Delete build/bootstrap_mcs.py
* Update charset.cpp (add license)
* chore(build): refactor main CMakeLists.txt
* chore(build): fix boost version for packages, set clang-20 only for amd and arm
* chore(build): boost 4 sm
* chore(build): boost dep for rowgroup
* chore(build): toolset for boost
* chore(build): suppress clang warnings for boost
* chore(ci, build): use ASAN for unittest on ubuntu 24.04 only, added custom cmake flag option for bootstrap, custom params for new and existing pipelines
* chore(build): sort bootstrap flags
* chore(CI): remove publish pkg step, adding clickable link instead to publish steps, fix customenv
There were numerous memory leaks in plugin's code and associated code.
During typical run of MTR tests it leaked around 65 megabytes of
objects. As a result they may severely affect long-lived connections.
This patch fixes (almost) all leaks found in the plugin. The exceptions
are two leaks associated with SHOW CREATE TABLE columnstore_table and
getting information of columns of columnstore-handled table. These
should be fixed on the server side and work is on the way.
The arguments of calloc are the number of members and the sizeof the
member. Gcc-14.1.1 worked out how to tell the difference.
We correct this by transposing to gcc's will.
Co-authored-by: Daniel Black <daniel@mariadb.org>
The UPDATE statement wrote NULL when the column set is DATETIME and
value is '0000-00-00 00:00:00'. The problem was inside WriteEngine's
handling of UPDATE statements and this is where heart of change is.
Other changes are related to some obsolete data structures in DML/DDL
handling that just hanging around there, doing nothing.
This patch adds support for `startreadonly` command which waits
until all active cpimport jobs are done and then puts controller node to readonly
mode.