When ExeMgr processes a correlated exists filter for a subquery inside a
view the de-duplication check doesn't work. We sometimes check unique
with the view name, sometimes not. We don't need the view name here so
remove it if we don't have it.
Also push the view name in the subquery.
If a dbroot is missing/offline mysqld would crash on
information_schema.columnstore_files due to not catching an exception.
This patch now catches the exception.
ColumnStore tables can have data modifications away from a specific
MariaDB server. This means it is possible for QCache to not be
invalidated properly in vtable mode 0. This patch makes sure it is
disabled for ColumnStore.
* Uncompressed columns caused a miscalculation for compression ratio
* We now show a ratio such as 2:1 rather than a percentage
* compressed_data_size instead of file_size is used to show the
compression of actual data, ignoring the pre-allocated segment
Cached conditions are things like (TRUE OR FALSE). They don't actually
add any value to the query and were breaking our working stack trying to
process them.
Cached conditions are things like (TRUE OR FALSE). They don't actually
add any value to the query and were breaking our working stack trying to
process them.
If a VARCHAR was defined as less than 255 characters and a data via LDI
or INSERT...SELECT was > 127 characters the length field would contain a
negative number.
In 1.0.11 and 1.1.0 this was not a problem because we cast the negative
back again. With MCOL-877 we stoped doing the double-cast. This patch
casts properly the first time.
If a VARCHAR was defined as less than 255 characters and a data via LDI
or INSERT...SELECT was > 127 characters the length field would contain a
negative number.
In 1.0.11 and 1.1.0 this was not a problem because we cast the negative
back again. With MCOL-877 we stoped doing the double-cast. This patch
casts properly the first time.
* COLUMNSTORE_EXTENTS data_size now shows the total size on the highest
segment of an extent file. It also shows 0 bytes if HWM is zero so that
if there is more than one segment it doesn't show 8192 bytes for the
lower segments.
* COMPRESSION_RATIO was missing some data and using compressed data size
instead of file size (which is probably more realistic).
* COLUMNSTORE_EXTENTS data_size now shows the total size on the highest
segment of an extent file. It also shows 0 bytes if HWM is zero so that
if there is more than one segment it doesn't show 8192 bytes for the
lower segments.
* COMPRESSION_RATIO was missing some data and using compressed data size
instead of file size (which is probably more realistic).
DOUBLE typecast was not supported and the failure detection caused a
crash.
This patch adds support for DOUBLE typecast and fixes the crash caused
when a non-supported function is detected as part of an arithmatic.
DOUBLE typecast was not supported and the failure detection caused a
crash.
This patch adds support for DOUBLE typecast and fixes the crash caused
when a non-supported function is detected as part of an arithmatic.
With 1.1 we have removed libdrizzle and used MariaDB's client library
instead for both CrossEngine and QueryStats. Unfortunately MariaDB 10.2
has two client libraries which have different structs with the same
name. When QueryStats was running inside the ColumnStore plugin this
symbol conflict was causing a crash.
The server's built-in client API has several different and several
missing functions so some additions to sm.cpp were made to fill the
gaps.
This patch does the following:
* Make sure that libmariadb is only linked to executables, not the
ColumnStore Plugin (to avoid symbol conflicts). Note that all
executables that link to CrossEngine and/or QueryStats need to link to
libmariadb to avoid missing symbol issues.
* Use the server's built-in client API for QueryStats when run in the
plugin
* Replace missing server built-in client API calls in sm.cpp (this is
for QueryStats and CrossEngine to keep the dynamic linker happy)
* Fixes issue where using 'localhost' as the MariaDB Server hostname
would fail in QueryStats.