mirror of
https://github.com/MariaDB/server.git
synced 2026-10-23 18:49:29 +03:00
Merge branch 10.6 into 10.11
This commit is contained in:
13
.github/pull_request_template.md
vendored
13
.github/pull_request_template.md
vendored
@@ -26,8 +26,16 @@ An amazing description should answer some questions like:
|
||||
TODO: fill description here
|
||||
|
||||
## How can this PR be tested?
|
||||
TODO: fill steps to reproduce here, if applicable,
|
||||
or remove the section
|
||||
|
||||
TODO: modify the automated test suite to verify that the PR causes MariaDB to
|
||||
behave as intended. Consult the documentation on
|
||||
["Writing good test cases"](https://mariadb.org/get-involved/getting-started-for-developers/writing-good-test-cases-mariadb-server).
|
||||
In many cases, this will be as simple as modifying one `.test` and one `.result`
|
||||
file in the `mysql-test/` subdirectory. Without _automated_ tests, future regressions
|
||||
in the expected behavior can't be automatically detected and verified.
|
||||
|
||||
If the changes are not amenable to automated testing, please explain why not and
|
||||
carefully describe how to test manually.
|
||||
|
||||
<!--
|
||||
Tick one of the following boxes [x] to help us understand
|
||||
@@ -47,4 +55,3 @@ You might consider answering some questions like:
|
||||
-->
|
||||
## Backward compatibility
|
||||
TODO: fill details here, if applicable, or remove the section
|
||||
|
||||
|
||||
8
.gitignore
vendored
8
.gitignore
vendored
@@ -107,6 +107,7 @@ packaging/rpm-oel/mysql.spec
|
||||
packaging/rpm-uln/mysql.10.0.11.spec
|
||||
packaging/solaris/postinstall-solaris
|
||||
extra/pcre2
|
||||
extra/libfmt
|
||||
plugin/auth_pam/auth_pam_tool
|
||||
plugin/auth_pam/config_auth_pam.h
|
||||
plugin/aws_key_management/aws-sdk-cpp
|
||||
@@ -186,6 +187,7 @@ sql-bench/innotest1b.pl
|
||||
sql-bench/innotest2.pl
|
||||
sql-bench/innotest2a.pl
|
||||
sql-bench/innotest2b.pl
|
||||
sql-bench/output
|
||||
sql-bench/run-all-tests.pl
|
||||
sql-bench/server-cfg.pl
|
||||
sql-bench/test-ATIS.pl
|
||||
@@ -240,7 +242,6 @@ storage/perfschema/pfs_config.h
|
||||
storage/rocksdb/ldb
|
||||
storage/rocksdb/myrocks_hotbackup
|
||||
storage/rocksdb/mysql_ldb
|
||||
storage/rocksdb/myrocks_hotbackup
|
||||
storage/rocksdb/rdb_source_revision.h
|
||||
storage/rocksdb/sst_dump
|
||||
strings/conf_to_src
|
||||
@@ -257,12 +258,13 @@ support-files/mariadb-extra.socket
|
||||
support-files/mariadb@.service
|
||||
support-files/mariadb@.socket
|
||||
support-files/mariadb-extra@.socket
|
||||
support-files/mini-benchmark
|
||||
support-files/my-huge.cnf
|
||||
support-files/my-innodb-heavy-4G.cnf
|
||||
support-files/my-large.cnf
|
||||
support-files/my-medium.cnf
|
||||
support-files/my-small.cnf
|
||||
support-files/mysql-log-rotate
|
||||
support-files/mariadb.logrotate
|
||||
support-files/mysql.10.0.11.spec
|
||||
support-files/mysql.server
|
||||
support-files/mysql.service
|
||||
@@ -615,6 +617,8 @@ scripts/mariadb-setpermission
|
||||
sql/mariadbd
|
||||
sql/mariadb-tzinfo-to-sql
|
||||
storage/rocksdb/mariadb-ldb
|
||||
strings/ctype-uca1400data.h
|
||||
strings/uca-dump
|
||||
tests/mariadb-client-test
|
||||
versioninfo_dll.rc
|
||||
versioninfo_exe.rc
|
||||
|
||||
@@ -43,7 +43,7 @@ variables:
|
||||
CMAKE_FLAGS: "-DWITH_SSL=system -DPLUGIN_COLUMNSTORE=NO -DPLUGIN_ROCKSDB=NO -DPLUGIN_S3=NO -DPLUGIN_MROONGA=NO -DPLUGIN_CONNECT=NO -DPLUGIN_MROONGA=NO -DPLUGIN_TOKUDB=NO -DPLUGIN_PERFSCHEMA=NO -DWITH_WSREP=OFF"
|
||||
# Major version dictates which branches share the same ccache. E.g. 10.6-abc
|
||||
# and 10.6-xyz will have the same cache.
|
||||
MARIADB_MAJOR_VERSION: "10.6"
|
||||
MARIADB_MAJOR_VERSION: "10.9"
|
||||
# NOTE! Currently ccache is only used on the Centos 9 build. As each job has
|
||||
# sufficiently different environments they are unable to benefit from each
|
||||
# other's ccaches. As each build generates about 1 GB of ccache, having
|
||||
@@ -217,16 +217,18 @@ centos9:
|
||||
GIT_SUBMODULE_STRATEGY: normal
|
||||
script:
|
||||
- yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
|
||||
- dnf -y install 'dnf-command(config-manager)'
|
||||
- dnf config-manager --set-enabled crb
|
||||
- yum install -y yum-utils rpm-build openssl-devel libeatmydata ccache
|
||||
# Install missing dependencies
|
||||
- yum install -y https://mirror.stream.centos.org/9-stream/CRB/x86_64/os/Packages/Judy-devel-1.0.5-28.el9.x86_64.rpm
|
||||
- yum install -y https://mirror.stream.centos.org/9-stream/CRB/x86_64/os/Packages/bison-devel-3.7.4-5.el9.x86_64.rpm
|
||||
- yum install -y https://mirror.stream.centos.org/9-stream/CRB/x86_64/os/Packages/multilib-rpm-config-1-19.el9.noarch.rpm
|
||||
- yum install -y gcc gcc-c++ cmake make bison ncurses-devel
|
||||
- yum install -y zlib-devel libaio-devel systemd-devel pcre2-devel
|
||||
- yum install -y libevent-devel libxml2-devel snappy-devel lz4-devel
|
||||
- yum install -y libcurl-devel pam-devel libzstd-devel liburing-devel
|
||||
- yum install -y lzo-devel bzip2-devel readline-devel xz-devel cracklib-devel
|
||||
- yum install -y Judy-devel bison-devel multilib-rpm-config
|
||||
# Configure ccache
|
||||
- source /etc/profile.d/ccache.sh
|
||||
- export CCACHE_DIR="$(pwd)/.ccache"; ccache --zero-stats
|
||||
# This repository does not have any .spec files, so install dependencies based on CentOS spec file
|
||||
- yum-builddep -y mariadb-server
|
||||
- mkdir builddir; cd builddir
|
||||
- cmake -DRPM=$CI_JOB_NAME $CMAKE_FLAGS .. 2>&1 | tee -a ../build-$CI_JOB_NAME-$CI_COMMIT_REF_SLUG.log
|
||||
- eatmydata make package -j 2 2>&1 | tee -a ../build-$CI_JOB_NAME-$CI_COMMIT_REF_SLUG.log
|
||||
@@ -510,6 +512,37 @@ flawfinder:
|
||||
- flawfinder-all-vulnerabilities.html
|
||||
- flawfinder-min-level5.json
|
||||
|
||||
mini-benchmark:
|
||||
stage: test
|
||||
dependencies:
|
||||
- fedora
|
||||
needs:
|
||||
- fedora
|
||||
script:
|
||||
- ls -la rpm; rm -vf rpm/*.el?.* # Delete artifacts from Centos builds
|
||||
# Don't use cracklib, otherwise the Sysbench user password will be rejected
|
||||
- rm -vf rpm/*cracklib*.rpm
|
||||
# Nothing provides galera-4 on Fedora, so this step fails if built with wsrep
|
||||
- yum install -y rpm/*.rpm
|
||||
# Fedora does not support running services in Docker (like Debian packages do) so start it manually
|
||||
- /usr/bin/mariadb-install-db -u mysql
|
||||
- sudo -u mysql /usr/sbin/mariadbd & sleep 10
|
||||
# Since we did a manual start, we also need to run upgrade manually
|
||||
- /usr/bin/mariadb-upgrade -u root
|
||||
- |
|
||||
mariadb --skip-column-names -e "SELECT @@version, @@version_comment" | tee /tmp/version
|
||||
grep $MARIADB_MAJOR_VERSION /tmp/version || echo "MariaDB didn't install properly"
|
||||
- yum install -y sysbench procps-ng perf flamegraph flamegraph-stackcollapse-perf util-linux dnf-utils
|
||||
- /usr/share/mysql/mini-benchmark
|
||||
- cp -av */sysbench-run-*.log */metrics.txt . # Move files one level down so they can be saved as artifacts
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- sysbench-run-*.log
|
||||
reports:
|
||||
metrics:
|
||||
- metrics.txt
|
||||
|
||||
# Once all RPM builds and tests have passed, also run the DEB builds and tests
|
||||
# @NOTE: This is likely to work well only on salsa.debian.org as the Gitlab.com
|
||||
# runners are too small for everything this stage does.
|
||||
|
||||
@@ -34,7 +34,7 @@ fi
|
||||
|
||||
commands=""
|
||||
# git clean -fdX removes all ignored (build) files
|
||||
if test -d .git
|
||||
if test -d .git && test -d libmariadb/CMakeFiles
|
||||
then
|
||||
commands="\
|
||||
git clean -fdX
|
||||
|
||||
@@ -204,6 +204,7 @@ base_configs="$base_configs --with-extra-charsets=complex "
|
||||
base_configs="$base_configs --enable-thread-safe-client "
|
||||
base_configs="$base_configs --with-big-tables $maintainer_mode"
|
||||
base_configs="$base_configs --with-plugin-aria --with-aria-tmp-tables --with-plugin-s3=STATIC"
|
||||
base_configs="$base_configs $SSL_LIBRARY"
|
||||
|
||||
if test -d "$path/../cmd-line-utils/readline"
|
||||
then
|
||||
@@ -214,18 +215,17 @@ then
|
||||
fi
|
||||
|
||||
max_plugins="--with-plugins=max"
|
||||
max_no_embedded_configs="$SSL_LIBRARY $max_plugins"
|
||||
max_no_qc_configs="$SSL_LIBRARY $max_plugins --without-query-cache"
|
||||
max_configs="$SSL_LIBRARY $max_plugins --with-embedded-server --with-libevent --with-plugin-rocksdb=dynamic --with-plugin-test_sql_discovery=DYNAMIC --with-plugin-file_key_management=DYNAMIC"
|
||||
all_configs="$SSL_LIBRARY $max_plugins --with-embedded-server --with-innodb_plugin --with-libevent"
|
||||
max_no_embedded_configs="$max_plugins"
|
||||
max_no_qc_configs="$max_plugins --without-query-cache"
|
||||
max_configs="$max_plugins --with-embedded-server --with-libevent --with-plugin-rocksdb=dynamic --with-plugin-test_sql_discovery=DYNAMIC --with-plugin-file_key_management=DYNAMIC --with-plugin-hashicorp_key_management=DYNAMIC --with-plugin-auth_gssapi=DYNAMIC"
|
||||
all_configs="$max_configs"
|
||||
|
||||
#
|
||||
# CPU and platform specific compilation flags.
|
||||
#
|
||||
alpha_cflags="$check_cpu_cflags -Wa,-m$cpu_flag"
|
||||
amd64_cflags="$check_cpu_cflags"
|
||||
amd64_cxxflags="" # If dropping '--with-big-tables', add here "-DBIG_TABLES"
|
||||
pentium_cflags="$check_cpu_cflags -m32"
|
||||
amd64_cflags="$check_cpu_cflags -m64"
|
||||
pentium64_cflags="$check_cpu_cflags -m64"
|
||||
ppc_cflags="$check_cpu_cflags"
|
||||
sparc_cflags=""
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
#! /bin/sh
|
||||
|
||||
path=`dirname $0`
|
||||
set -- "$@" --with-debug=full
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
extra_flags="$amd64_cflags $debug_cflags"
|
||||
extra_configs="$amd64_configs $debug_configs $all_configs"
|
||||
|
||||
CC="$CC --pipe"
|
||||
. "$path/FINISH.sh"
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Copyright (c) 2005, 2006 MySQL AB
|
||||
# Use is subject to license terms
|
||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -14,11 +13,13 @@
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
|
||||
|
||||
path=`dirname $0`
|
||||
. "$path/SETUP.sh"
|
||||
|
||||
extra_flags="$amd64_cflags $debug_cflags"
|
||||
extra_configs="$amd64_configs $debug_configs $max_configs"
|
||||
|
||||
CC="$CC --pipe"
|
||||
. "$path/FINISH.sh"
|
||||
|
||||
@@ -6,7 +6,5 @@ set -- "$@" --with-debug=full
|
||||
|
||||
extra_flags="$pentium64_cflags $debug_cflags"
|
||||
extra_configs="$pentium_configs $debug_configs $all_configs"
|
||||
|
||||
extra_configs="$extra_configs "
|
||||
CC="$CC --pipe"
|
||||
. "$path/FINISH.sh"
|
||||
|
||||
@@ -21,6 +21,5 @@ path=`dirname $0`
|
||||
extra_flags="$pentium64_cflags $debug_cflags"
|
||||
extra_configs="$pentium_configs $debug_configs $max_configs"
|
||||
|
||||
extra_configs="$extra_configs "
|
||||
CC="$CC --pipe"
|
||||
. "$path/FINISH.sh"
|
||||
|
||||
@@ -31,7 +31,7 @@ path=`dirname $0`
|
||||
# the destination
|
||||
#
|
||||
|
||||
extra_flags="$pentium64_cflags $debug_cflags -fsanitize=undefined -DWITH_UBSAN -Wno-conversion -Wno-uninitialized"
|
||||
extra_flags="$pentium64_cflags $debug_cflags -fsanitize=undefined -DWITH_UBSAN -Wno-conversion -Wno-uninitialized -Wno-unused-parameter"
|
||||
extra_configs="$pentium_configs $debug_configs -DWITH_UBSAN=ON -DMYSQL_MAINTAINER_MODE=NO --without-spider"
|
||||
|
||||
. "$path/FINISH.sh"
|
||||
|
||||
@@ -31,7 +31,7 @@ ENDIF()
|
||||
# in RPM's:
|
||||
|
||||
#set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true")
|
||||
FOREACH(p CMP0022 CMP0046 CMP0040 CMP0048 CMP0054 CMP0056 CMP0067 CMP0074 CMP0075 CMP0069 CMP0135)
|
||||
FOREACH(p CMP0022 CMP0046 CMP0040 CMP0048 CMP0054 CMP0056 CMP0067 CMP0074 CMP0075 CMP0069 CMP0135 CMP0091)
|
||||
IF(POLICY ${p})
|
||||
CMAKE_POLICY(SET ${p} NEW)
|
||||
ENDIF()
|
||||
@@ -160,6 +160,7 @@ INCLUDE(readline)
|
||||
INCLUDE(libutils)
|
||||
INCLUDE(dtrace)
|
||||
INCLUDE(pcre)
|
||||
INCLUDE(libfmt)
|
||||
INCLUDE(ctest)
|
||||
INCLUDE(plugin)
|
||||
INCLUDE(install_macros)
|
||||
@@ -301,14 +302,18 @@ ENDIF()
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DENABLED_DEBUG_SYNC")
|
||||
|
||||
IF(CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10")
|
||||
IF(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10")
|
||||
# Enable extra checks when using a recent enough version of GNU libstdc++
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG -D_GLIBCXX_ASSERTIONS")
|
||||
ENDIF()
|
||||
|
||||
OPTION(ENABLE_GCOV "Enable gcov (debug, Linux builds only)" OFF)
|
||||
OPTION(ENABLE_GCOV "Enable gcov (debug, macOS and Linux builds only)" OFF)
|
||||
IF (ENABLE_GCOV)
|
||||
MY_CHECK_AND_SET_COMPILER_FLAG("-DHAVE_gcov -fprofile-arcs -ftest-coverage -lgcov" DEBUG)
|
||||
IF (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||
MY_CHECK_AND_SET_COMPILER_FLAG("--coverage" DEBUG)
|
||||
ELSE()
|
||||
MY_CHECK_AND_SET_COMPILER_FLAG("-DHAVE_gcov -fprofile-arcs -ftest-coverage -lgcov" DEBUG)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
OPTION(WITHOUT_PACKED_SORT_KEYS "disable packed sort keys" OFF)
|
||||
@@ -351,7 +356,13 @@ SET(WITH_SAFEMALLOC "AUTO" CACHE STRING "Use safemalloc memory debugger. Will re
|
||||
|
||||
IF(WITH_SAFEMALLOC MATCHES "ON")
|
||||
ADD_DEFINITIONS( -DSAFEMALLOC)
|
||||
ELSEIF(WITH_SAFEMALLOC MATCHES "AUTO" AND NOT WIN32 AND NOT WITH_VALGRIND)
|
||||
ELSEIF(WITH_SAFEMALLOC MATCHES "AUTO"
|
||||
AND NOT WIN32
|
||||
AND NOT WITH_VALGRIND
|
||||
AND NOT WITH_ASAN
|
||||
AND NOT WITH_UBSAN
|
||||
AND NOT WITH_TSAN
|
||||
AND NOT WITH_MSAN)
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC")
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC")
|
||||
ENDIF()
|
||||
@@ -419,7 +430,8 @@ ADD_DEFINITIONS(-DHAVE_CONFIG_H)
|
||||
IF(_FILE_OFFSET_BITS)
|
||||
ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=${_FILE_OFFSET_BITS})
|
||||
ENDIF()
|
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/include
|
||||
${CMAKE_SOURCE_DIR}/include/providers)
|
||||
|
||||
# Add bundled or system zlib.
|
||||
MYSQL_CHECK_ZLIB_WITH_COMPRESS()
|
||||
@@ -431,6 +443,7 @@ MYSQL_CHECK_READLINE()
|
||||
SET(MALLOC_LIBRARY "system")
|
||||
|
||||
CHECK_PCRE()
|
||||
CHECK_LIBFMT()
|
||||
ADD_SUBDIRECTORY(tpool)
|
||||
CHECK_SYSTEMD()
|
||||
|
||||
@@ -523,7 +536,7 @@ ADD_SUBDIRECTORY(support-files)
|
||||
ADD_SUBDIRECTORY(extra/aws_sdk)
|
||||
|
||||
IF(NOT CMAKE_CROSSCOMPILING OR DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
|
||||
SET(EXPORTED comp_err comp_sql factorial)
|
||||
SET(EXPORTED comp_err comp_sql factorial uca-dump)
|
||||
IF(NOT WITHOUT_SERVER)
|
||||
SET(EXPORTED ${EXPORTED} gen_lex_hash gen_lex_token)
|
||||
ENDIF()
|
||||
@@ -582,9 +595,6 @@ INSTALL_DOCUMENTATION(README.md CREDITS COPYING THIRDPARTY COMPONENT Readme)
|
||||
|
||||
IF(UNIX)
|
||||
INSTALL_DOCUMENTATION(Docs/INSTALL-BINARY COMPONENT Readme)
|
||||
IF(WITH_WSREP)
|
||||
INSTALL_DOCUMENTATION(Docs/README-wsrep COMPONENT Readme)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
INCLUDE(build_depends)
|
||||
@@ -640,7 +650,7 @@ IF(NOT WITHOUT_SERVER)
|
||||
perror
|
||||
replace)
|
||||
IF(WIN32)
|
||||
ADD_DEPENDENCIES(minbuild echo mariadb-install-db my_safe_kill)
|
||||
ADD_DEPENDENCIES(minbuild echo mariadb-install-db my_safe_kill mariadb-upgrade-service)
|
||||
ENDIF()
|
||||
ADD_CUSTOM_TARGET(smoketest
|
||||
COMMAND perl ./mysql-test-run.pl main.1st
|
||||
|
||||
314
COMMUNITY_CONTRIBUTIONS.md
Normal file
314
COMMUNITY_CONTRIBUTIONS.md
Normal file
@@ -0,0 +1,314 @@
|
||||
# Community Contributions Process #
|
||||
|
||||
MariaDB Server is an Open Source project that thrives thanks to its community.
|
||||
MariaDB Foundation handles all community contributions in a timely manner.
|
||||
|
||||
This document provides a description how community contributions are processed.
|
||||
Please make sure to familiarize yourself and follow the process
|
||||
when submitting contributions.
|
||||
|
||||
All community contribution pull requests will eventually get the
|
||||
"External Contribution" label at some point.
|
||||
|
||||
## The two sides of a contribution
|
||||
|
||||
A contribution should have **BOTH** a design document
|
||||
in [Jira](https://jira.mariadb.org) and a pull request
|
||||
in [GitHub](https://github.com/MariaDB/server).
|
||||
|
||||
In the normal case the process usually starts with filing
|
||||
a [Jira](https://jira.mariadb.org) for the bug or the feature proposed.
|
||||
Then a pull request gets created to implement the feature or fix the bug.
|
||||
It could be the other way around too.
|
||||
But it's important to always have both prior to review.
|
||||
|
||||
There are constant efforts (including background processes) to make sure
|
||||
the states of the Jira and the corresponding pull request(s) are kept in sync.
|
||||
|
||||
### What should go into the jira ###
|
||||
|
||||
The [Jira](https://jira.mariadb.org) is used to describe the design of the
|
||||
feature: why is it a good idea, what should work, what might not work etc.
|
||||
Or to describe the bug: what is wrong, how to recreate it,
|
||||
what's the expected outcome etc.
|
||||
See [here](https://mariadb.org/contribute/#contribute-to-testing)
|
||||
for more details.
|
||||
|
||||
> [!TIP]
|
||||
> For faster processing always fill all of the applicable Jira fields:
|
||||
> versions affected, component, etc.
|
||||
|
||||
> [!TIP]
|
||||
> A lot of time an energy can be saved, especially on more complex tasks,
|
||||
> by communicating early with possible reviewers and writing down a design
|
||||
> specification into the Jira prior to implementation
|
||||
|
||||
> [!CAUTION]
|
||||
> If the jira already exists and is assigned to somebody please reach out
|
||||
> to them **before** starting to working on it to avoid effort duplication.
|
||||
|
||||
### What should go into the pull request ###
|
||||
|
||||
The pull request is used to describe the implementation.
|
||||
E.g. how the bug is fixed. Or how the feature is implemented in detail.
|
||||
|
||||
The pull request should contain a **single commit** per logical change!
|
||||
And that commit should have a commit message that's compliant with
|
||||
the [MariaDB coding standards](https://github.com/MariaDB/server/blob/main/CODING_STANDARDS.md#git-commit-messages).
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Put the Jira reference, e.g. "MDEV-12345 ", as a prefix
|
||||
> to your pull request's title
|
||||
|
||||
> [!CAUTION]
|
||||
> If there's no Jira or no reference to it in your pull request
|
||||
> there might be delays in processing it
|
||||
|
||||
## States of a Community Contribution ##
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> Draft
|
||||
Draft --> Closed : 3 Months of inactivity
|
||||
Draft --> Open
|
||||
Open --> Closed : Rejected
|
||||
state "Preliminary Review" as PR
|
||||
state "Final Review" as FR
|
||||
Open --> PR
|
||||
PR --> Draft : 21 Days of inactivity
|
||||
PR --> FR
|
||||
PR --> Closed : Rejected
|
||||
FR --> PR
|
||||
FR --> Draft : 21 Days of inactivity
|
||||
FR --> Approved
|
||||
FR --> Closed : Rejected
|
||||
Approved --> Merged
|
||||
Merged --> [*]
|
||||
Closed --> [*]
|
||||
```
|
||||
|
||||
### Draft ###
|
||||
|
||||
* Pull request
|
||||
* State: Draft
|
||||
* Assignee: Not relevant
|
||||
* Label: optionally "need feedback" and/or "External Contribution"
|
||||
* Jira
|
||||
* State: absent or in "Stalled"/"Open"/"Confirmed"
|
||||
* Assignee: Not relevant.
|
||||
|
||||
Contributions in this state are are excluded from any queues.
|
||||
Except for the 3 months close period when they need feedback.
|
||||
Put your contribution in Draft mode if it's not yet ready for
|
||||
preliminary review.
|
||||
Or if you want to sketch some sort of a pull request draft
|
||||
to *manually* show to people.
|
||||
|
||||
At any time the pull request can be transitioned to "Open" state
|
||||
by clicking the "Ready for review" button in
|
||||
the GitHub pull request viewer UI.
|
||||
|
||||
> [!NOTE]
|
||||
> There is a background process to move contributions in
|
||||
> that state to "Closed" state if they have the "need feedback"
|
||||
> and "External Contribution" pull request labels and there's
|
||||
> been no activity for 3 months.
|
||||
|
||||
### Open ##
|
||||
|
||||
* Pull request
|
||||
* State: Open
|
||||
* Assignee: Not relevant
|
||||
* Label: not relevant
|
||||
* Jira
|
||||
* State: "Stalled", "Confirmed" or "Open"
|
||||
* Assignee: Not relevant
|
||||
|
||||
Contributions in this state should be ready for review. This means:
|
||||
* There should be a single commit per logical change in the pull request
|
||||
and this commit must
|
||||
* have a commit message that corresponds to the MariaDB Server coding
|
||||
standards, including the Jira reference.
|
||||
* contain a concise description of what the change is:
|
||||
this goes to the git commit log and is used for reference.
|
||||
* should contain all the relevant attribution headers
|
||||
(co-authors, reviewers etc.)
|
||||
* The pull request should contain at least a copy of
|
||||
the commit message. Ideally more can be added to it.
|
||||
* The pull request should target the
|
||||
right branch.
|
||||
Rule of thumb: the lowest affected but not older than three years
|
||||
GA branch for bugs, main branch for features and refactorings.
|
||||
* All the relevant buildbot tests should be passing. Or, if failing,
|
||||
the failures should be studied, compared to the test results on the
|
||||
target branch (https://buildbot.mariadb.org/#/grid?branch=BRANCHNAME)
|
||||
and justified as unrelated.
|
||||
* The licensing of the pull request should be clear. As a legal requirement,
|
||||
you must accept the CLA (contributor license agreement, also called MCA,
|
||||
MariaDB Contributor Agreement) or, alternatively, license your contribution
|
||||
under the 3-clause BSD license. See the
|
||||
[MariaDB Contributor Agreement FAQ](https://mariadb.com/docs/general-resources/community/community/legal-documents/mariadb-contributor-agreement-faq)
|
||||
for the difference between these two options and when to use what.
|
||||
|
||||
Questions and Answers
|
||||
* When to move a contribution to Open state?
|
||||
* When you're ready to submit it to a preliminary review
|
||||
* Who moves a contribution to Open state?
|
||||
* Usually the submitter
|
||||
* What states can the contribution be moved to?
|
||||
* Preliminary review, when the preliminary review starts
|
||||
* Final review, if the final review starts before the preliminary
|
||||
* Closed, if rejected or has the "need feedback" pull request label and
|
||||
has been inactive for 3 months
|
||||
* Who creates the Jira issue?
|
||||
* If there isn't one already, the submitter can and should create it
|
||||
|
||||
|
||||
> [!NOTE]
|
||||
> There is an asynchronous process that assigns "External Contribution"
|
||||
> label to pull requests in this state, if absent.
|
||||
> This marks the contribution entering the preliminary review queue.
|
||||
|
||||
### Preliminary Review ###
|
||||
|
||||
* Pull request
|
||||
* State: Open
|
||||
* Assignee: The preliminary reviewer
|
||||
* Label: External Contribution
|
||||
* Jira
|
||||
* State: "Open", "In Progress", "Stalled" or "Needs feedback"
|
||||
* Assignee: The preliminary reviewer
|
||||
* Label: "Contribution"
|
||||
|
||||
Contributions enter this state usually from "Open" state.
|
||||
The preliminary reviewer does the following:
|
||||
* Ensures that the contribution is ready for review: has jira,
|
||||
tests pass, standards are followed etc.
|
||||
* Provides a best effort technical review(s) of the content.
|
||||
Note that the preliminary reviewer is not a domain expert,
|
||||
so take that review with a grain of salt.
|
||||
This is done to save time the final reviewer's time.
|
||||
* Follows up so that their remarks are addressed.
|
||||
* Moves the contribution to Draft if the contributor is inactive
|
||||
for 3 weeks.
|
||||
* Moves the contribution to "Final Review" when done.
|
||||
* Assigns a "contribution" label to the Jira and makes sure
|
||||
it has "Critical" priority.
|
||||
* Can assign a "rework" label to community contribution pull requests.
|
||||
This means that reviews are done through some other process.
|
||||
Or that an internal developer has taken over the contribution to
|
||||
re-do it and push it directly.
|
||||
|
||||
### Final review ###
|
||||
|
||||
* Pull request
|
||||
* State: Open
|
||||
* Assignee: The current final reviewer
|
||||
* Label: External Contribution
|
||||
* Jira
|
||||
* State: "In progress", "In review", "In testing", "Stalled",
|
||||
"Needs feedback"
|
||||
* Assignee: The final reviewer (when actively reviewing) or the
|
||||
preliminary reviewer, when waiting for reply by the contributior
|
||||
for too long
|
||||
* Label: "Contribution"
|
||||
|
||||
Contributions enter this state when the preliminary review is done.
|
||||
Or if a certain domain expert takes interest into an incoming contribution
|
||||
and starts interacting with it prior to the preliminary review.
|
||||
The final reviewer is either a domain expert or a test engineer.
|
||||
There can be more than one final reviewers assigned: usually done for
|
||||
more complex contributions or when a separate testing step is required.
|
||||
|
||||
Watch the jira state and the assignees in this state for
|
||||
detailed information:
|
||||
* "In review" means that somebody is assigned to review and they are
|
||||
working on it
|
||||
* "Stalled" means that they're waiting on something. Also watch
|
||||
the assignee in that state. If the jira is re-assigned back
|
||||
from a final reviewer to a preliminary reviewer, this means
|
||||
that the final reviewer waited for reply by the submitter
|
||||
for some time and have (temporarily) moved on by
|
||||
moving the Jira to "In progress" and assigning it back to the
|
||||
preliminary reviewer. When a reply is received the preliminary
|
||||
reviewer will move the jira back to "In review" or "In testing" and
|
||||
re-assign to the final reviewer that has requested the feedback.
|
||||
* "In testing" means a test engineer is assigned and they are working on
|
||||
testing this.
|
||||
* "Needs feedback" means that the reviewer needs feedback to proceed
|
||||
* "In progress" means that the preliminary reviewer has picked this up
|
||||
and is working on it.
|
||||
|
||||
**Try to avoid getting into the re-assignment loop by being active!**
|
||||
|
||||
> [!NOTE]
|
||||
> There's a requirement that certain contributions need to undergo
|
||||
> a separate test step. This is usually done for the new features or
|
||||
> for more complex and risky bug fixes. If that's the desired state,
|
||||
> a test engineer will be assigned as a final reviewer. See
|
||||
> https://mariadb.com/docs/server/reference/product-development/mariadb-quality-development-rules
|
||||
> for more details.
|
||||
|
||||
> [!TIP]
|
||||
> The final reviewer is usually a core server developer. They often work
|
||||
> in cycles, timed to match the release schedule, switching between
|
||||
> bug fixing and new feature development. If a bug fix PR comes
|
||||
> in the middle of the new feature development cycle or vice versa
|
||||
> it might take up to a couple of months for a developer to do a review.
|
||||
|
||||
### Approved ###
|
||||
|
||||
* Pull request
|
||||
* State: Open
|
||||
* Assignee: The last final reviewer
|
||||
* Label: External Contribution
|
||||
* Jira
|
||||
* State: "Approved"
|
||||
* Assignee: The last final reviewer
|
||||
* Label: "Contribution"
|
||||
|
||||
Contributions in that state are ready to be merged. Usually it's the last
|
||||
final reviewer's job to trigger the merge of the pull request and update
|
||||
the Jira accordingly. But sometimes the preliminary reviewer can help with
|
||||
that too.
|
||||
|
||||
Prior to merging the pull request it should be rebased to the latest in
|
||||
the target branch. Thus the contributor should be watching for any
|
||||
possible merge conflicts or test failures during that rebase.
|
||||
The person that does the merge might need some assistance by the contributor.
|
||||
|
||||
When the pull request is successfully merged the Jira should be moved to
|
||||
"Closed" state and its target version should be specified.
|
||||
|
||||
### Merged ###
|
||||
|
||||
* Pull request
|
||||
* State: Merged
|
||||
* Assignee: not applicable
|
||||
* Label: External Contribution
|
||||
* Jira
|
||||
* State: "Closed"
|
||||
* Assignee: not applicable
|
||||
* Label: "Contribution"
|
||||
|
||||
This is the "success" final state for a contribution.
|
||||
Ideally all contributions will end up in this state.
|
||||
No further actions are necessary.
|
||||
|
||||
### Closed ###
|
||||
|
||||
* Pull request
|
||||
* State: Closed
|
||||
* Assignee: not applicable
|
||||
* Label: eventually "need feedback"
|
||||
* Jira
|
||||
* State: "Closed"
|
||||
* Assignee: not applicable
|
||||
|
||||
This is the "failure" final state for a contribution.
|
||||
A contribution can land in this state for one of the following reasons:
|
||||
* It was rejected by the reviewers
|
||||
* It was retracted by the contributor
|
||||
* It was closed due to contributor's inactivity or lack of replies to
|
||||
questions, as signified by the presence of the "need feedback" label
|
||||
into the pull request.
|
||||
@@ -5,23 +5,26 @@ MariaDB Server has a vibrant community contributing in a wide range of areas. Th
|
||||
### Engage online with other community members
|
||||
---
|
||||
- [MariaDB on Zulip](https://mariadb.zulipchat.com/)
|
||||
- [maria-developers mailing list](http://launchpad.net/~maria-developers)
|
||||
- [maria-discuss mailing list](http://launchpad.net/~maria-discuss)
|
||||
- [maria-docs mailing list](http://launchpad.net/~maria-docs)
|
||||
- The MariaDB Foundation and MariaDB Corporation have a presence on Reddit, Twitter and Facebook. See the [social media page](https://mariadb.com/kb/en/mariadb/social-media/).
|
||||
- [maria-developers mailing list](https://lists.mariadb.org/postorius/lists/developers.lists.mariadb.org/)
|
||||
- [maria-discuss mailing list](https://lists.mariadb.org/postorius/lists/discuss.lists.mariadb.org/)
|
||||
- [maria-docs mailing list](https://lists.mariadb.org/postorius/lists/docs.lists.mariadb.org/)
|
||||
- The MariaDB Foundation and MariaDB Corporation have a presence on Reddit, Twitter and Facebook. See the [social media page](https://mariadb.com/docs/general-resources/community/joining-the-community).
|
||||
|
||||
### Help document MariaDB
|
||||
----
|
||||
- Contribute towards [documenting MariaDB Server](https://mariadb.com/kb/en/meta/writing-editing-library-articles/) and its ecosystem by adding new content or improving existing content.
|
||||
- [Translate](https://mariadb.com/kb/en/meta/translating-library-articles/) existing documentation.
|
||||
---
|
||||
- Contribute towards [documenting MariaDB Server](https://mariadb.com/docs/general-resources/about/readme/contributing-documentation) and its ecosystem by adding new content or improving existing content.
|
||||
- [Translate](https://mariadb.com/docs/general-resources/about/readme/contributing-documentation) existing documentation.
|
||||
|
||||
### Help debug and develop MariaDB
|
||||
-----
|
||||
- [Report bugs](https://jira.mariadb.org/)
|
||||
- Test development versions
|
||||
- Write code to fix bugs or develop new features (see [Getting Started for Developers](https://mariadb.org/getting-started-for-developers)).See also [list of beginner friendly tasks](https://jira.mariadb.org/browse/MDEV-15736?jql=resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20beginner-friendly%20ORDER%20BY%20updated%20DESC)
|
||||
- Help with code quality control
|
||||
- Participate in packaging for different Linux distributions
|
||||
### Help develop MariaDB
|
||||
---
|
||||
- Fix bugs or develop new features. See [COMMUNITY_CONTRIBUTIONS.md](COMMUNITY_CONTRIBUTIONS.md) for details.
|
||||
- Review code contributions
|
||||
- Test bug fixes and features
|
||||
- Participate in packaging for different distributions
|
||||
|
||||
Check the [list of beginner friendly tasks](https://jira.mariadb.org/issues/?jql=status%3DConfirmed%20AND%20labels%3Dbeginner-friendly%20ORDER%20BY%20updated%20DESC). Or talk to the [MariaDB developers](#engage-online-with-other-community-members).
|
||||
|
||||
See also [Getting Started for Developers](https://mariadb.org/getting-started-for-developers). Coding standards for the main source code can be found in [CODING_STANDARDS.md](CODING_STANDARDS.md).
|
||||
|
||||
### Sponsor or donate
|
||||
---
|
||||
@@ -31,10 +34,10 @@ You’re very welcome to support MariaDB Server as an individual, or talk your c
|
||||
---
|
||||
- Attend an event
|
||||
- [Events and Conferences page](https://mariadb.org/events/)
|
||||
- [mariadb.meetup.com](http://mariadb.meetup.com/)
|
||||
- [mariadb.meetup.com](https://mariadb.meetup.com/)
|
||||
|
||||
### Live QA for beginner contributors
|
||||
----
|
||||
### Live Q&A for beginner contributors
|
||||
---
|
||||
MariaDB has a dedicated time each week when we answer new contributor questions live on Zulip.
|
||||
From 8:00 to 10:00 UTC on Mondays, and 10:00 to 12:00 UTC on Thursdays, anyone can ask any questions they’d like,
|
||||
and a live developer will be available to assist.
|
||||
@@ -42,5 +45,5 @@ New contributors can ask questions any time, but we will provide immediate feedb
|
||||
|
||||
### Additional resources
|
||||
----
|
||||
- [MariaDB Foundation ](https://mariadb.org/)
|
||||
- [Knowledge Base](https://mariadb.com/kb/en/)
|
||||
- [MariaDB Foundation](https://mariadb.org/)
|
||||
- [MariaDB Documentation](https://mariadb.com/docs/)
|
||||
|
||||
2
CREDITS
2
CREDITS
@@ -66,7 +66,7 @@ following services to the MariaDB community:
|
||||
- Bug fixing in MariaDB (for bugs that affects a large part of the community)
|
||||
- Building the official MariaDB binaries
|
||||
- Maintaining https://mariadb.org
|
||||
- Documenting MariaDB in the MariaDB Knowledge Base https://mariadb.com/kb
|
||||
- Documenting MariaDB in the MariaDB Documentation https://mariadb.com/docs
|
||||
|
||||
To be able to do the above we need help from corporations and individuals!
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ MariaDB and MySQL have identical install methods. In this document we
|
||||
describe how to install MariaDB.
|
||||
|
||||
The full documentation for installing MariaDB can be found at
|
||||
https://mariadb.com/kb/en/library/binary-packages/
|
||||
https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/installing-mariadb/binary-packages
|
||||
However most documentation at www.mysql.com also applies.
|
||||
|
||||
2.2. Installing MariaDB from Generic Binaries on Unix/Linux
|
||||
@@ -36,7 +36,7 @@ However most documentation at www.mysql.com also applies.
|
||||
please report them to: https://mariadb.org/jira
|
||||
|
||||
See the instructions at
|
||||
https://mariadb.com/kb/en/mariadb-community-bug-reporting
|
||||
https://mariadb.com/docs/general-resources/community/community/bug-tracking/reporting-bugs
|
||||
|
||||
The basic commands that you must execute to install and use a
|
||||
MariaDB binary distribution are:
|
||||
@@ -83,7 +83,7 @@ shell> useradd -g mysql mysql
|
||||
shell> cd /usr/local
|
||||
|
||||
3. Obtain a distribution file using the instructions at
|
||||
https://mariadb.com/kb/en/library/where-to-download-mariadb/
|
||||
https://mariadb.com/docs/server/clients-and-utilities/server-client-software/download/where-to-download-mariadb
|
||||
The description below describes how to install a MariaDB tar file.
|
||||
|
||||
4. Unpack the distribution, which creates the installation
|
||||
@@ -152,7 +152,7 @@ shell> chown -R mysql data
|
||||
location where your system has its startup files. More
|
||||
information can be found in the support-files/mysql.server
|
||||
script itself and at
|
||||
https://mariadb.com/kb/en/starting-and-stopping-mariadb-automatically.
|
||||
https://mariadb.com/docs/server/server-management/starting-and-stopping-mariadb/starting-and-stopping-mariadb-automatically
|
||||
10. You can set up new accounts using the bin/mysql_setpermission
|
||||
script if you install the DBI and DBD::MariaDB Perl modules. See
|
||||
Section 4.6.14, "mysql_setpermission --- Interactively Set
|
||||
@@ -184,7 +184,7 @@ shell> bin/mysqld_safe --user=mysql &
|
||||
directory.
|
||||
|
||||
More information about mysqld_safe can be found at
|
||||
https://mariadb.com/kb/en/mysqld_safe
|
||||
https://mariadb.com/docs/server/clients-and-utilities/legacy-clients-and-utilities/mariadbd_safe
|
||||
|
||||
Note
|
||||
|
||||
|
||||
@@ -1,485 +0,0 @@
|
||||
Codership Oy
|
||||
http://www.codership.com
|
||||
<info@codership.com>
|
||||
|
||||
DISCLAIMER
|
||||
|
||||
THIS SOFTWARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
IN NO EVENT SHALL CODERSHIP OY BE HELD LIABLE TO ANY PARTY FOR ANY DAMAGES
|
||||
RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE.
|
||||
|
||||
Trademark Information.
|
||||
|
||||
MySQL is a trademark or registered trademark of Oracle and/or its affiliates.
|
||||
Other trademarks are the property of their respective owners.
|
||||
|
||||
Licensing Information.
|
||||
|
||||
Please see file COPYING that came with this distribution
|
||||
|
||||
Source code can be found at
|
||||
wsrep API: https://launchpad.net/wsrep
|
||||
MySQL patch: https://launchpad.net/codership-mysql
|
||||
|
||||
|
||||
ABOUT THIS DOCUMENT
|
||||
|
||||
This document covers installation and configuration issues specific to this
|
||||
wsrep-patched MySQL distribution by Codership. It does not cover the use or
|
||||
administration of MySQL server per se. The reader is assumed to know how to
|
||||
install, configure, administer and use standard MySQL server version 5.1.xx.
|
||||
|
||||
|
||||
MYSQL-5.5.x/wsrep-23.x
|
||||
|
||||
CONTENTS:
|
||||
=========
|
||||
1. WHAT IS WSREP PATCH FOR MYSQL
|
||||
2. INSTALLATION
|
||||
3. FIRST TIME SETUP
|
||||
3.1 CONFIGURATION FILES
|
||||
3.2 DATABASE PRIVILEGES
|
||||
3.3 CHECK AND CORRECT FIREWALL SETTINGS
|
||||
3.4 SELINUX
|
||||
3.5 APPARMOR
|
||||
3.6 CONNECT TO CLUSTER
|
||||
4. UPGRADING FROM MySQL 5.1.x
|
||||
5. CONFIGURATION OPTIONS
|
||||
5.1 MANDATORY MYSQL OPTIONS
|
||||
5.2 WSREP OPTIONS
|
||||
6. ONLINE SCHEMA UPGRADE
|
||||
6.1 TOTAL ORDER ISOLATION (TOI)
|
||||
6.2 ROLLING SCHEMA UPGRADE (RSU)
|
||||
7. LIMITATIONS
|
||||
|
||||
|
||||
1. WHAT IS WSREP PATCH FOR MYSQL/INNODB
|
||||
|
||||
Wsrep API developed by Codership Oy is a modern generic (database-agnostic)
|
||||
replication API for transactional databases with a goal to make database
|
||||
replication/logging subsystem completely modular and pluggable. It is developed
|
||||
with flexibility and completeness in mind to satisfy a broad range of modern
|
||||
replication scenarios. It is equally suitable for synchronous and asynchronous,
|
||||
master-slave and multi-master replication.
|
||||
|
||||
wsrep stands for Write Set REPlication.
|
||||
|
||||
Wsrep patch for MySQL/InnoDB allows MySQL server to load and use various wsrep
|
||||
API implementations ("wsrep providers") with different qualities of service.
|
||||
Without wsrep provider MySQL-wsrep server will function like a regular
|
||||
standalone server.
|
||||
|
||||
|
||||
2. INSTALLATION
|
||||
|
||||
In the examples below mysql authentication options are omitted for brevity.
|
||||
|
||||
2.1 Download and install mysql-wsrep package.
|
||||
|
||||
Download binary package for your Linux distribution from
|
||||
https://launchpad.net/codership-mysql/
|
||||
|
||||
2.1.1 On Debian and Debian-derived distributions.
|
||||
|
||||
Upgrade from mysql-server-5.0 to mysql-wsrep is not supported yet, please
|
||||
upgrade to mysql-server-5.1 first.
|
||||
|
||||
If you're installing over an existing mysql installation, mysql-server-wsrep
|
||||
will conflict with the mysql-server-5.1 package, so remove it first:
|
||||
|
||||
$ sudo apt-get remove mysql-server-5.1 mysql-server-core-5.1
|
||||
|
||||
mysql-server-wsrep requires psmisc and mysql-client-5.1.47 (or later).
|
||||
MySQL 5.1 packages can be found from backports repositories.
|
||||
For further information about configuring and using Debian or Ubuntu
|
||||
backports, see:
|
||||
|
||||
* http://backports.debian.org
|
||||
|
||||
* https://help.ubuntu.com/community/UbuntuBackports
|
||||
|
||||
For example, installation of required packages on Debian Lenny:
|
||||
|
||||
$ sudo apt-get install psmisc
|
||||
$ sudo apt-get -t lenny-backports install mysql-client-5.1
|
||||
|
||||
Now you should be able to install the mysql-wsrep package:
|
||||
|
||||
$ sudo dpkg -i <mysql-server-wsrep DEB>
|
||||
|
||||
2.1.2 On CentOS and similar RPM-based distributions.
|
||||
|
||||
If you're migrating from existing MySQL installation, there are two variants:
|
||||
|
||||
a) If you're already using official MySQL-server-community 5.1.x RPM from
|
||||
Oracle:
|
||||
|
||||
# rpm -e mysql-server
|
||||
|
||||
b) If you're upgrading from the stock mysql-5.0.77 on CentOS:
|
||||
|
||||
1) Make sure that the following packages are not installed:
|
||||
# rpm --nodeps --allmatches -e mysql-server mysql-test mysql-bench
|
||||
|
||||
2) Install *official* MySQL-shared-compat-5.1.x from
|
||||
http://dev.mysql.com/downloads/mysql/5.1.html
|
||||
|
||||
Actual installation:
|
||||
|
||||
# rpm -Uvh <MySQL-server-wsrep RPM>
|
||||
|
||||
If this fails due to unsatisfied dependencies, install missing packages
|
||||
(e.g. yum install perl-DBI) and retry.
|
||||
|
||||
Additional packages to consider (if not yet installed):
|
||||
* galera (multi-master replication provider, https://launchpad.net/galera)
|
||||
* MySQL-client-community (for connecting to server and mysqldump-based SST)
|
||||
* rsync (for rsync-based SST)
|
||||
* mariabackup and nc (for mariabackup-based SST)
|
||||
|
||||
2.2 Upgrade system tables.
|
||||
|
||||
If you're upgrading a previous MySQL installation, it might be advisable to
|
||||
upgrade system tables. To do that start mysqld and run mysql_upgrade command.
|
||||
Consult MySQL documentation in case of errors. Normally they are not critical
|
||||
and can be ignored unless specific functionality is needed.
|
||||
|
||||
|
||||
3. FIRST TIME SETUP
|
||||
|
||||
Unless you're upgrading an already installed mysql-wsrep package, you will need
|
||||
to set up a few things to prepare the server for operation.
|
||||
|
||||
3.1 CONFIGURATION FILES
|
||||
|
||||
* Make sure system-wide my.cnf does not bind mysqld to 127.0.0.1. That is, if
|
||||
you have the following line in [mysqld] section, comment it out:
|
||||
|
||||
#bind-address = 127.0.0.1
|
||||
|
||||
* Make sure system-wide my.cnf contains "!includedir /etc/mysql/conf.d/" line.
|
||||
|
||||
* Edit /etc/mysql/conf.d/wsrep.cnf and set wsrep_provider option by specifying
|
||||
a path to the provider library. If you don't have a provider, leave it as it is.
|
||||
|
||||
* When a new node joins the cluster it'll have to receive a state snapshot from
|
||||
one of the peers. This requires a privileged MySQL account with access from
|
||||
the rest of the cluster. Edit /etc/mysql/conf.d/wsrep.cnf and set mysql
|
||||
login/password pair for SST, for example:
|
||||
|
||||
wsrep_sst_auth=wsrep_sst:wspass
|
||||
|
||||
* See CONFIGURATION section below about other configuration parameters that you
|
||||
might want to change at this point.
|
||||
|
||||
3.2 DATABASE PRIVILEGES
|
||||
|
||||
Restart MySQL server and connect to it as root to grant privileges to SST
|
||||
account (empty users confuse MySQL authentication matching rules, we need to
|
||||
delete them too):
|
||||
|
||||
$ mysql -e "SET wsrep_on=OFF; DELETE FROM mysql.user WHERE user='';"
|
||||
$ mysql -e "SET wsrep_on=OFF; GRANT ALL ON *.* TO wsrep_sst@'%' IDENTIFIED BY 'wspass'";
|
||||
|
||||
3.3 CHECK AND CORRECT FIREWALL SETTINGS.
|
||||
|
||||
MySQL-wsrep server needs to be accessible from other cluster members through
|
||||
its client listening socket and through wsrep provider socket. See your
|
||||
distribution and wsrep provider documentation for details. For example on
|
||||
CentOS you might need to do something along these lines:
|
||||
|
||||
# iptables --insert RH-Firewall-1-INPUT 1 --proto tcp --source <my IP>/24 --destination <my IP>/32 --dport 3306 -j ACCEPT
|
||||
# iptables --insert RH-Firewall-1-INPUT 1 --proto tcp --source <my IP>/24 --destination <my IP>/32 --dport 4567 -j ACCEPT
|
||||
|
||||
If there is a NAT firewall between the nodes, it must be configured to allow
|
||||
direct connections between the nodes (e.g. via port forwarding).
|
||||
|
||||
3.4 SELINUX
|
||||
|
||||
If you have SELinux enabled, it may block mysqld from doing required operations.
|
||||
You'll need to either disable it or configure to allow mysqld to run external
|
||||
programs and open listen sockets at unprivileged ports (i.e. things that
|
||||
an unprivileged user can do). See SELinux documentation about it.
|
||||
|
||||
To quickly disable SELinux:
|
||||
1) run 'setenforce 0' as root.
|
||||
2) set 'SELINUX=permissive' in /etc/selinux/config
|
||||
|
||||
3.5 APPARMOR
|
||||
|
||||
AppArmor automatically comes with Ubuntu and may also prevent mysqld to from
|
||||
opening additional ports or run scripts. See AppArmor documentation about its
|
||||
configuration. To disable AppArmor for mysqld:
|
||||
|
||||
$ cd /etc/apparmor.d/disable/
|
||||
$ sudo ln -s /etc/apparmor.d/usr.sbin.mysqld
|
||||
$ sudo service apparmor restart
|
||||
|
||||
|
||||
3.6 CONNECT TO CLUSTER
|
||||
|
||||
Now you're ready to connect to cluster by setting wsrep_cluster_address variable
|
||||
and monitor status of wsrep provider:
|
||||
|
||||
mysql> SET GLOBAL wsrep_cluster_address='<cluster address string>';
|
||||
mysql> SHOW STATUS LIKE 'wsrep%';
|
||||
|
||||
|
||||
4 UPGRADING FROM MySQL 5.1.x
|
||||
|
||||
!!! THESE INSTRUCTIONS ARE PRELIMINARY AND INCOMPLETE !!!
|
||||
|
||||
1) BEFORE UPGRADE (while running 5.1.x):
|
||||
- comment out 'wsrep_provider' setting from configuration files
|
||||
(my.cnf and/or wsrep.cnf)
|
||||
- If performing a rolling upgrade on a running cluster, set
|
||||
wsrep_sst_method=mysqldump.
|
||||
You might also need to configure wsrep_sst_receive_address and
|
||||
wsrep_sst_auth appropriately. mysqldump is the only way to transfer data
|
||||
from 5.1.x to 5.5.x reliably.
|
||||
- remove innodb_plugin settings from configuration files.
|
||||
|
||||
2) Perform upgrade as usual:
|
||||
http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html
|
||||
Don't forget to run 'mysql_upgrade' command.
|
||||
|
||||
3) AFTER UPGRADING individual node:
|
||||
- uncomment 'wsrep_provider' line in configuration file.
|
||||
- restart the server and join the cluster.
|
||||
|
||||
4) AFTER UPGRADING the whole cluster:
|
||||
- revert to usual wsrep SST settings if not 'mysqldump'.
|
||||
|
||||
|
||||
5. CONFIGURATION OPTIONS
|
||||
|
||||
5.1 MANDATORY MYSQL OPTIONS
|
||||
|
||||
binlog_format=ROW
|
||||
This option is required to use row-level replication as opposed to
|
||||
statement-level. For performance and consistency considerations don't change
|
||||
that. As a side effect, binlog, if turned on, can be ROW only. In future this
|
||||
option won't have special meaning.
|
||||
|
||||
innodb_autoinc_lock_mode=2
|
||||
This is a required parameter. Without it INSERTs into tables with
|
||||
AUTO_INCREMENT column may fail.
|
||||
autoinc lock modes 0 and 1 can cause unresolved deadlock, and make
|
||||
the system unresponsive.
|
||||
|
||||
5.2 WSREP OPTIONS
|
||||
|
||||
All options are optional except for wsrep_provider, wsrep_cluster_address, and
|
||||
wsrep_sst_auth.
|
||||
|
||||
wsrep_provider=none
|
||||
A full path to the library that implements WSREP interface. If none is
|
||||
specified, the server behaves like a regular mysqld.
|
||||
|
||||
wsrep_provider_options=
|
||||
Provider-specific option string. Check wsrep provider documentation or
|
||||
http://www.codership.com/wiki
|
||||
|
||||
wsrep_cluster_address=
|
||||
Provider-specific cluster address string. This is used to connect a node to
|
||||
the desired cluster. This option can be given either on mysqld startup or set
|
||||
during runtime. See wsrep provider documentation for possible values.
|
||||
|
||||
wsrep_cluster_name="my_wsrep_cluster"
|
||||
Logical cluster name, must be the same for all nodes of the cluster.
|
||||
|
||||
wsrep_node_address=
|
||||
An option to explicitly specify the network address of the node in the form
|
||||
<address>[:port] if autoguessing for some reason does not produce desirable
|
||||
results (multiple network interfaces, NAT, etc.)
|
||||
If not explicitly overridden by wsrep_sst_receive_address, the <address> part
|
||||
will be used to listen for SST (see below). And the whole <address>[:port]
|
||||
will be passed to the wsrep provider to be used as a base address in its
|
||||
communications.
|
||||
|
||||
wsrep_node_name=
|
||||
Human readable node name (for easier log reading only). Defaults to hostname.
|
||||
|
||||
wsrep_slave_threads=1
|
||||
The number of threads dedicated to the processing of writesets from other nodes.
|
||||
For best performance should be few per CPU core.
|
||||
|
||||
wsrep_dbug_option
|
||||
Options for the built-in DBUG library (independent from what MySQL uses).
|
||||
Empty by default. Not currently in use.
|
||||
|
||||
wsrep_debug=0
|
||||
Enable debug-level logging.
|
||||
|
||||
wsrep_convert_LOCK_to_trx=0
|
||||
Implicitly convert locking sessions into transactions inside mysqld. By
|
||||
itself it does not mean support for locking sessions, but it prevents the
|
||||
database from going into logically inconsistent state. Note however, that
|
||||
loading large database dump with LOCK statements might result in abnormally
|
||||
large transactions and cause an out-of-memory condition
|
||||
|
||||
wsrep_retry_autocommit=1
|
||||
Retry autocommit queries and single statement transactions should they fail
|
||||
certification test. This is analogous to rescheduling an autocommit query
|
||||
should it go into a deadlock with other transactions in the database lock
|
||||
manager.
|
||||
|
||||
wsrep_auto_increment_control=1
|
||||
Automatically adjust auto_increment_increment and auto_increment_offset
|
||||
variables based on the number of nodes in the cluster. Significantly reduces
|
||||
certification conflict rate for INSERTS.
|
||||
|
||||
wsrep_drupal_282555_workaround=1
|
||||
MySQL seems to have an obscure bug when INSERT into table with
|
||||
AUTO_INCREMENT column with NULL value for that column can fail with a
|
||||
duplicate key error. When this option is on, it retries such INSERTs.
|
||||
Required for stable Drupal operation. Documented at:
|
||||
http://bugs.mysql.com/bug.php?id=41984
|
||||
http://drupal.org/node/282555
|
||||
|
||||
wsrep_causal_reads=0
|
||||
Enforce strict READ COMMITTED semantics on reads and transactions. May
|
||||
result in additional latencies. It is a session variable.
|
||||
|
||||
wsrep_OSU_method=TOI
|
||||
Online Schema Upgrade (OSU) can be performed with two alternative methods:
|
||||
Total Order Isolation (TOI) runs DDL statement in all cluster nodes in
|
||||
same total order sequence locking the affected table for the duration of the
|
||||
operation. This may result in the whole cluster being blocked for the
|
||||
duration of the operation.
|
||||
Rolling Schema Upgrade (RSU) executes the DDL statement only locally, thus
|
||||
blocking only one cluster node. During the DDL processing, the node
|
||||
is not replicating and may be unable to process replication events (due to
|
||||
table lock). Once DDL operation is complete, the node will catch up and sync
|
||||
with the cluster to become fully operational again. The DDL statement or
|
||||
its effects are not replicated, so it is the user's responsibility to manually
|
||||
perform this operation on each of the nodes.
|
||||
|
||||
wsrep_forced_binlog_format=none
|
||||
Force every transaction to use given binlog format. When this variable is
|
||||
set to something else than NONE, all transactions will use the given forced
|
||||
format, regardless of what the client session has specified in binlog_format.
|
||||
Valid choices for wsrep_forced_binlog_format are: ROW, STATEMENT, MIXED and
|
||||
special value NONE, meaning that there is no forced binlog format in effect.
|
||||
This variable was introduced to support STATEMENT format replication during
|
||||
rolling schema upgrade processing. However, in most cases ROW replication
|
||||
is valid for asymmetric schema replication.
|
||||
|
||||
State snapshot transfer options.
|
||||
|
||||
When a new node joins the cluster it has to synchronize its initial state with
|
||||
the other cluster members by transferring state snapshot from one of them.
|
||||
The options below govern how this happens and should be set up before attempting
|
||||
to join or start a cluster.
|
||||
|
||||
wsrep_sst_method=rsync
|
||||
What method to use to copy database state to a newly joined node. Supported
|
||||
methods:
|
||||
- mysqldump: slow (except for small datasets) but allows for upgrade
|
||||
between major MySQL versions or InnoDB features.
|
||||
- rsync: much faster on large datasets (default).
|
||||
- rsync_wan: same as rsync but with deltaxfer to minimize network traffic.
|
||||
- mariabackup: very fast and practically non-blocking SST method based on
|
||||
mariabackup tool (enhanced version of Percona's xtrabackup).
|
||||
|
||||
(for mariabackup to work the following settings must be present in my.cnf
|
||||
on all nodes:
|
||||
[mysqld]
|
||||
wsrep_sst_auth=root:<root password>
|
||||
datadir=<path to data dir>
|
||||
[client]
|
||||
socket=<path to socket>
|
||||
)
|
||||
|
||||
wsrep_sst_receive_address=
|
||||
Address (hostname:port) at which this node wants to receive state snapshot.
|
||||
Defaults to mysqld bind address, and if that is not specified (0.0.0.0) -
|
||||
to the first IP of eth0 + mysqld bind port.
|
||||
NOTE: check that your firewall allows connections to this address from other
|
||||
cluster nodes.
|
||||
|
||||
wsrep_sst_auth=
|
||||
Authentication information needed for state transfer. Depends on the state
|
||||
transfer method. For mysqldump-based SST it is
|
||||
<mysql_root_user>:<mysql_root_password>
|
||||
and should be the same on all nodes - it is used to authenticate with both
|
||||
state snapshot receiver and state snapshot donor.
|
||||
|
||||
wsrep_sst_donor=
|
||||
A name of the node which should serve as state snapshot donor. This allows
|
||||
controlling which node will serve the state snapshot request. By default the
|
||||
most suitable node is chosen by the wsrep provider. This is the same as given in
|
||||
wsrep_node_name.
|
||||
|
||||
|
||||
6. ONLINE SCHEMA UPGRADE
|
||||
|
||||
Schema upgrades mean any data definition statements (DDL statements) run
|
||||
for the database. They change the database structure and are non-
|
||||
transactional.
|
||||
|
||||
Release 22.3 brings a new method for performing schema upgrades. A user can
|
||||
now choose whether to use the traditional total order isolation or new
|
||||
rolling schema upgrade method. The OSU method choice is done by global
|
||||
parameter: 'wsrep_OSU_method'.
|
||||
|
||||
6.1 Total Order Isolation (TOI)
|
||||
|
||||
With earlier releases, DDL processing happened always by Total Order
|
||||
Isolation (TOI) method. With TOI, the DDL was scheduled to be processed in
|
||||
same transaction sequencing 'slot' in each cluster node.
|
||||
The processing is secured by locking the affected table from any other use.
|
||||
With TOI method, the whole cluster has part of the database locked for the
|
||||
duration of the DDL processing.
|
||||
|
||||
6.2 Rolling Schema Upgrade (RSU)
|
||||
|
||||
Rolling schema upgrade is a new DDL processing method, where DDL will be
|
||||
processed locally for the node. The node is disconnected of the replication
|
||||
for the duration of the DDL processing, so that there is only DDL statement
|
||||
processing in the node and it does not block the rest of the cluster. When
|
||||
the DDL processing is complete, the node applies delayed replication events
|
||||
and synchronizes back with the cluster.
|
||||
The DDL can then be executed cluster-wide by running the same DDL statement
|
||||
for each node in turn. When this rolling schema upgrade proceeds, part of
|
||||
the cluster will have old schema structure and part of the cluster will have
|
||||
new schema structure.
|
||||
|
||||
|
||||
7. LIMITATIONS
|
||||
|
||||
1) Currently replication works only with InnoDB storage engine. Any writes to
|
||||
tables of other types, including system (mysql.*) tables are not replicated.
|
||||
However, DDL statements are replicated in statement level, and changes
|
||||
to mysql.* tables will get replicated that way.
|
||||
So, you can safely issue: CREATE USER...,
|
||||
but issuing: INSERT INTO mysql.user..., will not be replicated.
|
||||
|
||||
2) DELETE operation is unsupported on tables without primary key. Also rows in
|
||||
tables without primary key may appear in different order on different nodes.
|
||||
As a result SELECT...LIMIT... may return slightly different sets.
|
||||
|
||||
3) Unsupported queries:
|
||||
* LOCK/UNLOCK TABLES cannot be supported in multi-master setups.
|
||||
* lock functions (GET_LOCK(), RELEASE_LOCK()... )
|
||||
|
||||
4) Query log cannot be directed to a table. If you enable query logging,
|
||||
you must forward the log to a file:
|
||||
log_output = FILE
|
||||
Use general_log and general_log_file to choose query logging and the
|
||||
log file name
|
||||
|
||||
5) Maximum allowed transaction size is defined by wsrep_max_ws_rows and
|
||||
wsrep_max_ws_size. Anything bigger (e.g. huge LOAD DATA) will be rejected.
|
||||
|
||||
6) Due to cluster level optimistic concurrency control, transaction issuing
|
||||
COMMIT may still be aborted at that stage. There can be two transactions.
|
||||
writing to same rows and committing in separate cluster nodes, and only one
|
||||
of them can successfully commit. The failing one will be aborted.
|
||||
For cluster level aborts, MySQL/galera cluster gives back deadlock error.
|
||||
code (Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK)).
|
||||
|
||||
7) XA transactions can not be supported due to possible rollback on commit.
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
MariaDB is in most aspects identical to MySQL.
|
||||
|
||||
Differences between MySQL and MariaDB can be found at:
|
||||
https://mariadb.com/kb/en/mariadb-vs-mysql-features/
|
||||
https://mariadb.com/kb/en/mariadb-vs-mysql-compatibility/
|
||||
|
||||
The MariaDB manual can be found at:
|
||||
https://mariadb.com/kb/
|
||||
|
||||
The MySQL Reference Manual is available in various formats on
|
||||
http://dev.mysql.com/doc.
|
||||
@@ -1,3 +1,3 @@
|
||||
Instructions for building MariaDB can be found at:
|
||||
https://mariadb.com/kb/en/compiling-mariadb-from-source
|
||||
https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
Up-to-date instructions about building MariaDB on Windows can be found
|
||||
at: https://mariadb.com/kb/en/Building_MariaDB_on_Windows
|
||||
at: https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/compiling-mariadb-from-source/building_mariadb_on_windows
|
||||
|
||||
|
||||
@@ -12,4 +12,4 @@ that we are can try to fix it for the next release. You can also add
|
||||
feature request to the JIRA.
|
||||
|
||||
The latest documentation for the MariaDB server can be found at:
|
||||
https://mariadb.com/kb
|
||||
https://mariadb.com/docs
|
||||
|
||||
@@ -24,13 +24,13 @@ A description of the MariaDB project and a manual can be found at:
|
||||
|
||||
https://mariadb.org
|
||||
|
||||
https://mariadb.com/kb/en/
|
||||
https://mariadb.com/docs/
|
||||
|
||||
https://mariadb.com/kb/en/mariadb-vs-mysql-features/
|
||||
https://mariadb.com/docs/release-notes/community-server/about/compatibility-and-differences/mariadb-vs-mysql-features
|
||||
|
||||
https://mariadb.com/kb/en/mariadb-versus-mysql-compatibility/
|
||||
https://mariadb.com/docs/release-notes/community-server/about/compatibility-and-differences/mariadb-vs-mysql-compatibility
|
||||
|
||||
https://mariadb.com/kb/en/new-and-old-releases/
|
||||
https://mariadb.com/docs/release-notes
|
||||
|
||||
# Getting the code, building it and testing it
|
||||
|
||||
|
||||
340
THIRDPARTY
340
THIRDPARTY
@@ -930,180 +930,202 @@ archived older versions of code and data; there is also a smaller HTTP mirror.
|
||||
***************************************************************************
|
||||
|
||||
%%The following software may be included in this product:
|
||||
UnicodeData.txt
|
||||
http://www.unicode.org/copyright.html
|
||||
|
||||
Use of any of this software is governed by the terms of the license below:
|
||||
Unicode® Copyright and Terms of Use
|
||||
|
||||
Unicode Terms of Use
|
||||
For the general privacy policy governing access to this site, see the Unicode Privacy Policy.
|
||||
|
||||
For the general privacy policy governing access to this site, see the
|
||||
Unicode Privacy Policy. For trademark usage, see the Unicode
|
||||
Consortium (R) Trademarks and Logo Policy.
|
||||
Notice to End User: Terms of Use
|
||||
Carefully read the following legal agreement ("Agreement"). Use or
|
||||
copying of the software and/or codes provided with this agreement (The
|
||||
"Software") constitutes your acceptance of these terms
|
||||
Unicode Copyright
|
||||
Copyright © 1991-2023 Unicode, Inc. All rights reserved.
|
||||
Definitions
|
||||
|
||||
1. Unicode Copyright.
|
||||
1. Copyright (c) 1991-2008 Unicode, Inc. All rights reserved.
|
||||
2. Certain documents and files on this website contain a
|
||||
legend indicating that "Modification is permitted." Any person
|
||||
is hereby authorized, without fee, to modify such documents
|
||||
and files to create derivative works conforming to the
|
||||
Unicode (R) Standard, subject to Terms and Conditions herein.
|
||||
3. Any person is hereby authorized, without fee, to view, use,
|
||||
reproduce, and distribute all documents and files solely for
|
||||
informational purposes in the creation of products supporting
|
||||
the Unicode Standard, subject to the Terms and Conditions
|
||||
herein.
|
||||
4. Further specifications of rights and restrictions
|
||||
pertaining to the use of the particular set of data files
|
||||
known as the "Unicode Character Database" can be found in
|
||||
Exhibit 1.
|
||||
5. Each version of the Unicode Standard has further
|
||||
specifications of rights and restrictions of use. For the book
|
||||
editions, these are found on the back of the title page. For
|
||||
the online edition, certain files (such as the PDF files for
|
||||
book chapters and code charts) carry specific restrictions.
|
||||
All other files are covered under these general Terms of Use.
|
||||
To request a permission to reproduce any part of the Unicode
|
||||
Standard, please contact the Unicode Consortium.
|
||||
6. No license is granted to "mirror" the Unicode website where
|
||||
a fee is charged for access to the "mirror" site.
|
||||
7. Modification is not permitted with respect to this
|
||||
document. All copies of this document must be verbatim.
|
||||
2. Restricted Rights Legend. Any technical data or software which is
|
||||
licensed to the United States of America, its agencies and/or
|
||||
instrumentalities under this Agreement is commercial technical data
|
||||
or commercial computer software developed exclusively at private
|
||||
expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995),
|
||||
as applicable. For technical data, use, duplication, or disclosure
|
||||
by the Government is subject to restrictions as set forth in DFARS
|
||||
202.227-7015 Technical Data, Commercial and Items (Nov 1995) and
|
||||
this Agreement. For Software, in accordance with FAR 12-212 or DFARS
|
||||
227-7202, as applicable, use, duplication or disclosure by the
|
||||
Government is subject to the restrictions set forth in this
|
||||
Agreement.
|
||||
3. Warranties and Disclaimers.
|
||||
1. This publication and/or website may include technical or
|
||||
typographical errors or other inaccuracies . Changes are
|
||||
periodically added to the information herein; these changes
|
||||
will be incorporated in new editions of the publication and/or
|
||||
website. Unicode may make improvements and/or changes in the
|
||||
product(s) and/or program(s) described in this publication
|
||||
and/or website at any time.
|
||||
2. If this file has been purchased on magnetic or optical
|
||||
media from Unicode, Inc. the sole and exclusive remedy for any
|
||||
claim will be exchange of the defective media within ninety
|
||||
(90) days of original purchase.
|
||||
3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR
|
||||
SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND
|
||||
EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT
|
||||
LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE AND ITS
|
||||
LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN
|
||||
THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE
|
||||
REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE
|
||||
WEBSITE.
|
||||
4. Waiver of Damages. In no event shall Unicode or its licensors be
|
||||
liable for any special, incidental, indirect or consequential
|
||||
damages of any kind, or any damages whatsoever, whether or not
|
||||
Unicode was advised of the possibility of the damage, including,
|
||||
without limitation, those resulting from the following: loss of use,
|
||||
data or profits, in connection with the use, modification or
|
||||
distribution of this information or its derivatives.
|
||||
5. Trademarks.
|
||||
1. Unicode and the Unicode logo are registered trademarks of
|
||||
Unicode, Inc.
|
||||
2. This site contains product names and corporate names of
|
||||
other companies. All product names and company names and logos
|
||||
mentioned herein are the trademarks or registered trademarks
|
||||
of their respective owners. Other products and corporate names
|
||||
mentioned herein which are trademarks of a third party are
|
||||
used only for explanation and for the owners' benefit and with
|
||||
no intent to infringe.
|
||||
3. Use of third party products or information referred to
|
||||
herein is at the user's risk.
|
||||
6. Miscellaneous.
|
||||
1. Jurisdiction and Venue. This server is operated from a
|
||||
location in the State of California, United States of America.
|
||||
Unicode makes no representation that the materials are
|
||||
appropriate for use in other locations. If you access this
|
||||
server from other locations, you are responsible for
|
||||
compliance with local laws. This Agreement, all use of this
|
||||
site and any claims and damages resulting from use of this
|
||||
site are governed solely by the laws of the State of
|
||||
California without regard to any principles which would apply
|
||||
the laws of a different jurisdiction. The user agrees that any
|
||||
disputes regarding this site shall be resolved solely in the
|
||||
courts located in Santa Clara County, California. The user
|
||||
agrees said courts have personal jurisdiction and agree to
|
||||
waive any right to transfer the dispute to any other forum.
|
||||
2. Modification by Unicode Unicode shall have the right to
|
||||
modify this Agreement at any time by posting it to this site.
|
||||
The user may not assign any part of this Agreement without
|
||||
Unicode's prior written consent.
|
||||
3. Taxes. The user agrees to pay any taxes arising from access
|
||||
to this website or use of the information herein, except for
|
||||
those based on Unicode's net income.
|
||||
4. Severability. If any provision of this Agreement is
|
||||
declared invalid or unenforceable, the remaining provisions of
|
||||
this Agreement shall remain in effect.
|
||||
5. Entire Agreement. This Agreement constitutes the entire
|
||||
agreement between the parties.
|
||||
Unicode Data Files ("DATA FILES") include all data files under the directories:
|
||||
https://www.unicode.org/Public/
|
||||
https://www.unicode.org/reports/
|
||||
https://www.unicode.org/ivd/data/
|
||||
|
||||
Unicode Data Files do not include PDF online code charts under the directory:
|
||||
https://www.unicode.org/Public/
|
||||
|
||||
Unicode Software ("SOFTWARE") includes any source code published in the Unicode Standard
|
||||
or any source code or compiled code under the directories:
|
||||
https://www.unicode.org/Public/PROGRAMS/
|
||||
https://www.unicode.org/Public/cldr/
|
||||
http://site.icu-project.org/download/
|
||||
|
||||
Terms of Use
|
||||
Certain documents and files on this website contain a legend
|
||||
indicating that "Modification is permitted." Any person is hereby
|
||||
authorized, without fee, to modify such documents and files to
|
||||
create derivative works conforming to the Unicode® Standard, subject
|
||||
to Terms and Conditions herein.
|
||||
|
||||
Any person is hereby authorized, without fee, to view, use,
|
||||
reproduce, and distribute all documents and files, subject to the
|
||||
Terms and Conditions herein.
|
||||
|
||||
Further specifications of rights and restrictions pertaining to the
|
||||
use of the Unicode DATA FILES and SOFTWARE can be found in the
|
||||
Unicode Data Files and Software License.
|
||||
|
||||
Each version of the Unicode Standard has further specifications of
|
||||
rights and restrictions of use. For the book editions (Unicode 5.0
|
||||
and earlier), these are found on the back of the title page.
|
||||
|
||||
The Unicode PDF online code charts carry specific restrictions.
|
||||
Those restrictions are incorporated as the first page of each PDF
|
||||
code chart.
|
||||
|
||||
All other files, including online documentation of the core
|
||||
specification for Unicode 6.0 and later, are covered under these
|
||||
general Terms of Use.
|
||||
|
||||
No license is granted to "mirror" the Unicode website where a fee is
|
||||
charged for access to the "mirror" site.
|
||||
|
||||
Modification is not permitted with respect to this document. All
|
||||
copies of this document must be verbatim.
|
||||
|
||||
Restricted Rights Legend
|
||||
|
||||
Any technical data or software which is licensed to the United
|
||||
States of America, its agencies and/or instrumentalities under this
|
||||
Agreement is commercial technical data or commercial computer
|
||||
software developed exclusively at private expense as defined in FAR
|
||||
2.101, or DFARS 252.227-7014 (June 1995), as applicable. For
|
||||
technical data, use, duplication, or disclosure by the Government is
|
||||
subject to restrictions as set forth in DFARS 202.227-7015 Technical
|
||||
Data, Commercial and Items (Nov 1995) and this Agreement. For
|
||||
Software, in accordance with FAR 12-212 or DFARS 227-7202, as
|
||||
applicable, use, duplication or disclosure by the Government is
|
||||
subject to the restrictions set forth in this Agreement.
|
||||
|
||||
Warranties and Disclaimers
|
||||
This publication and/or website may include technical or
|
||||
typographical errors or other inaccuracies. Changes are periodically
|
||||
added to the information herein; these changes will be incorporated
|
||||
in new editions of the publication and/or website. Unicode, Inc. may
|
||||
make improvements and/or changes in the product(s) and/or program(s)
|
||||
described in this publication and/or website at any time.
|
||||
|
||||
If this file has been purchased on magnetic or optical media from
|
||||
Unicode, Inc. the sole and exclusive remedy for any claim will be
|
||||
exchange of the defective media within ninety (90) days of original
|
||||
purchase.
|
||||
|
||||
EXCEPT AS PROVIDED IN SECTION E.2, THIS PUBLICATION AND/OR SOFTWARE
|
||||
IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS,
|
||||
IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
|
||||
NON-INFRINGEMENT. UNICODE, INC. AND ITS LICENSORS ASSUME NO
|
||||
RESPONSIBILITY FOR ERRORS OR OMISSIONS IN THIS PUBLICATION AND/OR
|
||||
SOFTWARE OR OTHER DOCUMENTS WHICH ARE REFERENCED BY OR LINKED TO
|
||||
THIS PUBLICATION OR THE UNICODE WEBSITE.
|
||||
|
||||
Waiver of Damages
|
||||
In no event shall Unicode, Inc. or its licensors be liable for any
|
||||
special, incidental, indirect or consequential damages of any kind,
|
||||
or any damages whatsoever, whether or not Unicode, Inc. was advised
|
||||
of the possibility of the damage, including, without limitation,
|
||||
those resulting from the following: loss of use, data or profits, in
|
||||
connection with the use, modification or distribution of this
|
||||
information or its derivatives.
|
||||
|
||||
Trademarks & Logos
|
||||
The Unicode Word Mark and the Unicode Logo are trademarks of
|
||||
Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade
|
||||
names of Unicode, Inc. Use of the information and materials found on
|
||||
this website indicates your acknowledgement of Unicode, Inc.’s
|
||||
exclusive worldwide rights in the Unicode Word Mark, the Unicode
|
||||
Logo, and the Unicode trade names.
|
||||
|
||||
The Unicode Consortium Name and Trademark Usage Policy (“Trademark
|
||||
Policy”) are incorporated herein by reference and you agree to abide
|
||||
by the provisions of the Trademark Policy, which may be changed from
|
||||
time to time in the sole discretion of Unicode, Inc.
|
||||
|
||||
All third party trademarks referenced herein are the property of
|
||||
their respective owners.
|
||||
|
||||
Miscellaneous
|
||||
Jurisdiction and Venue. This website is operated from a location in
|
||||
the State of California, United States of America. Unicode, Inc.
|
||||
makes no representation that the materials are appropriate for use
|
||||
in other locations. If you access this website from other locations,
|
||||
you are responsible for compliance with local laws. This Agreement,
|
||||
all use of this website and any claims and damages resulting from
|
||||
use of this website are governed solely by the laws of the State of
|
||||
California without regard to any principles which would apply the
|
||||
laws of a different jurisdiction. The user agrees that any disputes
|
||||
regarding this website shall be resolved solely in the courts
|
||||
located in Santa Clara County, California. The user agrees said
|
||||
courts have personal jurisdiction and agree to waive any right to
|
||||
transfer the dispute to any other forum.
|
||||
|
||||
Modification by Unicode, Inc. Unicode, Inc. shall have the right to
|
||||
modify this Agreement at any time by posting it to this website. The
|
||||
user may not assign any part of this Agreement without Unicode,
|
||||
Inc.’s prior written consent.
|
||||
|
||||
Taxes. The user agrees to pay any taxes arising from access to this
|
||||
website or use of the information herein, except for those based on
|
||||
Unicode’s net income.
|
||||
|
||||
Severability. If any provision of this Agreement is declared
|
||||
invalid or unenforceable, the remaining provisions of this Agreement
|
||||
shall remain in effect.
|
||||
|
||||
Entire Agreement. This Agreement constitutes the entire agreement
|
||||
between the parties.
|
||||
|
||||
EXHIBIT 1
|
||||
UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
|
||||
|
||||
Unicode Data Files include all data files under the directories
|
||||
http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
|
||||
http://www.unicode.org/cldr/data/ . Unicode Software includes any source code
|
||||
published in the Unicode Standard or under the directories
|
||||
http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
|
||||
http://www.unicode.org/cldr/data/.
|
||||
See Terms of Use <https://www.unicode.org/copyright.html>
|
||||
for definitions of Unicode Inc.’s Data Files and Software.
|
||||
|
||||
NOTICE TO USER: Carefully read the following legal agreement. BY
|
||||
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES
|
||||
("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND
|
||||
AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU
|
||||
DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES
|
||||
OR SOFTWARE.
|
||||
NOTICE TO USER: Carefully read the following legal agreement.
|
||||
BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S
|
||||
DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"),
|
||||
YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
|
||||
TERMS AND CONDITIONS OF THIS AGREEMENT.
|
||||
IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE
|
||||
THE DATA FILES OR SOFTWARE.
|
||||
|
||||
COPYRIGHT AND PERMISSION NOTICE
|
||||
COPYRIGHT AND PERMISSION NOTICE
|
||||
|
||||
Copyright (c) 1991-2008 Unicode, Inc. All rights reserved. Distributed under
|
||||
the Terms of Use in http://www.unicode.org/copyright.html.
|
||||
Copyright © 1991-2023 Unicode, Inc. All rights reserved.
|
||||
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of the Unicode data files and any associated documentation (the "Data Files") or
|
||||
Unicode software and any associated documentation (the "Software") to deal in
|
||||
the Data Files or Software without restriction, including without limitation the
|
||||
rights to use, copy, modify, merge, publish, distribute, and/or sell copies of
|
||||
the Data Files or Software, and to permit persons to whom the Data Files or
|
||||
Software are furnished to do so, provided that (a) the above copyright notice(s)
|
||||
and this permission notice appear with all copies of the Data Files or Software,
|
||||
(b) both the above copyright notice(s) and this permission notice appear in
|
||||
associated documentation, and (c) there is clear notice in each modified Data
|
||||
File or in the Software as well as in the documentation associated with the Data
|
||||
File(s) or Software that the data or software has been modified.
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Unicode data files and any associated documentation
|
||||
(the "Data Files") or Unicode software and any associated documentation
|
||||
(the "Software") to deal in the Data Files or Software
|
||||
without restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, and/or sell copies of
|
||||
the Data Files or Software, and to permit persons to whom the Data Files
|
||||
or Software are furnished to do so, provided that either
|
||||
(a) this copyright and permission notice appear with all copies
|
||||
of the Data Files or Software, or
|
||||
(b) this copyright and permission notice appear in associated
|
||||
Documentation.
|
||||
|
||||
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
|
||||
PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
|
||||
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
|
||||
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
||||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
|
||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
|
||||
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
|
||||
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE.
|
||||
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
||||
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of a copyright holder shall not
|
||||
be used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in these Data Files or Software without prior written authorization of the
|
||||
copyright holder.
|
||||
|
||||
Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be
|
||||
registered in some jurisdictions. All other trademarks and registered trademarks
|
||||
mentioned herein are the property of their respective owners.
|
||||
Except as contained in this notice, the name of a copyright holder
|
||||
shall not be used in advertising or otherwise to promote the sale,
|
||||
use or other dealings in these Data Files or Software without prior
|
||||
written authorization of the copyright holder.
|
||||
|
||||
***************************************************************************
|
||||
|
||||
|
||||
4
VERSION
4
VERSION
@@ -1,4 +1,4 @@
|
||||
MYSQL_VERSION_MAJOR=10
|
||||
MYSQL_VERSION_MINOR=6
|
||||
MYSQL_VERSION_PATCH=28
|
||||
MYSQL_VERSION_MINOR=11
|
||||
MYSQL_VERSION_PATCH=19
|
||||
SERVER_MATURITY=stable
|
||||
|
||||
38
appveyor.yml
38
appveyor.yml
@@ -1,6 +1,42 @@
|
||||
version: build-{build}~branch-{branch}
|
||||
|
||||
clone_depth: 1
|
||||
clone_depth: 10
|
||||
|
||||
skip_branch_with_pr: true
|
||||
before_build:
|
||||
- ps: |
|
||||
function Get-Remote-Ref($ref) {
|
||||
try {
|
||||
$result = git ls-remote origin $ref 2>$null
|
||||
if (-not $result) {
|
||||
"Warning: Could not fetch remote ref '$ref'"
|
||||
return $null
|
||||
}
|
||||
return ($result -split "`t")[0]
|
||||
} catch {
|
||||
"Warning: Exception while running git ls-remote for '$ref': $_"
|
||||
return $null
|
||||
}
|
||||
}
|
||||
Get-ChildItem Env: | Where-Object { $_.Name -like 'APPVEYOR*COMMIT' } | ForEach-Object { "$($_.Name)=$($_.Value)" }
|
||||
$commit = $env:APPVEYOR_REPO_COMMIT
|
||||
$commit2 = $env:APPVEYOR_PULL_REQUEST_HEAD_COMMIT
|
||||
$branch = $env:APPVEYOR_REPO_BRANCH
|
||||
$latest = $null
|
||||
$mainBranch = $branch -match '^(main|\d+\.\d+)$'
|
||||
if ($env:APPVEYOR_PULL_REQUEST_NUMBER -eq $null) {
|
||||
"Branch build detected"
|
||||
$latest = Get-Remote-Ref "refs/heads/$branch"
|
||||
} else {
|
||||
$pr = $env:APPVEYOR_PULL_REQUEST_NUMBER
|
||||
$latest = Get-Remote-Ref "refs/pull/$pr/head"
|
||||
$mainBranch = $False
|
||||
"Pull Request build detected"
|
||||
}
|
||||
if ($latest -and ($commit -ne $latest) -and ($commit2 -ne $latest) -and (-not $mainBranch)) {
|
||||
"Skipping outdated commit (latest is $latest)"
|
||||
Exit-AppVeyorBuild
|
||||
}
|
||||
|
||||
build_script:
|
||||
# dump some system info
|
||||
|
||||
@@ -64,6 +64,12 @@ enum options_client
|
||||
OPT_PRINT_ROW_COUNT, OPT_PRINT_ROW_EVENT_POSITIONS,
|
||||
OPT_CHECK_IF_UPGRADE_NEEDED,
|
||||
OPT_COMPATIBILTY_CLEARTEXT_PLUGIN,
|
||||
OPT_STOP_POSITION,
|
||||
OPT_SERVER_ID,
|
||||
OPT_IGNORE_DOMAIN_IDS,
|
||||
OPT_DO_DOMAIN_IDS,
|
||||
OPT_IGNORE_SERVER_IDS,
|
||||
OPT_DO_SERVER_IDS,
|
||||
OPT_MAX_CLIENT_OPTION /* should be always the last */
|
||||
};
|
||||
|
||||
|
||||
@@ -34,9 +34,10 @@ typedef struct st_line_buffer
|
||||
bool truncated;
|
||||
} LINE_BUFFER;
|
||||
|
||||
extern LINE_BUFFER *batch_readline_init(ulong max_size,FILE *file);
|
||||
extern LINE_BUFFER *batch_readline_command(LINE_BUFFER *buffer, char * str);
|
||||
extern char *batch_readline(LINE_BUFFER *buffer, bool binary_mode);
|
||||
extern void batch_readline_end(LINE_BUFFER *buffer);
|
||||
extern bool init_line_buffer(LINE_BUFFER *buffer, File file, ulong size,
|
||||
ulong max_size);
|
||||
|
||||
#endif /* CLIENT_MY_READLINE_INCLUDED */
|
||||
|
||||
420
client/mysql.cc
420
client/mysql.cc
@@ -88,9 +88,7 @@ extern "C" {
|
||||
#endif /* defined(HAVE_CURSES_H) && defined(HAVE_TERM_H) */
|
||||
|
||||
#undef bcmp // Fix problem with new readline
|
||||
#if defined(_WIN32)
|
||||
#include <conio.h>
|
||||
#else
|
||||
#if !defined(_WIN32)
|
||||
# ifdef __APPLE__
|
||||
# include <editline/readline.h>
|
||||
# else
|
||||
@@ -104,6 +102,98 @@ extern "C" {
|
||||
#define USE_POPEN
|
||||
}
|
||||
|
||||
static CHARSET_INFO *charset_info= &my_charset_latin1;
|
||||
|
||||
#if defined(_WIN32)
|
||||
/*
|
||||
Set console mode for the whole duration of the client session.
|
||||
|
||||
We need for input
|
||||
- line input (i.e read lines from console)
|
||||
- echo typed characters
|
||||
- "cooked" mode, i.e we do not want to handle all keystrokes,
|
||||
like DEL etc ourselves, yet. We might want handle keystrokes
|
||||
in the future, to implement tab completion, and better
|
||||
(multiline) history.
|
||||
|
||||
Disable VT escapes for the output.We do not know what kind of escapes SELECT would return.
|
||||
*/
|
||||
struct Console_mode
|
||||
{
|
||||
HANDLE in= GetStdHandle(STD_INPUT_HANDLE);
|
||||
HANDLE out= GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
DWORD mode_in=0;
|
||||
DWORD mode_out=0;
|
||||
|
||||
enum {STDIN_CHANGED = 1, STDOUT_CHANGED = 2};
|
||||
int changes=0;
|
||||
|
||||
Console_mode()
|
||||
{
|
||||
if (in && in != INVALID_HANDLE_VALUE && GetConsoleMode(in, &mode_in))
|
||||
{
|
||||
SetConsoleMode(in, ENABLE_ECHO_INPUT|ENABLE_LINE_INPUT|ENABLE_PROCESSED_INPUT);
|
||||
changes |= STDIN_CHANGED;
|
||||
}
|
||||
|
||||
if (out && out != INVALID_HANDLE_VALUE && GetConsoleMode(out, &mode_out))
|
||||
{
|
||||
#ifdef ENABLE_VIRTUAL_TERMINAL_INPUT
|
||||
SetConsoleMode(out, mode_out & ~ENABLE_VIRTUAL_TERMINAL_INPUT);
|
||||
changes |= STDOUT_CHANGED;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
~Console_mode()
|
||||
{
|
||||
if (changes & STDIN_CHANGED)
|
||||
SetConsoleMode(in, mode_in);
|
||||
|
||||
if(changes & STDOUT_CHANGED)
|
||||
SetConsoleMode(out, mode_out);
|
||||
}
|
||||
};
|
||||
|
||||
static Console_mode my_conmode;
|
||||
|
||||
#define MAX_CGETS_LINE_LEN 65535
|
||||
/** Read line from console, chomp EOL*/
|
||||
static char *win_readline()
|
||||
{
|
||||
static wchar_t wstrbuf[MAX_CGETS_LINE_LEN];
|
||||
static char strbuf[MAX_CGETS_LINE_LEN * 4];
|
||||
|
||||
DWORD nchars= 0;
|
||||
uint len= 0;
|
||||
SetLastError(0);
|
||||
if (!ReadConsoleW(GetStdHandle(STD_INPUT_HANDLE), wstrbuf, MAX_CGETS_LINE_LEN-1,
|
||||
&nchars, NULL))
|
||||
goto err;
|
||||
if (nchars == 0 && GetLastError() == ERROR_OPERATION_ABORTED)
|
||||
goto err;
|
||||
|
||||
for (;nchars > 0; nchars--)
|
||||
{
|
||||
if (wstrbuf[nchars - 1] != '\n' && wstrbuf[nchars - 1] != '\r')
|
||||
break;
|
||||
}
|
||||
|
||||
if (nchars > 0)
|
||||
{
|
||||
uint errors;
|
||||
len= my_convert(strbuf, sizeof(strbuf), charset_info,
|
||||
(const char *) wstrbuf, nchars * sizeof(wchar_t),
|
||||
&my_charset_utf16le_bin, &errors);
|
||||
}
|
||||
strbuf[len]= 0;
|
||||
return strbuf;
|
||||
err:
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef HAVE_VIDATTR
|
||||
static int have_curses= 0;
|
||||
static void my_vidattr(chtype attrs)
|
||||
@@ -213,7 +303,6 @@ unsigned short terminal_width= 80;
|
||||
|
||||
static uint opt_protocol=0;
|
||||
static const char *opt_protocol_type= "";
|
||||
static CHARSET_INFO *charset_info= &my_charset_latin1;
|
||||
|
||||
#include "sslopt-vars.h"
|
||||
|
||||
@@ -1073,8 +1162,9 @@ static void print_table_data_xml(MYSQL_RES *result);
|
||||
static void print_tab_data(MYSQL_RES *result);
|
||||
static void print_table_data_vertically(MYSQL_RES *result);
|
||||
static void print_warnings(void);
|
||||
static void end_timer(ulonglong start_time, char *buff);
|
||||
static void nice_time(double sec,char *buff,bool part_second);
|
||||
static void end_timer(ulonglong start_time, char *buff, size_t buff_size);
|
||||
static void nice_time(double sec, char *buff, size_t buff_size,
|
||||
bool part_second);
|
||||
extern "C" sig_handler mysql_end(int sig) __attribute__ ((noreturn));
|
||||
extern "C" sig_handler handle_sigint(int sig);
|
||||
#if defined(HAVE_TERMIOS_H) && defined(GWINSZ_IN_SYS_IOCTL)
|
||||
@@ -1118,6 +1208,81 @@ inline int get_command_index(char cmd_char)
|
||||
return -1;
|
||||
}
|
||||
|
||||
static LINE_BUFFER *batch_readline_init(ulong max_size, const char *path)
|
||||
{
|
||||
LINE_BUFFER *line_buff;
|
||||
File file;
|
||||
MY_STAT input_file_stat;
|
||||
char buff[FN_REFLEN + 512];
|
||||
|
||||
if (path)
|
||||
{
|
||||
if ((file= my_open(path, O_RDONLY | O_BINARY, MYF(0))) < 0)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
if (my_errno == EACCES && my_stat(path, &input_file_stat, MYF(0)) &&
|
||||
MY_S_ISDIR(input_file_stat.st_mode))
|
||||
my_snprintf(buff, sizeof(buff), "Can't read from a directory '%.*s'",
|
||||
FN_REFLEN, path);
|
||||
else
|
||||
#endif
|
||||
my_snprintf(buff, sizeof(buff), "Failed to open file '%.*s', error: %d",
|
||||
FN_REFLEN, path, my_errno);
|
||||
put_info(buff, INFO_ERROR, 0);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
file= my_fileno(stdin);
|
||||
}
|
||||
|
||||
if (my_fstat(file, &input_file_stat, MYF(0)))
|
||||
{
|
||||
my_snprintf(buff, sizeof(buff), "Failed to stat file '%.*s', error: %d",
|
||||
FN_REFLEN, path ? path : "stdin", my_errno);
|
||||
goto err1;
|
||||
}
|
||||
|
||||
if (MY_S_ISDIR(input_file_stat.st_mode))
|
||||
{
|
||||
my_snprintf(buff, sizeof(buff), "Can't read from a directory '%.*s'",
|
||||
FN_REFLEN, path ? path : "stdin");
|
||||
goto err1;
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
if (MY_S_ISBLK(input_file_stat.st_mode))
|
||||
{
|
||||
my_snprintf(buff, sizeof(buff), "Can't read from a block device '%.*s'",
|
||||
FN_REFLEN, path ? path : "stdin");
|
||||
goto err1;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!(line_buff= (LINE_BUFFER*) my_malloc(PSI_NOT_INSTRUMENTED,
|
||||
sizeof(*line_buff),
|
||||
MYF(MY_WME | MY_ZEROFILL))))
|
||||
{
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (init_line_buffer(line_buff, file, IO_SIZE, max_size))
|
||||
{
|
||||
my_free(line_buff);
|
||||
goto err;
|
||||
}
|
||||
|
||||
return line_buff;
|
||||
|
||||
err1:
|
||||
put_info(buff, INFO_ERROR, 0);
|
||||
err:
|
||||
if (path)
|
||||
my_close(file, MYF(0));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int delimiter_index= -1;
|
||||
static int charset_index= -1;
|
||||
static int sandbox_index= -1;
|
||||
@@ -1192,10 +1357,8 @@ int main(int argc,char *argv[])
|
||||
}
|
||||
|
||||
if (status.batch && !status.line_buff &&
|
||||
!(status.line_buff= batch_readline_init(MAX_BATCH_BUFFER_SIZE, stdin)))
|
||||
!(status.line_buff= batch_readline_init(MAX_BATCH_BUFFER_SIZE, NULL)))
|
||||
{
|
||||
put_info("Can't initialize batch_readline - may be the input source is "
|
||||
"a directory or a block device.", INFO_ERROR, 0);
|
||||
free_defaults(defaults_argv);
|
||||
my_end(0);
|
||||
exit(1);
|
||||
@@ -1256,10 +1419,13 @@ int main(int argc,char *argv[])
|
||||
histfile=my_strdup(PSI_NOT_INSTRUMENTED, getenv("MYSQL_HISTFILE"),MYF(MY_WME));
|
||||
else if (getenv("HOME"))
|
||||
{
|
||||
size_t histfile_size=
|
||||
strlen(getenv("HOME")) + strlen("/.mysql_history") + 2;
|
||||
histfile=(char*) my_malloc(PSI_NOT_INSTRUMENTED,
|
||||
strlen(getenv("HOME")) + strlen("/.mysql_history")+2, MYF(MY_WME));
|
||||
histfile_size, MYF(MY_WME));
|
||||
if (histfile)
|
||||
sprintf(histfile,"%s/.mysql_history",getenv("HOME"));
|
||||
snprintf(histfile, histfile_size,
|
||||
"%s/.mysql_history", getenv("HOME"));
|
||||
char link_name[FN_REFLEN];
|
||||
if (my_readlink(link_name, histfile, 0) == 0 &&
|
||||
strncmp(link_name, "/dev/null", 10) == 0)
|
||||
@@ -1279,28 +1445,38 @@ int main(int argc,char *argv[])
|
||||
if (verbose)
|
||||
tee_fprintf(stdout, "Reading history-file %s\n",histfile);
|
||||
read_history(histfile);
|
||||
if (!(histfile_tmp= (char*) my_malloc(PSI_NOT_INSTRUMENTED,
|
||||
strlen(histfile) + 5, MYF(MY_WME))))
|
||||
{
|
||||
fprintf(stderr, "Couldn't allocate memory for temp histfile!\n");
|
||||
exit(1);
|
||||
/* Extra space for the suffix appended to histfile:
|
||||
"." - separator (sizeof = 2, includes NUL)
|
||||
+ PID - up to 20 digits (ULONG_MAX = 18446744073709551615)
|
||||
+ ".TMP"- extension (sizeof = 5, includes NUL, doubles
|
||||
as the string NUL terminator)
|
||||
sizeof(".") and sizeof(".TMP") each carry a NUL, so the sum
|
||||
over-allocates by one byte, which is intentional. */
|
||||
size_t hlen= strlen(histfile) + sizeof(".") + 20 + sizeof(".TMP");
|
||||
if (!(histfile_tmp= (char*) my_malloc(PSI_NOT_INSTRUMENTED, hlen, MYF(MY_WME))))
|
||||
{
|
||||
fprintf(stderr, "Couldn't allocate memory for temp histfile!\n");
|
||||
exit(1);
|
||||
}
|
||||
/* Include PID in name to avoid rename collision when concurrent sessions exit. */
|
||||
/* pid_t is signed but getpid() always returns a non-negative value (POSIX). */
|
||||
snprintf(histfile_tmp, hlen, "%s.%lu.TMP", histfile,
|
||||
(unsigned long) getpid());
|
||||
}
|
||||
sprintf(histfile_tmp, "%s.TMP", histfile);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
sprintf(buff, "%s",
|
||||
snprintf(buff, sizeof(buff), "%s",
|
||||
"Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.\n");
|
||||
put_info(buff,INFO_INFO);
|
||||
status.exit_status= read_and_execute(!status.batch);
|
||||
if (opt_outfile)
|
||||
end_tee();
|
||||
mysql_end(0);
|
||||
#ifndef _lint
|
||||
DBUG_RETURN(0); // Keep compiler happy
|
||||
#endif
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
sig_handler mysql_end(int sig)
|
||||
@@ -1356,6 +1532,46 @@ sig_handler mysql_end(int sig)
|
||||
exit(status.exit_status);
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
#define CNV_BUFSIZE 1024
|
||||
|
||||
/**
|
||||
Convert user,database,and password to requested charset.
|
||||
|
||||
This is done in the single case when user connects with non-UTF8
|
||||
default-character-set, on UTF8 capable Windows.
|
||||
|
||||
User, password, and database are UTF8 encoded, prior to the function,
|
||||
this needs to be fixed, in case they contain non-ASCIIs.
|
||||
|
||||
Mostly a workaround, to allow existng users with non-ASCII password
|
||||
to survive upgrade without losing connectivity.
|
||||
*/
|
||||
static void maybe_convert_charset(const char **user, const char **password,
|
||||
const char **database, const char *csname)
|
||||
{
|
||||
if (GetACP() != CP_UTF8 || !strncmp(csname, "utf8", 4))
|
||||
return;
|
||||
static char bufs[3][CNV_BUFSIZE];
|
||||
const char **from[]= {user, password, database};
|
||||
CHARSET_INFO *cs= get_charset_by_csname(csname, MY_CS_PRIMARY,
|
||||
MYF(MY_UTF8_IS_UTF8MB3 | MY_WME));
|
||||
if (!cs)
|
||||
return;
|
||||
for (int i= 0; i < 3; i++)
|
||||
{
|
||||
const char *str= *from[i];
|
||||
if (!str)
|
||||
continue;
|
||||
uint errors;
|
||||
uint len= my_convert(bufs[i], CNV_BUFSIZE, cs, str, (uint32) strlen(str),
|
||||
&my_charset_utf8mb4_bin, &errors);
|
||||
bufs[i][len]= 0;
|
||||
*from[i]= bufs[i];
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
set connection-specific options and call mysql_real_connect
|
||||
*/
|
||||
@@ -1365,7 +1581,7 @@ static bool do_connect(MYSQL *mysql, const char *host, const char *user,
|
||||
if (opt_secure_auth)
|
||||
mysql_options(mysql, MYSQL_SECURE_AUTH, (char *) &opt_secure_auth);
|
||||
#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
|
||||
if (opt_use_ssl)
|
||||
if (opt_use_ssl && opt_protocol <= MYSQL_PROTOCOL_SOCKET)
|
||||
{
|
||||
mysql_ssl_set(mysql, opt_ssl_key, opt_ssl_cert, opt_ssl_ca,
|
||||
opt_ssl_capath, opt_ssl_cipher);
|
||||
@@ -1387,6 +1603,10 @@ static bool do_connect(MYSQL *mysql, const char *host, const char *user,
|
||||
mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_RESET, 0);
|
||||
mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD,
|
||||
"program_name", "mysql");
|
||||
#ifdef _WIN32
|
||||
maybe_convert_charset(&user, &password, &database,default_charset);
|
||||
#endif
|
||||
|
||||
return mysql_real_connect(mysql, host, user, password, database,
|
||||
opt_mysql_port, opt_mysql_unix_port, flags);
|
||||
}
|
||||
@@ -1431,7 +1651,7 @@ bool kill_query(const char *reason)
|
||||
interrupted_query= 2;
|
||||
|
||||
/* kill_buffer is always big enough because max length of %lu is 15 */
|
||||
sprintf(kill_buffer, "KILL %s%lu",
|
||||
snprintf(kill_buffer, sizeof(kill_buffer), "KILL %s%lu",
|
||||
(interrupted_query == 1) ? "QUERY " : "",
|
||||
mysql_thread_id(&mysql));
|
||||
if (verbose)
|
||||
@@ -2059,11 +2279,6 @@ static inline void reset_prompt(char *in_string, bool *ml_comment) {
|
||||
|
||||
static int read_and_execute(bool interactive)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
String tmpbuf;
|
||||
String buffer;
|
||||
#endif
|
||||
|
||||
char *line= NULL;
|
||||
char in_string=0;
|
||||
ulong line_number=0;
|
||||
@@ -2141,26 +2356,7 @@ static int read_and_execute(bool interactive)
|
||||
|
||||
#if defined(_WIN32)
|
||||
tee_fputs(prompt, stdout);
|
||||
if (!tmpbuf.is_alloced())
|
||||
tmpbuf.alloc(65535);
|
||||
tmpbuf.length(0);
|
||||
buffer.length(0);
|
||||
size_t clen;
|
||||
do
|
||||
{
|
||||
line= my_cgets((char*)tmpbuf.ptr(), tmpbuf.alloced_length()-1, &clen);
|
||||
buffer.append(line, clen);
|
||||
/*
|
||||
if we got buffer fully filled than there is a chance that
|
||||
something else is still in console input buffer
|
||||
*/
|
||||
} while (tmpbuf.alloced_length() <= clen);
|
||||
/*
|
||||
An empty line is returned from my_cgets when there's error reading :
|
||||
Ctrl-c for example
|
||||
*/
|
||||
if (line)
|
||||
line= buffer.c_ptr();
|
||||
line= win_readline();
|
||||
#else
|
||||
if (opt_outfile)
|
||||
fputs(prompt, OUTFILE);
|
||||
@@ -2250,10 +2446,7 @@ static int read_and_execute(bool interactive)
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(_WIN32)
|
||||
buffer.free();
|
||||
tmpbuf.free();
|
||||
#else
|
||||
#if !defined(_WIN32)
|
||||
if (interactive)
|
||||
/*
|
||||
free the last entered line.
|
||||
@@ -2512,7 +2705,7 @@ static bool add_line(String &buffer, char *line, size_t line_length,
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(buff,"Unknown command '\\%c'.",inchar);
|
||||
snprintf(buff, sizeof(buff), "Unknown command '\\%c'.", inchar);
|
||||
if (put_info(buff,INFO_ERROR) > 0)
|
||||
DBUG_RETURN(1);
|
||||
*out++='\\';
|
||||
@@ -2772,7 +2965,9 @@ static void fix_history(String *final_command)
|
||||
ptr++;
|
||||
}
|
||||
if (total_lines > 1)
|
||||
add_history(fixed_buffer.ptr());
|
||||
{
|
||||
add_history(fixed_buffer.c_ptr());
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3026,7 +3221,7 @@ You can turn off this feature to get a quicker startup with -A\n\n");
|
||||
j=0;
|
||||
while ((sql_field=mysql_fetch_field(fields)))
|
||||
{
|
||||
sprintf(buf,"%.64s.%.64s",table_row[0],sql_field->name);
|
||||
snprintf(buf, sizeof(buf), "%.64s.%.64s",table_row[0], sql_field->name);
|
||||
field_names[i][j] = strdup_root(&hash_mem_root,buf);
|
||||
add_word(&ht,field_names[i][j]);
|
||||
field_names[i][num_fields+j] = strdup_root(&hash_mem_root,
|
||||
@@ -3094,6 +3289,36 @@ static int reconnect(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wvarargs"
|
||||
/* CONC-789 */
|
||||
#endif
|
||||
|
||||
static void status_info_cb(void *data, enum enum_mariadb_status_info type, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, type);
|
||||
if (type == SESSION_TRACK_TYPE && va_arg(ap, int) == SESSION_TRACK_SCHEMA)
|
||||
{
|
||||
MARIADB_CONST_STRING *val= va_arg(ap, MARIADB_CONST_STRING *);
|
||||
my_free(current_db);
|
||||
if (val->length)
|
||||
current_db= my_strndup(PSI_NOT_INSTRUMENTED, val->str, val->length, MYF(MY_FAE));
|
||||
else
|
||||
current_db= NULL;
|
||||
}
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
#else
|
||||
#define mysql_optionsv(A,B,C,D) do { } while(0)
|
||||
#endif
|
||||
|
||||
static void get_current_db()
|
||||
{
|
||||
MYSQL_RES *res;
|
||||
@@ -3306,6 +3531,21 @@ static int com_clear(String *buffer,char *)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void adjust_console_codepage(const char *name __attribute__((unused)))
|
||||
{
|
||||
#ifdef _WIN32
|
||||
if (my_set_console_cp(name) < 0)
|
||||
{
|
||||
char buf[128];
|
||||
snprintf(buf, sizeof(buf),
|
||||
"WARNING: Could not determine Windows codepage for charset '%s',"
|
||||
"continue using codepage %u", name, GetConsoleOutputCP());
|
||||
put_info(buf, INFO_INFO);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
static int com_charset(String *, char *line)
|
||||
{
|
||||
char buff[256], *param;
|
||||
@@ -3328,6 +3568,7 @@ static int com_charset(String *, char *line)
|
||||
mysql_set_character_set(&mysql, charset_info->cs_name.str);
|
||||
default_charset= (char *)charset_info->cs_name.str;
|
||||
put_info("Charset changed", INFO_INFO);
|
||||
adjust_console_codepage(charset_info->cs_name.str);
|
||||
}
|
||||
else put_info("Charset is not found", INFO_INFO);
|
||||
return 0;
|
||||
@@ -3357,8 +3598,6 @@ static int com_go(String *buffer, char *)
|
||||
old_buffer.copy();
|
||||
}
|
||||
|
||||
/* Remove garbage for nicer messages */
|
||||
LINT_INIT_STRUCT(buff[0]);
|
||||
remove_cntrl(*buffer);
|
||||
|
||||
if (buffer->is_empty())
|
||||
@@ -3426,7 +3665,7 @@ static int com_go(String *buffer, char *)
|
||||
}
|
||||
|
||||
if (verbose >= 3 || !opt_silent)
|
||||
end_timer(timer, time_buff);
|
||||
end_timer(timer, time_buff, sizeof(time_buff));
|
||||
else
|
||||
time_buff[0]= '\0';
|
||||
|
||||
@@ -3462,9 +3701,9 @@ static int com_go(String *buffer, char *)
|
||||
print_tab_data(result);
|
||||
else
|
||||
print_table_data(result);
|
||||
sprintf(buff,"%ld %s in set",
|
||||
(long) mysql_num_rows(result),
|
||||
(long) mysql_num_rows(result) == 1 ? "row" : "rows");
|
||||
snprintf(buff, sizeof(buff), "%llu %s in set",
|
||||
(unsigned long long) mysql_num_rows(result),
|
||||
mysql_num_rows(result) == 1 ? "row" : "rows");
|
||||
end_pager();
|
||||
if (mysql_errno(&mysql))
|
||||
{
|
||||
@@ -3477,9 +3716,9 @@ static int com_go(String *buffer, char *)
|
||||
else if (mysql_affected_rows(&mysql) == ~(ulonglong) 0)
|
||||
strmov(buff,"Query OK");
|
||||
else
|
||||
sprintf(buff,"Query OK, %ld %s affected",
|
||||
(long) mysql_affected_rows(&mysql),
|
||||
(long) mysql_affected_rows(&mysql) == 1 ? "row" : "rows");
|
||||
snprintf(buff, sizeof(buff), "Query OK, %llu %s affected",
|
||||
(unsigned long long) mysql_affected_rows(&mysql),
|
||||
mysql_affected_rows(&mysql) == 1 ? "row" : "rows");
|
||||
|
||||
pos=strend(buff);
|
||||
if ((warnings= mysql_warning_count(&mysql)))
|
||||
@@ -3648,11 +3887,14 @@ static char *fieldflags2str(uint f) {
|
||||
ff2s_check_flag(NUM);
|
||||
ff2s_check_flag(PART_KEY);
|
||||
ff2s_check_flag(GROUP);
|
||||
ff2s_check_flag(BINCMP);
|
||||
/*
|
||||
CONTEXT_COLLATION_FLAG (former BINCMP_FLAG) is used at parse
|
||||
time only and should never show up on the client side. Don't test it.
|
||||
*/
|
||||
ff2s_check_flag(ON_UPDATE_NOW);
|
||||
#undef ff2s_check_flag
|
||||
if (f)
|
||||
sprintf(s, " unknows=0x%04x", f);
|
||||
snprintf(s, sizeof(buf) - (size_t)(s - buf), " unknown=0x%04x", f);
|
||||
return buf;
|
||||
}
|
||||
|
||||
@@ -4366,8 +4608,10 @@ com_edit(String *buffer,char *)
|
||||
strxmov(buff,editor," ",filename,NullS);
|
||||
if ((error= system(buff)))
|
||||
{
|
||||
char errmsg[100];
|
||||
sprintf(errmsg, "Command '%.40s' failed", buff);
|
||||
#define EDITOR_FAIL_MSG "Command '%.40s' failed"
|
||||
char errmsg[sizeof(EDITOR_FAIL_MSG) - 1 + 40];
|
||||
snprintf(errmsg, sizeof(errmsg), EDITOR_FAIL_MSG, buff);
|
||||
#undef EDITOR_FAIL_MSG
|
||||
put_info(errmsg, INFO_ERROR, 0, NullS);
|
||||
goto err;
|
||||
}
|
||||
@@ -4513,9 +4757,9 @@ static int com_connect(String *buffer, char *line)
|
||||
|
||||
if (connected)
|
||||
{
|
||||
sprintf(buff,"Connection id: %lu",mysql_thread_id(&mysql));
|
||||
snprintf(buff, sizeof(buff), "Connection id: %lu",mysql_thread_id(&mysql));
|
||||
put_info(buff,INFO_INFO);
|
||||
sprintf(buff,"Current database: %.128s\n",
|
||||
snprintf(buff, sizeof(buff), "Current database: %.128s\n",
|
||||
current_db ? current_db : "*** NONE ***");
|
||||
put_info(buff,INFO_INFO);
|
||||
}
|
||||
@@ -4529,7 +4773,6 @@ static int com_source(String *, char *line)
|
||||
LINE_BUFFER *line_buff;
|
||||
int error;
|
||||
STATUS old_status;
|
||||
FILE *sql_file;
|
||||
my_bool save_ignore_errors;
|
||||
|
||||
if (status.sandbox)
|
||||
@@ -4549,18 +4792,10 @@ static int com_source(String *, char *line)
|
||||
end--;
|
||||
end[0]=0;
|
||||
unpack_filename(source_name,source_name);
|
||||
/* open file name */
|
||||
if (!(sql_file = my_fopen(source_name, O_RDONLY | O_BINARY,MYF(0))))
|
||||
{
|
||||
char buff[FN_REFLEN+60];
|
||||
sprintf(buff,"Failed to open file '%s', error: %d", source_name,errno);
|
||||
return put_info(buff, INFO_ERROR, 0);
|
||||
}
|
||||
|
||||
if (!(line_buff= batch_readline_init(MAX_BATCH_BUFFER_SIZE, sql_file)))
|
||||
if (!(line_buff= batch_readline_init(MAX_BATCH_BUFFER_SIZE, source_name)))
|
||||
{
|
||||
my_fclose(sql_file,MYF(0));
|
||||
return put_info("Can't initialize batch_readline", INFO_ERROR, 0);
|
||||
return ignore_errors ? -1 : 1;
|
||||
}
|
||||
|
||||
/* Save old status */
|
||||
@@ -4579,7 +4814,7 @@ static int com_source(String *, char *line)
|
||||
ignore_errors= save_ignore_errors;
|
||||
status=old_status; // Continue as before
|
||||
in_com_source= aborted= 0;
|
||||
my_fclose(sql_file,MYF(0));
|
||||
my_close(line_buff->file, MYF(0));
|
||||
batch_readline_end(line_buff);
|
||||
/*
|
||||
If we got an error during source operation, don't abort the client
|
||||
@@ -4847,6 +5082,8 @@ sql_real_connect(char *host,char *database,char *user,char *password,
|
||||
mysql_close(&mysql);
|
||||
}
|
||||
mysql_init(&mysql);
|
||||
if (!one_database)
|
||||
mysql_optionsv(&mysql, MARIADB_OPT_STATUS_CALLBACK, status_info_cb, NULL);
|
||||
if (opt_init_command)
|
||||
mysql_options(&mysql, MYSQL_INIT_COMMAND, opt_init_command);
|
||||
if (opt_connect_timeout)
|
||||
@@ -4862,7 +5099,7 @@ sql_real_connect(char *host,char *database,char *user,char *password,
|
||||
if (safe_updates)
|
||||
{
|
||||
char init_command[100];
|
||||
sprintf(init_command,
|
||||
snprintf(init_command, sizeof(init_command),
|
||||
"SET SQL_SAFE_UPDATES=1,SQL_SELECT_LIMIT=%lu,MAX_JOIN_SIZE=%lu",
|
||||
select_limit,max_join_size);
|
||||
mysql_options(&mysql, MYSQL_INIT_COMMAND, init_command);
|
||||
@@ -4899,6 +5136,7 @@ sql_real_connect(char *host,char *database,char *user,char *password,
|
||||
put_info(buff, INFO_ERROR);
|
||||
return 1;
|
||||
}
|
||||
adjust_console_codepage(charset_info->cs_name.str);
|
||||
connected=1;
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
mysql_options(&mysql, MYSQL_OPT_RECONNECT, &debug_info_flag);
|
||||
@@ -5057,7 +5295,7 @@ static int com_status(String *, char *)
|
||||
tee_fprintf(stdout, "%.*s\t\t\t", (int) (pos-status_str), status_str);
|
||||
if ((status_str= str2int(pos,10,0,LONG_MAX,(long*) &sec)))
|
||||
{
|
||||
nice_time((double) sec,buff,0);
|
||||
nice_time((double) sec,buff, sizeof(buff),0);
|
||||
tee_puts(buff, stdout); /* print nice time */
|
||||
while (*status_str == ' ')
|
||||
status_str++; /* to next info */
|
||||
@@ -5276,8 +5514,10 @@ void tee_putc(int c, FILE *file)
|
||||
|
||||
len("4294967296 days, 23 hours, 59 minutes, 60.000 seconds") -> 53
|
||||
*/
|
||||
static void nice_time(double sec, char *buff, bool part_second)
|
||||
static void nice_time(double sec, char *buff, size_t buff_size,
|
||||
bool part_second)
|
||||
{
|
||||
char *buff_end= buff + buff_size;
|
||||
ulong tmp;
|
||||
if (sec >= 3600.0*24)
|
||||
{
|
||||
@@ -5301,21 +5541,23 @@ static void nice_time(double sec, char *buff, bool part_second)
|
||||
buff=strmov(buff," min ");
|
||||
}
|
||||
if (part_second)
|
||||
sprintf(buff,"%.3f sec",sec);
|
||||
snprintf(buff, buff_end - buff, "%.3f sec", sec);
|
||||
else
|
||||
sprintf(buff,"%d sec",(int) sec);
|
||||
snprintf(buff, buff_end - buff, "%d sec", (int) sec);
|
||||
}
|
||||
|
||||
|
||||
static void end_timer(ulonglong start_time, char *buff)
|
||||
static void end_timer(ulonglong start_time, char *buff, size_t buff_size)
|
||||
{
|
||||
double sec;
|
||||
|
||||
if (buff_size < 4)
|
||||
return;
|
||||
buff[0]=' ';
|
||||
buff[1]='(';
|
||||
sec= (microsecond_interval_timer() - start_time) / (double) (1000 * 1000);
|
||||
nice_time(sec, buff + 2, 1);
|
||||
strmov(strend(buff),")");
|
||||
nice_time(sec, buff + 2, buff_size - 2, 1);
|
||||
snprintf(strend(buff), buff_size - (strend(buff) - buff), ")");
|
||||
}
|
||||
|
||||
static const char *construct_prompt()
|
||||
|
||||
@@ -72,7 +72,7 @@ static char **defaults_argv;
|
||||
|
||||
static my_bool not_used; /* Can't use GET_BOOL without a value pointer */
|
||||
|
||||
char upgrade_from_version[sizeof("10.20.456-MariaDB")+30];
|
||||
char upgrade_from_version[1024];
|
||||
|
||||
static my_bool opt_write_binlog;
|
||||
|
||||
|
||||
@@ -407,6 +407,7 @@ int main(int argc,char *argv[])
|
||||
mysql_options(&mysql,MYSQL_OPT_PROTOCOL,(char*)&opt_protocol);
|
||||
if (!strcmp(default_charset,MYSQL_AUTODETECT_CHARSET_NAME))
|
||||
default_charset= (char *)my_default_csname();
|
||||
my_set_console_cp(default_charset);
|
||||
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, default_charset);
|
||||
error_flags= (myf)(opt_nobeep ? 0 : ME_BELL);
|
||||
|
||||
@@ -710,7 +711,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
|
||||
}
|
||||
if (maybe_disable_binlog(mysql))
|
||||
return -1;
|
||||
sprintf(buff,"create database `%.*s`",FN_REFLEN,argv[1]);
|
||||
snprintf(buff, sizeof(buff), "create database `%.*s`",FN_REFLEN,argv[1]);
|
||||
if (mysql_query(mysql,buff))
|
||||
{
|
||||
my_printf_error(0,"CREATE DATABASE failed; error: '%-.200s'",
|
||||
@@ -751,7 +752,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
|
||||
|
||||
if (opt_shutdown_wait_for_slaves)
|
||||
{
|
||||
sprintf(buff, "SHUTDOWN WAIT FOR ALL SLAVES");
|
||||
snprintf(buff, sizeof(buff), "SHUTDOWN WAIT FOR ALL SLAVES");
|
||||
if (mysql_query(mysql, buff))
|
||||
{
|
||||
my_printf_error(0, "%s failed; error: '%-.200s'",
|
||||
@@ -1179,7 +1180,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
|
||||
}
|
||||
else
|
||||
crypted_pw[0]=0; /* No password */
|
||||
sprintf(buff,"set password='%s',sql_log_off=0",crypted_pw);
|
||||
snprintf(buff, sizeof(buff), "set password='%s',sql_log_off=0",crypted_pw);
|
||||
|
||||
if (mysql_query(mysql,"set sql_log_off=1"))
|
||||
{
|
||||
@@ -1431,7 +1432,7 @@ static int drop_db(MYSQL *mysql, const char *db)
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
sprintf(name_buff,"drop database `%.*s`",FN_REFLEN,db);
|
||||
snprintf(name_buff, sizeof(name_buff), "drop database `%.*s`",FN_REFLEN,db);
|
||||
if (mysql_query(mysql,name_buff))
|
||||
{
|
||||
my_printf_error(0, "DROP DATABASE %s failed;\nerror: '%s'", error_flags,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -274,8 +274,8 @@ static void usage(void)
|
||||
printf("Usage: %s [OPTIONS] database [tables]\n", my_progname);
|
||||
printf("OR %s [OPTIONS] --databases DB1 [DB2 DB3...]\n",
|
||||
my_progname);
|
||||
puts("Please consult the MariaDB Knowledge Base at");
|
||||
puts("https://mariadb.com/kb/en/mysqlcheck for latest information about");
|
||||
puts("Please consult the MariaDB Documentation at");
|
||||
puts("https://mariadb.com/docs/server/clients-and-utilities/legacy-clients-and-utilities/mysqlcheck for latest information about");
|
||||
puts("this program.");
|
||||
print_defaults("my", load_default_groups);
|
||||
puts("");
|
||||
@@ -473,6 +473,7 @@ static int get_options(int *argc, char ***argv)
|
||||
printf("Unsupported character set: %s\n", default_charset);
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
my_set_console_cp(default_charset);
|
||||
if (*argc > 0 && opt_alldbs)
|
||||
{
|
||||
printf("You should give only options, no arguments at all, with option\n");
|
||||
@@ -1070,7 +1071,7 @@ static void __attribute__((noinline)) print_result()
|
||||
continue;
|
||||
}
|
||||
if (status && changed)
|
||||
printf("%-50s %s", row[0], row[3]);
|
||||
printf("%-50s %s\n", row[0], row[3]);
|
||||
else if (!status && changed)
|
||||
{
|
||||
/*
|
||||
@@ -1080,11 +1081,11 @@ static void __attribute__((noinline)) print_result()
|
||||
*/
|
||||
if (!strcmp(row[2],"error") && strstr(row[3],"REPAIR "))
|
||||
{
|
||||
printf("%-50s %s", row[0], "Needs upgrade");
|
||||
printf("%-50s %s\n", row[0], "Needs upgrade");
|
||||
array4repair= strstr(row[3], "VIEW") ? &views4repair : &tables4repair;
|
||||
}
|
||||
else
|
||||
printf("%s\n%-9s: %s", row[0], row[2], row[3]);
|
||||
else if (!opt_silent || !strcasecmp(row[2],"error"))
|
||||
printf("%s\n%-9s: %s\n", row[0], row[2], row[3]);
|
||||
if (opt_auto_repair && strcmp(row[2],"note"))
|
||||
{
|
||||
found_error=1;
|
||||
@@ -1093,9 +1094,8 @@ static void __attribute__((noinline)) print_result()
|
||||
}
|
||||
}
|
||||
else
|
||||
printf("%-9s: %s", row[2], row[3]);
|
||||
printf("%-9s: %s\n", row[2], row[3]);
|
||||
strmake_buf(prev, row[0]);
|
||||
putchar('\n');
|
||||
}
|
||||
/* add the last table to be repaired to the list */
|
||||
if (found_error && opt_auto_repair && what_to_do != DO_REPAIR)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -378,9 +378,9 @@ static int write_to_table(char *filename, MYSQL *mysql)
|
||||
}
|
||||
mysql_real_escape_string(mysql, escaped_name, hard_path,
|
||||
(unsigned long) strlen(hard_path));
|
||||
sprintf(sql_statement, "LOAD DATA %s %s INFILE '%s'",
|
||||
opt_low_priority ? "LOW_PRIORITY" : "",
|
||||
opt_local_file ? "LOCAL" : "", escaped_name);
|
||||
snprintf(sql_statement, sizeof(sql_statement), "LOAD DATA %s %s INFILE '%s'",
|
||||
opt_low_priority ? "LOW_PRIORITY" : "",
|
||||
opt_local_file ? "LOCAL" : "", escaped_name);
|
||||
end= strend(sql_statement);
|
||||
if (replace)
|
||||
end= strmov(end, " REPLACE");
|
||||
@@ -498,6 +498,7 @@ static MYSQL *db_connect(char *host, char *database,
|
||||
mysql_options(mysql, MYSQL_DEFAULT_AUTH, opt_default_auth);
|
||||
if (!strcmp(default_charset,MYSQL_AUTODETECT_CHARSET_NAME))
|
||||
default_charset= (char *)my_default_csname();
|
||||
my_set_console_cp(default_charset);
|
||||
mysql_options(mysql, MYSQL_SET_CHARSET_NAME, default_charset);
|
||||
mysql_options(mysql, MYSQL_OPT_CONNECT_ATTR_RESET, 0);
|
||||
mysql_options4(mysql, MYSQL_OPT_CONNECT_ATTR_ADD,
|
||||
@@ -546,15 +547,18 @@ static void safe_exit(int error, MYSQL *mysql)
|
||||
if (mysql)
|
||||
mysql_close(mysql);
|
||||
|
||||
if (error)
|
||||
sf_leaking_memory= 1; /* dirty exit, some threads are still running */
|
||||
else
|
||||
if (counter)
|
||||
{
|
||||
mysql_library_end();
|
||||
free_defaults(argv_to_free);
|
||||
my_free(opt_password);
|
||||
my_end(my_end_arg); /* clean exit */
|
||||
/* dirty exit. some threads are running,
|
||||
memory is not freed, openssl not deinitialized */
|
||||
DBUG_ASSERT(error);
|
||||
_exit(error);
|
||||
}
|
||||
|
||||
mysql_library_end();
|
||||
free_defaults(argv_to_free);
|
||||
my_free(opt_password);
|
||||
my_end(my_end_arg); /* clean exit */
|
||||
exit(error);
|
||||
}
|
||||
|
||||
|
||||
@@ -137,6 +137,7 @@ int main(int argc, char **argv)
|
||||
|
||||
if (!strcmp(default_charset,MYSQL_AUTODETECT_CHARSET_NAME))
|
||||
default_charset= (char *)my_default_csname();
|
||||
my_set_console_cp(default_charset);
|
||||
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, default_charset);
|
||||
|
||||
if (opt_plugin_dir && *opt_plugin_dir)
|
||||
|
||||
@@ -2240,6 +2240,13 @@ generate_stats(conclusions *con, option_string *eng, stats *sptr)
|
||||
stats *ptr;
|
||||
unsigned int x;
|
||||
|
||||
if (eng && eng->string)
|
||||
con->engine= eng->string;
|
||||
|
||||
/* Early return when iterations is 0 to avoid accessing uninitialized sptr */
|
||||
if (iterations == 0)
|
||||
return;
|
||||
|
||||
con->min_timing= sptr->timing;
|
||||
con->max_timing= sptr->timing;
|
||||
con->min_rows= sptr->rows;
|
||||
@@ -2260,11 +2267,6 @@ generate_stats(conclusions *con, option_string *eng, stats *sptr)
|
||||
con->min_timing= ptr->timing;
|
||||
}
|
||||
con->avg_timing= con->avg_timing/iterations;
|
||||
|
||||
if (eng && eng->string)
|
||||
con->engine= eng->string;
|
||||
else
|
||||
con->engine= NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
Tool used for executing a .test file
|
||||
|
||||
See the "MySQL Test framework manual" for more information
|
||||
https://mariadb.com/kb/en/library/mysqltest/
|
||||
https://mariadb.com/docs/server/clients-and-utilities/testing-tools/mariadb-test
|
||||
|
||||
Please keep the test framework tools identical in all versions!
|
||||
|
||||
@@ -55,6 +55,7 @@
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#include <my_stacktrace.h>
|
||||
#include <my_attribute.h>
|
||||
|
||||
#include <welcome_copyright_notice.h> // ORACLE_WELCOME_COPYRIGHT_NOTICE
|
||||
|
||||
@@ -78,7 +79,7 @@ static my_bool non_blocking_api_enabled= 0;
|
||||
#define MAX_DELIMITER_LENGTH 16
|
||||
#define DEFAULT_MAX_CONN 64
|
||||
|
||||
#define DIE_BUFF_SIZE 15*1024
|
||||
#define DIE_BUFF_SIZE 64*1024
|
||||
|
||||
#define RESULT_STRING_INIT_MEM 2048
|
||||
#define RESULT_STRING_INCREMENT_MEM 2048
|
||||
@@ -1533,12 +1534,12 @@ void do_eval(DYNAMIC_STRING *query_eval, const char *query,
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!(v= var_get(p, &p, 0, 0)))
|
||||
if (!(v= var_get(p, &p, 0, 0)) || !v->str_val)
|
||||
{
|
||||
report_or_die( "Bad variable in eval");
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
dynstr_append_mem(query_eval, v->str_val, v->str_val_len);
|
||||
dynstr_append_mem(query_eval, v->str_val, v->str_val_len);
|
||||
}
|
||||
break;
|
||||
case '\\':
|
||||
@@ -1987,6 +1988,8 @@ static void make_error_message(char *buf, size_t len, const char *fmt, va_list a
|
||||
s+= my_snprintf(s, end -s, "\n");
|
||||
}
|
||||
|
||||
PRAGMA_DISABLE_CHECK_STACK_FRAME
|
||||
|
||||
static void die(const char *fmt, ...)
|
||||
{
|
||||
char buff[DIE_BUFF_SIZE];
|
||||
@@ -1998,6 +2001,8 @@ static void die(const char *fmt, ...)
|
||||
really_die(buff);
|
||||
}
|
||||
|
||||
PRAGMA_REENABLE_CHECK_STACK_FRAME
|
||||
|
||||
static void really_die(const char *msg)
|
||||
{
|
||||
static int dying= 0;
|
||||
@@ -2026,6 +2031,8 @@ static void really_die(const char *msg)
|
||||
cleanup_and_exit(1, 1);
|
||||
}
|
||||
|
||||
PRAGMA_DISABLE_CHECK_STACK_FRAME
|
||||
|
||||
void report_or_die(const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
@@ -2080,6 +2087,7 @@ void abort_not_supported_test(const char *fmt, ...)
|
||||
cleanup_and_exit(62, 0);
|
||||
}
|
||||
|
||||
PRAGMA_REENABLE_CHECK_STACK_FRAME
|
||||
|
||||
void abort_not_in_this_version()
|
||||
{
|
||||
@@ -2900,7 +2908,7 @@ VAR* var_get(const char *var_name, const char **var_name_end, my_bool raw,
|
||||
|
||||
if (!raw && v->int_dirty)
|
||||
{
|
||||
sprintf(v->str_val, "%d", v->int_val);
|
||||
snprintf(v->str_val, v->alloced_len, "%d", v->int_val);
|
||||
v->int_dirty= false;
|
||||
v->str_val_len = strlen(v->str_val);
|
||||
}
|
||||
@@ -2962,7 +2970,7 @@ void var_set(const char *var_name, const char *var_name_end,
|
||||
{
|
||||
if (v->int_dirty)
|
||||
{
|
||||
sprintf(v->str_val, "%d", v->int_val);
|
||||
snprintf(v->str_val, v->alloced_len, "%d", v->int_val);
|
||||
v->int_dirty=false;
|
||||
v->str_val_len= strlen(v->str_val);
|
||||
}
|
||||
@@ -3704,6 +3712,47 @@ static int replace(DYNAMIC_STRING *ds_str,
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
/**
|
||||
Check if background execution of command was requested.
|
||||
Like in Unix shell, we assume background execution of the last
|
||||
character in command is a ampersand (we do not tokenize though)
|
||||
*/
|
||||
static bool is_background_command(const DYNAMIC_STRING *ds)
|
||||
{
|
||||
for (size_t i= ds->length - 1; i > 1; i--)
|
||||
{
|
||||
char c= ds->str[i];
|
||||
if (!isspace(c))
|
||||
return (c == '&');
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
Execute OS command in background. We assume that the last character
|
||||
is ampersand, i.e is_background_command() returned
|
||||
*/
|
||||
#include <string>
|
||||
static int execute_in_background(char *cmd)
|
||||
{
|
||||
STARTUPINFO s{};
|
||||
PROCESS_INFORMATION pi{};
|
||||
char *end= strrchr(cmd, '&');
|
||||
DBUG_ASSERT(end);
|
||||
*end =0;
|
||||
std::string scmd("cmd /c ");
|
||||
scmd.append(cmd);
|
||||
BOOL ok=
|
||||
CreateProcess(0, (char *)scmd.c_str(), 0, 0, 0, CREATE_NO_WINDOW, 0, 0, &s, &pi);
|
||||
*end= '&';
|
||||
if (!ok)
|
||||
return (int) GetLastError();
|
||||
CloseHandle(pi.hProcess);
|
||||
CloseHandle(pi.hThread);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
Execute given command.
|
||||
@@ -3778,6 +3827,14 @@ void do_exec(struct st_command *command)
|
||||
DBUG_PRINT("info", ("Executing '%s' as '%s'",
|
||||
command->first_argument, ds_cmd.str));
|
||||
|
||||
#ifdef _WIN32
|
||||
if (is_background_command(&ds_cmd))
|
||||
{
|
||||
error= execute_in_background(ds_cmd.str);
|
||||
goto end;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!(res_file= my_popen(ds_cmd.str, "r")))
|
||||
{
|
||||
dynstr_free(&ds_cmd);
|
||||
@@ -3804,7 +3861,9 @@ void do_exec(struct st_command *command)
|
||||
dynstr_append_sorted(&ds_res, &ds_sorted);
|
||||
dynstr_free(&ds_sorted);
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
end:
|
||||
#endif
|
||||
if (error)
|
||||
{
|
||||
uint status= WEXITSTATUS(error);
|
||||
@@ -4101,8 +4160,7 @@ void do_remove_file(struct st_command *command)
|
||||
void do_remove_files_wildcard(struct st_command *command)
|
||||
{
|
||||
int error= 0, sys_errno= 0;
|
||||
uint i;
|
||||
size_t directory_length;
|
||||
size_t i, directory_length;
|
||||
MY_DIR *dir_info;
|
||||
FILEINFO *file;
|
||||
char dir_separator[2];
|
||||
@@ -4141,7 +4199,7 @@ void do_remove_files_wildcard(struct st_command *command)
|
||||
/* Set default wild chars for wild_compare, is changed in embedded mode */
|
||||
set_wild_chars(1);
|
||||
|
||||
for (i= 0; i < (uint) dir_info->number_of_files; i++)
|
||||
for (i= 0; i < dir_info->number_of_files; i++)
|
||||
{
|
||||
file= dir_info->dir_entry + i;
|
||||
/* Remove only regular files, i.e. no directories etc. */
|
||||
@@ -4427,7 +4485,7 @@ void do_rmdir(struct st_command *command)
|
||||
static int get_list_files(DYNAMIC_STRING *ds, const DYNAMIC_STRING *ds_dirname,
|
||||
const DYNAMIC_STRING *ds_wild)
|
||||
{
|
||||
uint i;
|
||||
size_t i;
|
||||
MY_DIR *dir_info;
|
||||
FILEINFO *file;
|
||||
DBUG_ENTER("get_list_files");
|
||||
@@ -4436,7 +4494,7 @@ static int get_list_files(DYNAMIC_STRING *ds, const DYNAMIC_STRING *ds_dirname,
|
||||
if (!(dir_info= my_dir(ds_dirname->str, MYF(MY_WANT_SORT))))
|
||||
DBUG_RETURN(1);
|
||||
set_wild_chars(1);
|
||||
for (i= 0; i < (uint) dir_info->number_of_files; i++)
|
||||
for (i= 0; i < dir_info->number_of_files; i++)
|
||||
{
|
||||
file= dir_info->dir_entry + i;
|
||||
if (ds_wild && ds_wild->length &&
|
||||
@@ -5207,7 +5265,8 @@ void do_sync_with_master2(struct st_command *command, long offset,
|
||||
if (!master_pos.file[0])
|
||||
die("Calling 'sync_with_master' without calling 'save_master_pos'");
|
||||
|
||||
sprintf(query_buf, "select master_pos_wait('%s', %ld, %d, '%s')",
|
||||
snprintf(query_buf, sizeof(query_buf),
|
||||
"select master_pos_wait('%s', %ld, %d, '%s')",
|
||||
master_pos.file, master_pos.pos + offset, timeout,
|
||||
connection_name);
|
||||
|
||||
@@ -8495,8 +8554,12 @@ void do_close_connection(struct st_command *command)
|
||||
DBUG_PRINT("info", ("Closing connection %s", con->name));
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
if (command->type == Q_DIRTY_CLOSE)
|
||||
{
|
||||
mariadb_cancel(con->mysql);
|
||||
else
|
||||
{
|
||||
simple_command(con->mysql,COM_QUIT,0,0,0);
|
||||
if (con->util_mysql)
|
||||
simple_command(con->util_mysql,COM_QUIT,0,0,0);
|
||||
}
|
||||
#endif /*!EMBEDDED_LIBRARY*/
|
||||
if (con->stmt)
|
||||
@@ -8636,6 +8699,7 @@ void safe_connect(MYSQL* mysql, const char *name, const char *host,
|
||||
con - connection structure to be used
|
||||
host, user, pass, - connection parameters
|
||||
db, port, sock
|
||||
default_db - 0 if db was explicitly passed
|
||||
|
||||
DESCRIPTION
|
||||
This function will try to establish a connection to server and handle
|
||||
@@ -8653,7 +8717,8 @@ void safe_connect(MYSQL* mysql, const char *name, const char *host,
|
||||
int connect_n_handle_errors(struct st_command *command,
|
||||
MYSQL* con, const char* host,
|
||||
const char* user, const char* pass,
|
||||
const char* db, int port, const char* sock)
|
||||
const char* db, int port, const char* sock,
|
||||
my_bool default_db)
|
||||
{
|
||||
DYNAMIC_STRING *ds;
|
||||
int failed_attempts= 0;
|
||||
@@ -8694,8 +8759,10 @@ int connect_n_handle_errors(struct st_command *command,
|
||||
|
||||
mysql_options(con, MYSQL_OPT_CONNECT_ATTR_RESET, 0);
|
||||
mysql_options4(con, MYSQL_OPT_CONNECT_ATTR_ADD, "program_name", "mysqltest");
|
||||
while (!mysql_real_connect(con, host, user, pass, db, port, sock ? sock: 0,
|
||||
CLIENT_MULTI_STATEMENTS))
|
||||
while (!mysql_real_connect(con, host, user, pass,
|
||||
(default_db ? "" : db),
|
||||
port, (sock ? sock : 0),
|
||||
CLIENT_MULTI_STATEMENTS))
|
||||
{
|
||||
/*
|
||||
If we have used up all our connections check whether this
|
||||
@@ -8741,6 +8808,13 @@ do_handle_error:
|
||||
return 0; /* Not connected */
|
||||
}
|
||||
|
||||
if (default_db && db && db[0] != '\0')
|
||||
{
|
||||
mysql_select_db(con, db);
|
||||
// Ignore errors intentionally
|
||||
}
|
||||
|
||||
|
||||
var_set_errno(0);
|
||||
handle_no_error(command);
|
||||
revert_properties();
|
||||
@@ -8794,6 +8868,7 @@ void do_connect(struct st_command *command)
|
||||
int connect_timeout= 0;
|
||||
char *csname=0;
|
||||
struct st_connection* con_slot;
|
||||
my_bool default_db;
|
||||
|
||||
static DYNAMIC_STRING ds_connection_name;
|
||||
static DYNAMIC_STRING ds_host;
|
||||
@@ -8972,12 +9047,8 @@ void do_connect(struct st_command *command)
|
||||
mysql_options(con_slot->mysql, MYSQL_OPT_SSL_CRL, opt_ssl_crl);
|
||||
mysql_options(con_slot->mysql, MYSQL_OPT_SSL_CRLPATH, opt_ssl_crlpath);
|
||||
mysql_options(con_slot->mysql, MARIADB_OPT_TLS_VERSION, opt_tls_version);
|
||||
#if MYSQL_VERSION_ID >= 50000
|
||||
/* Turn on ssl_verify_server_cert only if host is "localhost" */
|
||||
opt_ssl_verify_server_cert= !strcmp(ds_host.str, "localhost");
|
||||
mysql_options(con_slot->mysql, MYSQL_OPT_SSL_VERIFY_SERVER_CERT,
|
||||
&opt_ssl_verify_server_cert);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -9004,7 +9075,12 @@ void do_connect(struct st_command *command)
|
||||
|
||||
/* Use default db name */
|
||||
if (ds_database.length == 0)
|
||||
{
|
||||
dynstr_set(&ds_database, opt_db);
|
||||
default_db= 1;
|
||||
}
|
||||
else
|
||||
default_db= 0;
|
||||
|
||||
if (opt_plugin_dir && *opt_plugin_dir)
|
||||
mysql_options(con_slot->mysql, MYSQL_PLUGIN_DIR, opt_plugin_dir);
|
||||
@@ -9019,7 +9095,7 @@ void do_connect(struct st_command *command)
|
||||
if (connect_n_handle_errors(command, con_slot->mysql,
|
||||
ds_host.str,ds_user.str,
|
||||
ds_password.str, ds_database.str,
|
||||
con_port, ds_sock.str))
|
||||
con_port, ds_sock.str, default_db))
|
||||
{
|
||||
DBUG_PRINT("info", ("Inserting connection %s in connection pool",
|
||||
ds_connection_name.str));
|
||||
@@ -9183,8 +9259,9 @@ void do_block(enum block_cmd cmd, struct st_command* command)
|
||||
|
||||
/* Parse and evaluate test expression */
|
||||
expr_start= strchr(p, '(');
|
||||
if (!expr_start++)
|
||||
if (!expr_start)
|
||||
die("missing '(' in %s", cmd_name);
|
||||
expr_start++;
|
||||
|
||||
while (my_isspace(charset_info, *expr_start))
|
||||
expr_start++;
|
||||
@@ -9546,7 +9623,7 @@ int read_line()
|
||||
my_bool have_slash= FALSE;
|
||||
|
||||
enum {R_NORMAL, R_Q, R_SLASH_IN_Q,
|
||||
R_COMMENT, R_LINE_START} state= R_LINE_START;
|
||||
R_COMMENT, R_LINE_START, R_CSTYLE_COMMENT} state= R_LINE_START;
|
||||
DBUG_ENTER("read_line");
|
||||
|
||||
*p= 0;
|
||||
@@ -9633,9 +9710,23 @@ int read_line()
|
||||
state= R_Q;
|
||||
}
|
||||
}
|
||||
else if (c == '*' && last_char == '/')
|
||||
{
|
||||
state= R_CSTYLE_COMMENT;
|
||||
break;
|
||||
}
|
||||
have_slash= is_escape_char(c, last_quote);
|
||||
break;
|
||||
|
||||
case R_CSTYLE_COMMENT:
|
||||
if (c == '!')
|
||||
// Got the hint introducer '/*!'. Switch to normal processing of
|
||||
// next following characters
|
||||
state= R_NORMAL;
|
||||
else if (c == '/' && last_char == '*')
|
||||
state= R_NORMAL;
|
||||
break;
|
||||
|
||||
case R_COMMENT:
|
||||
if (c == '\n')
|
||||
{
|
||||
@@ -10763,7 +10854,7 @@ void append_info(DYNAMIC_STRING *ds, ulonglong affected_rows,
|
||||
const char *info)
|
||||
{
|
||||
char buf[40], buff2[21];
|
||||
size_t len= sprintf(buf,"affected rows: %s\n", llstr(affected_rows, buff2));
|
||||
size_t len= snprintf(buf, sizeof(buf), "affected rows: %s\n", llstr(affected_rows, buff2));
|
||||
dynstr_append_mem(ds, buf, len);
|
||||
if (info)
|
||||
{
|
||||
@@ -11469,7 +11560,7 @@ void run_query_stmt(struct st_connection *cn, struct st_command *command,
|
||||
DYNAMIC_STRING ds_res_1st_execution;
|
||||
my_bool ds_res_1st_execution_init = FALSE;
|
||||
my_bool compare_2nd_execution = TRUE;
|
||||
int query_match_ps2_re;
|
||||
int query_match_ps2_re, query_match_cursor_re;
|
||||
MYSQL_RES *res;
|
||||
DBUG_ENTER("run_query_stmt");
|
||||
DBUG_PRINT("query", ("'%-.60s'", query));
|
||||
@@ -11528,6 +11619,9 @@ void run_query_stmt(struct st_connection *cn, struct st_command *command,
|
||||
parameter markers.
|
||||
*/
|
||||
|
||||
query_match_cursor_re= cursor_protocol_enabled && cn->stmt->field_count &&
|
||||
match_re(&cursor_re, query);
|
||||
|
||||
if (cursor_protocol_enabled)
|
||||
{
|
||||
ps2_protocol_enabled = 0;
|
||||
@@ -11536,7 +11630,7 @@ void run_query_stmt(struct st_connection *cn, struct st_command *command,
|
||||
Use cursor for queries matching the filter,
|
||||
else reset cursor type
|
||||
*/
|
||||
if (match_re(&cursor_re, query))
|
||||
if (query_match_cursor_re)
|
||||
{
|
||||
/*
|
||||
Use cursor when retrieving result
|
||||
@@ -11548,12 +11642,13 @@ void run_query_stmt(struct st_connection *cn, struct st_command *command,
|
||||
}
|
||||
}
|
||||
|
||||
query_match_ps2_re = match_re(&ps2_re, query);
|
||||
query_match_ps2_re = ps2_protocol_enabled && cn->stmt->field_count &&
|
||||
match_re(&ps2_re, query);
|
||||
|
||||
/*
|
||||
Execute the query first time if second execution enable
|
||||
*/
|
||||
if (ps2_protocol_enabled && query_match_ps2_re)
|
||||
if (query_match_ps2_re)
|
||||
{
|
||||
if (do_stmt_execute(cn))
|
||||
{
|
||||
@@ -11609,8 +11704,7 @@ void run_query_stmt(struct st_connection *cn, struct st_command *command,
|
||||
and keep them in a separate string for later. Cursor_protocol is used
|
||||
only for queries matching the filter "cursor_re".
|
||||
*/
|
||||
if (cursor_protocol_enabled && match_re(&cursor_re, query) &&
|
||||
!disable_warnings)
|
||||
if (query_match_cursor_re && !disable_warnings)
|
||||
append_warnings(&ds_execute_warnings, mysql);
|
||||
|
||||
if (read_stmt_results(stmt, ds, command))
|
||||
@@ -11622,7 +11716,7 @@ void run_query_stmt(struct st_connection *cn, struct st_command *command,
|
||||
The results of the first and second execution are compared
|
||||
only if result logging is enabled
|
||||
*/
|
||||
if (compare_2nd_execution && ps2_protocol_enabled && query_match_ps2_re)
|
||||
if (compare_2nd_execution && query_match_ps2_re)
|
||||
{
|
||||
if (ds->length != ds_res_1st_execution.length ||
|
||||
!(memcmp(ds_res_1st_execution.str, ds->str, ds->length) == 0))
|
||||
@@ -13002,12 +13096,8 @@ int main(int argc, char **argv)
|
||||
mysql_options(con->mysql, MYSQL_OPT_SSL_CRL, opt_ssl_crl);
|
||||
mysql_options(con->mysql, MYSQL_OPT_SSL_CRLPATH, opt_ssl_crlpath);
|
||||
mysql_options(con->mysql, MARIADB_OPT_TLS_VERSION, opt_tls_version);
|
||||
#if MYSQL_VERSION_ID >= 50000
|
||||
/* Turn on ssl_verify_server_cert only if host is "localhost" */
|
||||
opt_ssl_verify_server_cert= opt_host && !strcmp(opt_host, "localhost");
|
||||
mysql_options(con->mysql, MYSQL_OPT_SSL_VERIFY_SERVER_CERT,
|
||||
&opt_ssl_verify_server_cert);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -23,38 +23,11 @@
|
||||
#include <my_dir.h>
|
||||
#include "my_readline.h"
|
||||
|
||||
static bool init_line_buffer(LINE_BUFFER *buffer,File file,ulong size,
|
||||
ulong max_size);
|
||||
static bool init_line_buffer_from_string(LINE_BUFFER *buffer,char * str);
|
||||
static size_t fill_buffer(LINE_BUFFER *buffer);
|
||||
static char *intern_read_line(LINE_BUFFER *buffer, ulong *out_length);
|
||||
|
||||
|
||||
LINE_BUFFER *batch_readline_init(ulong max_size,FILE *file)
|
||||
{
|
||||
LINE_BUFFER *line_buff;
|
||||
|
||||
#ifndef _WIN32
|
||||
MY_STAT input_file_stat;
|
||||
if (my_fstat(fileno(file), &input_file_stat, MYF(MY_WME)) ||
|
||||
MY_S_ISDIR(input_file_stat.st_mode) ||
|
||||
MY_S_ISBLK(input_file_stat.st_mode))
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
if (!(line_buff=(LINE_BUFFER*)
|
||||
my_malloc(PSI_NOT_INSTRUMENTED, sizeof(*line_buff),
|
||||
MYF(MY_WME | MY_ZEROFILL))))
|
||||
return 0;
|
||||
if (init_line_buffer(line_buff,my_fileno(file),IO_SIZE,max_size))
|
||||
{
|
||||
my_free(line_buff);
|
||||
return 0;
|
||||
}
|
||||
return line_buff;
|
||||
}
|
||||
|
||||
|
||||
char *batch_readline(LINE_BUFFER *line_buff, bool binary_mode)
|
||||
{
|
||||
char *pos;
|
||||
@@ -64,13 +37,8 @@ char *batch_readline(LINE_BUFFER *line_buff, bool binary_mode)
|
||||
return 0;
|
||||
if (out_length && pos[out_length-1] == '\n')
|
||||
{
|
||||
/*
|
||||
On Windows platforms we also need to remove '\r', unconditionally. On
|
||||
Unix-like platforms we only remove it if we are not on binary mode.
|
||||
*/
|
||||
|
||||
/* Remove '\n' */
|
||||
if (--out_length && IF_WIN(1,!binary_mode) && pos[out_length-1] == '\r')
|
||||
if (--out_length && !binary_mode && pos[out_length-1] == '\r')
|
||||
/* Remove '\r' */
|
||||
out_length--;
|
||||
}
|
||||
@@ -110,8 +78,7 @@ LINE_BUFFER *batch_readline_command(LINE_BUFFER *line_buff, char * str)
|
||||
Functions to handle buffered readings of lines from a stream
|
||||
******************************************************************************/
|
||||
|
||||
static bool
|
||||
init_line_buffer(LINE_BUFFER *buffer,File file,ulong size,ulong max_buffer)
|
||||
bool init_line_buffer(LINE_BUFFER *buffer,File file,ulong size,ulong max_buffer)
|
||||
{
|
||||
buffer->file=file;
|
||||
buffer->bufread=size;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
find_path(LIBAIO_INCLUDE_DIR NAMES libaio.h)
|
||||
find_path(LIBAIO_INCLUDE_DIRS NAMES libaio.h)
|
||||
find_library(LIBAIO_LIBRARIES NAMES aio)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
|
||||
LIBAIO DEFAULT_MSG
|
||||
LIBAIO_LIBRARIES LIBAIO_INCLUDE_DIR)
|
||||
LIBAIO_LIBRARIES LIBAIO_INCLUDE_DIRS)
|
||||
|
||||
@@ -1,9 +1,17 @@
|
||||
find_path(LZ4_INCLUDE_DIR NAMES lz4.h)
|
||||
find_path(LZ4_INCLUDE_DIRS NAMES lz4.h)
|
||||
find_library(LZ4_LIBRARIES NAMES lz4)
|
||||
|
||||
if(LZ4_INCLUDE_DIRS AND EXISTS "${LZ4_INCLUDE_DIRS}/lz4.h")
|
||||
file(STRINGS "${LZ4_INCLUDE_DIRS}/lz4.h" LZ4_H REGEX "^#define LZ4_VERSION_[MR]")
|
||||
string(REGEX REPLACE "LZ4_VERSION" "" LZ4_H "${LZ4_H}")
|
||||
string(REGEX MATCHALL "[0-9]+" LZ4_H "${LZ4_H}")
|
||||
string(REGEX REPLACE ";" "." LZ4_VERSION_STRING "${LZ4_H}")
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
|
||||
LZ4 DEFAULT_MSG
|
||||
LZ4_LIBRARIES LZ4_INCLUDE_DIR)
|
||||
LZ4
|
||||
REQUIRED_VARS LZ4_LIBRARIES LZ4_INCLUDE_DIRS
|
||||
VERSION_VAR LZ4_VERSION_STRING)
|
||||
|
||||
mark_as_advanced(LZ4_INCLUDE_DIR LZ4_LIBRARIES)
|
||||
mark_as_advanced(LZ4_INCLUDE_DIRS LZ4_LIBRARIES)
|
||||
|
||||
9
cmake/FindLZO.cmake
Normal file
9
cmake/FindLZO.cmake
Normal file
@@ -0,0 +1,9 @@
|
||||
find_path(LZO_INCLUDE_DIRS NAMES lzo/lzo1x.h)
|
||||
find_library(LZO_LIBRARIES NAMES lzo2)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
|
||||
LZO DEFAULT_MSG
|
||||
LZO_LIBRARIES LZO_INCLUDE_DIRS)
|
||||
|
||||
mark_as_advanced(LZO_INCLUDE_DIRS LZO_LIBRARIES)
|
||||
9
cmake/FindSnappy.cmake
Normal file
9
cmake/FindSnappy.cmake
Normal file
@@ -0,0 +1,9 @@
|
||||
find_path(SNAPPY_INCLUDE_DIRS NAMES snappy.h)
|
||||
find_library(SNAPPY_LIBRARIES NAMES snappy)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
|
||||
Snappy DEFAULT_MSG
|
||||
SNAPPY_LIBRARIES SNAPPY_INCLUDE_DIRS)
|
||||
|
||||
mark_as_advanced(SNAPPY_INCLUDE_DIRS SNAPPY_LIBRARIES)
|
||||
@@ -1,9 +1,9 @@
|
||||
find_path(URING_INCLUDE_DIR NAMES liburing.h)
|
||||
find_path(URING_INCLUDE_DIRS NAMES liburing.h)
|
||||
find_library(URING_LIBRARIES NAMES uring)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
|
||||
URING DEFAULT_MSG
|
||||
URING_LIBRARIES URING_INCLUDE_DIR)
|
||||
URING_LIBRARIES URING_INCLUDE_DIRS)
|
||||
|
||||
mark_as_advanced(URING_INCLUDE_DIR URING_LIBRARIES)
|
||||
mark_as_advanced(URING_INCLUDE_DIRS URING_LIBRARIES)
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# - Find zstd
|
||||
# Find the zstd compression library and includes
|
||||
#
|
||||
# ZSTD_INCLUDE_DIR - where to find zstd.h, etc.
|
||||
# ZSTD_INCLUDE_DIRS - where to find zstd.h, etc.
|
||||
# ZSTD_LIBRARIES - List of libraries when using zstd.
|
||||
# ZSTD_FOUND - True if zstd found.
|
||||
|
||||
find_path(ZSTD_INCLUDE_DIR
|
||||
find_path(ZSTD_INCLUDE_DIRS
|
||||
NAMES zstd.h
|
||||
HINTS ${ZSTD_ROOT_DIR}/include)
|
||||
|
||||
@@ -14,8 +14,8 @@ find_library(ZSTD_LIBRARIES
|
||||
HINTS ${ZSTD_ROOT_DIR}/lib)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(ZSTD DEFAULT_MSG ZSTD_LIBRARIES ZSTD_INCLUDE_DIR)
|
||||
find_package_handle_standard_args(ZSTD DEFAULT_MSG ZSTD_LIBRARIES ZSTD_INCLUDE_DIRS)
|
||||
|
||||
mark_as_advanced(
|
||||
ZSTD_LIBRARIES
|
||||
ZSTD_INCLUDE_DIR)
|
||||
ZSTD_INCLUDE_DIRS)
|
||||
|
||||
@@ -4,19 +4,27 @@ MACRO (SKIP_AWS_SDK MSG)
|
||||
RETURN()
|
||||
ENDMACRO()
|
||||
|
||||
FUNCTION (CHECK_AWS_SDK RETVAL REASON)
|
||||
FUNCTION (CHECK_AWS_SDK COMPONENTS RETVAL REASON)
|
||||
# AWS_SDK_EXTERNAL_PROJECT must be ON
|
||||
IF(NOT AWS_SDK_EXTERNAL_PROJECT)
|
||||
SKIP_AWS_SDK("AWS_SDK_EXTERNAL_PROJECT is not ON")
|
||||
FOREACH(comp ${COMPONENTS})
|
||||
FIND_PACKAGE(aws-cpp-sdk-${comp} CONFIG QUIET)
|
||||
IF (NOT aws-cpp-sdk-${comp}_FOUND)
|
||||
SKIP_AWS_SDK("AWS_SDK_EXTERNAL_PROJECT is not ON and aws-cpp-sdk-${comp} not found")
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
SET(${RETVAL} ON PARENT_SCOPE)
|
||||
ENDIF()
|
||||
IF(NOT NOT_FOR_DISTRIBUTION)
|
||||
SKIP_AWS_SDK("AWS SDK has Apache 2.0 License which is not compatible with GPLv2. Set -DNOT_FOR_DISTRIBUTION=ON if you need it")
|
||||
ENDIF()
|
||||
IF(CMAKE_VERSION VERSION_LESS "3.15")
|
||||
SKIP_AWS_SDK("CMake too old")
|
||||
ENDIF()
|
||||
# Check compiler support
|
||||
IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
||||
IF (GCC_VERSION VERSION_LESS 4.8)
|
||||
SKIP_AWS_SDK("GCC VERSION too old (${GCC_VERSION}, required is 4.8 or later")
|
||||
IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
|
||||
SKIP_AWS_SDK("GCC VERSION too old (${GCC_VERSION}, required is 4.9 or later")
|
||||
ENDIF()
|
||||
ELSEIF (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
IF ((CMAKE_CXX_COMPILER_VERSION AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.3) OR
|
||||
@@ -36,35 +44,27 @@ FUNCTION (CHECK_AWS_SDK RETVAL REASON)
|
||||
SKIP_AWS_SDK("OS unsupported by AWS SDK")
|
||||
ENDIF()
|
||||
|
||||
# Build from source, using ExternalProject_Add
|
||||
# AWS C++ SDK requires cmake 2.8.12
|
||||
IF(CMAKE_VERSION VERSION_LESS "2.8.12")
|
||||
SKIP_AWS_SDK("CMake is too old")
|
||||
ENDIF()
|
||||
|
||||
IF(UNIX)
|
||||
# Check librairies required for building SDK
|
||||
FIND_PACKAGE(CURL)
|
||||
SET_PACKAGE_PROPERTIES(CURL PROPERTIES TYPE REQUIRED)
|
||||
IF(NOT CURL_FOUND)
|
||||
SKIP_AWS_SDK("AWS C++ SDK requires libcurl development package")
|
||||
IF("${WITH_ZLIB}" STREQUAL "bundled")
|
||||
# Breaks FIND_PACKAGE(ZLIB)
|
||||
SKIP_AWS_SDK("Incompatible with WITH_ZLIB=bundled")
|
||||
ENDIF()
|
||||
FIND_PATH(UUID_INCLUDE_DIR uuid/uuid.h)
|
||||
IF(NOT UUID_INCLUDE_DIR)
|
||||
SKIP_AWS_SDK("AWS C++ SDK requires uuid development package")
|
||||
ENDIF()
|
||||
IF(NOT APPLE)
|
||||
FIND_LIBRARY(UUID_LIBRARIES uuid)
|
||||
SET_PACKAGE_PROPERTIES(UUID_LIBRARIES PROPERTIES TYPE REQUIRED)
|
||||
IF(NOT UUID_LIBRARIES)
|
||||
SKIP_AWS_SDK("AWS C++ SDK requires uuid development package")
|
||||
# Check libraries required for building SDK
|
||||
FOREACH(pkg CURL ZLIB OpenSSL)
|
||||
FIND_PACKAGE(${pkg})
|
||||
IF(NOT ${pkg}_FOUND)
|
||||
SKIP_AWS_SDK("AWS C++ SDK requires ${pkg}")
|
||||
ENDIF()
|
||||
FIND_PACKAGE(OpenSSL)
|
||||
SET_PACKAGE_PROPERTIES(OpenSSL PROPERTIES TYPE REQUIRED)
|
||||
IF(NOT OPENSSL_FOUND)
|
||||
SKIP_AWS_SDK("AWS C++ SDK requires openssl development package")
|
||||
SET_PACKAGE_PROPERTIES(${pkg} PROPERTIES TYPE REQUIRED)
|
||||
ENDFOREACH()
|
||||
# Also check for required libraries explicitely - they might be
|
||||
# missing, even if check above succeeds, e.g when using own copy
|
||||
# of zlib
|
||||
FOREACH(lib OpenSSL::Crypto ZLIB::ZLIB CURL::libcurl)
|
||||
IF(NOT TARGET ${lib})
|
||||
SKIP_AWS_SDK("AWS C++ SDK requires ${lib}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
ENDIF()
|
||||
SET(${RETVAL} ON PARENT_SCOPE)
|
||||
ENDFUNCTION()
|
||||
@@ -85,14 +85,4 @@ FUNCTION(USE_AWS_SDK_LIBS)
|
||||
SET_PROPERTY(GLOBAL PROPERTY AWS_SDK_LIBS ${comp} APPEND)
|
||||
TARGET_LINK_LIBRARIES(${target} aws-cpp-sdk-${comp})
|
||||
ENDFOREACH()
|
||||
TARGET_LINK_LIBRARIES(${target} aws-cpp-sdk-core)
|
||||
TARGET_INCLUDE_DIRECTORIES(${target} PRIVATE ${PROJECT_BINARY_DIR}/extra/aws_sdk/aws_sdk_cpp/include)
|
||||
# Link OS libraries that AWS SDK depends on
|
||||
IF(WIN32)
|
||||
TARGET_LINK_LIBRARIES(${target} bcrypt winhttp wininet userenv version)
|
||||
ELSE()
|
||||
FIND_PACKAGE(CURL REQUIRED)
|
||||
FIND_PACKAGE(OpenSSL REQUIRED)
|
||||
TARGET_LINK_LIBRARIES(${target} ${OPENSSL_LIBRARIES} ${CURL_LIBRARIES} ${UUID_LIBRARIES})
|
||||
ENDIF()
|
||||
ENDFUNCTION()
|
||||
|
||||
@@ -108,14 +108,10 @@ ELSEIF(RPM)
|
||||
SET(WITH_PCRE system CACHE STRING "")
|
||||
SET(CLIENT_PLUGIN_ZSTD OFF)
|
||||
IF(RPM MATCHES "fedora|centos|rhel|rocky|alma")
|
||||
SET(WITH_INNODB_BZIP2 OFF CACHE STRING "")
|
||||
SET(WITH_INNODB_LZO OFF CACHE STRING "")
|
||||
SET(WITH_ROCKSDB_BZip2 OFF CACHE STRING "")
|
||||
ENDIF()
|
||||
IF(RPM MATCHES "opensuse|sles|centos|rhel|rocky|alma")
|
||||
SET(WITH_INNODB_LZ4 OFF CACHE STRING "")
|
||||
SET(WITH_ROCKSDB_LZ4 OFF CACHE STRING "")
|
||||
SET(GRN_WITH_LZ4 no CACHE STRING "")
|
||||
ENDIF()
|
||||
IF(RPM MATCHES "rhel8")
|
||||
SET(WITH_READLINE ON CACHE BOOL "")
|
||||
@@ -125,13 +121,13 @@ ELSEIF(DEB)
|
||||
SET(WITH_ZLIB system CACHE STRING "")
|
||||
SET(WITH_LIBWRAP ON)
|
||||
SET(HAVE_EMBEDDED_PRIVILEGE_CONTROL ON)
|
||||
SET(PLUGIN_AUTH_SOCKET YES CACHE STRING "")
|
||||
# On Hurd systems (GNU) there is no auth socket implementation
|
||||
IF(NOT CMAKE_SYSTEM_NAME STREQUAL "GNU")
|
||||
SET(PLUGIN_AUTH_SOCKET YES CACHE STRING "")
|
||||
ENDIF()
|
||||
SET(WITH_EMBEDDED_SERVER ON CACHE BOOL "")
|
||||
SET(WITH_PCRE system CACHE STRING "")
|
||||
SET(CLIENT_PLUGIN_ZSTD OFF)
|
||||
SET(WITH_INNODB_BZIP2 OFF CACHE STRING "")
|
||||
SET(WITH_INNODB_LZMA OFF CACHE STRING "")
|
||||
SET(WITH_INNODB_LZO OFF CACHE STRING "")
|
||||
SET(WITH_ROCKSDB_BZip2 OFF CACHE STRING "")
|
||||
ELSE()
|
||||
SET(WITH_SSL bundled CACHE STRING "")
|
||||
@@ -140,12 +136,8 @@ ELSE()
|
||||
SET(WITH_JEMALLOC static CACHE STRING "")
|
||||
SET(PLUGIN_AUTH_SOCKET STATIC CACHE STRING "")
|
||||
SET(WITH_STRIPPED_CLIENT ON CACHE BOOL "Strip all client binaries")
|
||||
SET(WITH_INNODB_BZIP2 OFF CACHE STRING "")
|
||||
SET(WITH_INNODB_LZ4 OFF CACHE STRING "")
|
||||
SET(WITH_INNODB_LZO OFF CACHE STRING "")
|
||||
SET(WITH_ROCKSDB_BZip2 OFF CACHE STRING "")
|
||||
SET(WITH_ROCKSDB_LZ4 OFF CACHE STRING "")
|
||||
SET(GRN_WITH_LZ4 no CACHE STRING "")
|
||||
ENDIF()
|
||||
|
||||
IF(NOT COMPILATION_COMMENT)
|
||||
@@ -180,152 +172,3 @@ IF(UNIX)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# Compiler options
|
||||
IF(UNIX)
|
||||
|
||||
# Default GCC flags
|
||||
IF(CMAKE_COMPILER_IS_GNUCC)
|
||||
SET(COMMON_C_FLAGS "-g -fno-omit-frame-pointer -fno-strict-aliasing -Wno-uninitialized")
|
||||
STRING(APPEND CMAKE_C_FLAGS_DEBUG " ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELEASE " ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " ${COMMON_C_FLAGS}")
|
||||
# MariaDB uses -O3 for release builds
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
||||
ENDIF()
|
||||
IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
SET(COMMON_CXX_FLAGS "-g -fno-omit-frame-pointer -fno-strict-aliasing -Wno-uninitialized")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_DEBUG " ${COMMON_CXX_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELEASE " ${COMMON_CXX_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " ${COMMON_CXX_FLAGS}")
|
||||
# MariaDB uses -O3 for release builds
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||
ENDIF()
|
||||
|
||||
# IBM Z flags
|
||||
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "s390x")
|
||||
IF(RPM MATCHES "(rhel|centos)6" OR RPM MATCHES "(suse|sles)11")
|
||||
SET(z_flags "-funroll-loops -march=z9-109 -mtune=z10")
|
||||
ELSEIF(RPM MATCHES "(rhel|centos)7" OR RPM MATCHES "(suse|sles)12")
|
||||
SET(z_flags "-funroll-loops -march=z196 -mtune=zEC12")
|
||||
ELSE()
|
||||
SET(z_flags "")
|
||||
ENDIF()
|
||||
|
||||
IF(CMAKE_COMPILER_IS_GNUCC)
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELEASE " ${z_flags}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " ${z_flags}")
|
||||
ENDIF()
|
||||
IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELEASE " ${z_flags}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " ${z_flags}")
|
||||
ENDIF()
|
||||
UNSET(z_flags)
|
||||
ENDIF()
|
||||
|
||||
# HPUX flags
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES "HP")
|
||||
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "ia64")
|
||||
SET(COMMON_C_FLAGS "+DSitanium2 -mt -AC99")
|
||||
SET(COMMON_CXX_FLAGS "+DSitanium2 -mt -Aa")
|
||||
STRING(APPEND CMAKE_C_FLAGS_DEBUG " +O0 -g ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_DEBUG " +O0 -g ${COMMON_CXX_FLAGS}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELEASE " +O0 -g ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELEASE " +O0 -g ${COMMON_CXX_FLAGS}")
|
||||
# We have seen compiler bugs with optimisation and -g, so disabled for now
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELEASE " +O2 ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELEASE " +O2 ${COMMON_CXX_FLAGS}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
SET(WITH_SSL no)
|
||||
ENDIF()
|
||||
|
||||
# Linux flags
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES "Intel")
|
||||
SET(COMMON_C_FLAGS "-static-intel -static-libgcc -g -mp -restrict")
|
||||
SET(COMMON_CXX_FLAGS "-static-intel -static-libgcc -g -mp -restrict -fno-exceptions")
|
||||
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "ia64")
|
||||
SET(COMMON_C_FLAGS "${COMMON_C_FLAGS} -no-ftz -no-prefetch")
|
||||
SET(COMMON_CXX_FLAGS "${COMMON_CXX_FLAGS} -no-ftz -no-prefetch")
|
||||
ENDIF()
|
||||
STRING(APPEND CMAKE_C_FLAGS_DEBUG " ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_DEBUG " ${COMMON_CXX_FLAGS}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELEASE " -unroll2 -ip ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELEASE " -unroll2 -ip ${COMMON_CXX_FLAGS}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " -unroll2 -ip ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " -unroll2 -ip ${COMMON_CXX_FLAGS}")
|
||||
|
||||
# MariaDB uses -O3 for release builds.
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||
SET(WITH_SSL no)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# Default Clang flags
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
SET(COMMON_C_FLAGS "-g -fno-omit-frame-pointer -fno-strict-aliasing -Wno-parentheses-equality -Wno-string-plus-int")
|
||||
STRING(APPEND CMAKE_C_FLAGS_DEBUG " ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELEASE " ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " ${COMMON_C_FLAGS}")
|
||||
# MariaDB uses -O3 for release builds.
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
||||
ENDIF()
|
||||
IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
SET(COMMON_CXX_FLAGS "-g -fno-omit-frame-pointer -fno-strict-aliasing -Wno-parentheses-equality -Wno-string-plus-int")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_DEBUG " ${COMMON_CXX_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELEASE " ${COMMON_CXX_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " ${COMMON_CXX_FLAGS}")
|
||||
# MariaDB uses -O3 for release builds.
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||
STRING(REGEX REPLACE "-O2" "-O3" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||
ENDIF()
|
||||
|
||||
# Solaris flags
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "SunOS")
|
||||
IF(CMAKE_SYSTEM_VERSION VERSION_GREATER "5.9")
|
||||
# Link mysqld with mtmalloc on Solaris 10 and later
|
||||
SET(WITH_MYSQLD_LDFLAGS "-lmtmalloc" CACHE STRING "")
|
||||
ENDIF()
|
||||
IF(CMAKE_C_COMPILER_ID MATCHES "SunPro")
|
||||
IF(CMAKE_SYSTEM_PROCESSOR MATCHES "i386")
|
||||
SET(COMMON_C_FLAGS "-g -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -xlibmil -xlibmopt -xtarget=generic")
|
||||
SET(COMMON_CXX_FLAGS "-g0 -mt -fsimple=1 -ftrap=%none -nofstore -xbuiltin=%all -features=no%except -xlibmil -xlibmopt -xtarget=generic")
|
||||
STRING(APPEND CMAKE_C_FLAGS_DEBUG " -xO1 ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_DEBUG " -xO1 ${COMMON_CXX_FLAGS}")
|
||||
IF(32BIT)
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELEASE " -xO2 ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELEASE " -xO2 ${COMMON_CXX_FLAGS}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " -xO2 ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " -xO2 ${COMMON_CXX_FLAGS}")
|
||||
ELSEIF(64BIT)
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELEASE " -xO3 ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELEASE " -xO3 ${COMMON_CXX_FLAGS}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " -xO3 ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " -xO3 ${COMMON_CXX_FLAGS}")
|
||||
ENDIF()
|
||||
ELSE()
|
||||
# Assume !x86 is SPARC
|
||||
SET(COMMON_C_FLAGS "-g -Xa -xstrconst -mt")
|
||||
SET(COMMON_CXX_FLAGS "-g0 -noex -mt")
|
||||
IF(32BIT)
|
||||
STRING(APPEND COMMON_C_FLAGS " -xarch=sparc")
|
||||
STRING(APPEND COMMON_CXX_FLAGS " -xarch=sparc")
|
||||
ENDIF()
|
||||
STRING(APPEND CMAKE_C_FLAGS_DEBUG " ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_DEBUG " ${COMMON_CXX_FLAGS}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELEASE " -xO3 ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELEASE " -xO3 ${COMMON_CXX_FLAGS}")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " -xO3 ${COMMON_C_FLAGS}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " -xO3 ${COMMON_CXX_FLAGS}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
@@ -32,7 +32,7 @@ IF(RPM)
|
||||
GET_PROPERTY(T CACHE ${V} PROPERTY TYPE)
|
||||
IF ((T STREQUAL FILEPATH OR V MATCHES "^CMAKE_COMMAND$") AND ${V} MATCHES "^/")
|
||||
IF (RPM)
|
||||
FIND_DEP(${V} rpm -q --qf "%{NAME}" -f ${${V}})
|
||||
FIND_DEP(${V} rpm -q --qf "%{NAME} " -f ${${V}})
|
||||
ELSE() # must be DEB
|
||||
MESSAGE(FATAL_ERROR "Not implemented")
|
||||
ENDIF ()
|
||||
|
||||
@@ -2,6 +2,8 @@ IF(RPM)
|
||||
|
||||
MESSAGE(STATUS "CPackRPM building with RPM configuration: ${RPM}")
|
||||
|
||||
INCLUDE(check_linker_flag)
|
||||
|
||||
SET(CPACK_GENERATOR "RPM")
|
||||
SET(CPACK_RPM_PACKAGE_DEBUG 1)
|
||||
SET(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||
@@ -52,6 +54,19 @@ SET(CPACK_PACKAGE_RELOCATABLE FALSE)
|
||||
SET(CPACK_RPM_PACKAGE_GROUP "Applications/Databases")
|
||||
SET(CPACK_RPM_PACKAGE_URL ${CPACK_PACKAGE_URL})
|
||||
|
||||
# The spec file depends on environment variables
|
||||
SET(ENV{RPM_PACKAGE_NAME} ${CPACK_RPM_PACKAGE_NAME})
|
||||
EXECUTE_PROCESS(COMMAND rpm --eval ${CPACK_RPM_PACKAGE_RELEASE} OUTPUT_VARIABLE RPM_PACKAGE_RELEASE_EXPANDED)
|
||||
STRING(STRIP "${RPM_PACKAGE_RELEASE_EXPANDED}" RPM_PACKAGE_RELEASE_EXPANDED)
|
||||
SET(ENV{RPM_PACKAGE_RELEASE} ${RPM_PACKAGE_RELEASE_EXPANDED})
|
||||
SET(ENV{RPM_ARCH} ${CMAKE_SYSTEM_PROCESSOR})
|
||||
SET(ENV{RPM_PACKAGE_VERSION} ${SERVER_VERSION})
|
||||
MY_CHECK_AND_SET_LINKER_FLAG("-specs=/usr/lib/rpm/redhat/redhat-package-notes")
|
||||
IF(HAVE_LINK_FLAG__specs_/usr/lib/rpm/redhat/redhat_package_notes)
|
||||
SET(CMAKE_CXX_LINKER_LAUNCHER "env;RPM_PACKAGE_NAME=$ENV{RPM_PACKAGE_NAME};RPM_ARCH=$ENV{RPM_ARCH};RPM_PACKAGE_VERSION=$ENV{RPM_PACKAGE_VERSION};RPM_PACKAGE_RELEASE=$ENV{RPM_PACKAGE_RELEASE}")
|
||||
SET(CMAKE_C_LINKER_LAUNCHER ${CMAKE_CXX_LINKER_LAUNCHER})
|
||||
ENDIF()
|
||||
|
||||
SET(CPACK_RPM_shared_PACKAGE_VENDOR "MariaDB Corporation Ab")
|
||||
SET(CPACK_RPM_shared_PACKAGE_LICENSE "LGPLv2.1")
|
||||
|
||||
@@ -61,7 +76,7 @@ SET(CPACK_RPM_PACKAGE_DESCRIPTION "MariaDB: a very fast and robust SQL database
|
||||
It is GPL v2 licensed, which means you can use the it free of charge under the
|
||||
conditions of the GNU General Public License Version 2 (http://www.gnu.org/licenses/).
|
||||
|
||||
MariaDB documentation can be found at https://mariadb.com/kb
|
||||
MariaDB documentation can be found at https://mariadb.com/docs
|
||||
MariaDB bug reports should be submitted through https://jira.mariadb.org")
|
||||
|
||||
# mariabackup
|
||||
@@ -165,7 +180,7 @@ SET(ignored
|
||||
SET(CPACK_RPM_server_USER_FILELIST
|
||||
${ignored}
|
||||
"%config(noreplace) ${INSTALL_SYSCONF2DIR}/*"
|
||||
"%config(noreplace) ${INSTALL_SYSCONFDIR}/logrotate.d/mysql"
|
||||
"%config(noreplace) ${INSTALL_SYSCONFDIR}/logrotate.d/mariadb"
|
||||
)
|
||||
SET(CPACK_RPM_common_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONFDIR}/my.cnf")
|
||||
SET(CPACK_RPM_shared_USER_FILELIST ${ignored} "%config(noreplace) ${INSTALL_SYSCONF2DIR}/*")
|
||||
@@ -195,6 +210,10 @@ SETA(CPACK_RPM_client_PACKAGE_CONFLICTS
|
||||
|
||||
SETA(CPACK_RPM_common_PACKAGE_CONFLICTS
|
||||
"MariaDB-server < 10.6.1")
|
||||
SETA(CPACK_RPM_common_PACKAGE_OBSOLETES
|
||||
"mysql-common")
|
||||
SETA(CPACK_RPM_common_PACKAGE_PROVIDES
|
||||
"mysql-common")
|
||||
|
||||
SETA(CPACK_RPM_devel_PACKAGE_OBSOLETES
|
||||
"MySQL-devel")
|
||||
@@ -229,7 +248,7 @@ IF(WITH_WSREP)
|
||||
SETA(CPACK_RPM_server_PACKAGE_REQUIRES
|
||||
"galera-4" "rsync" "grep" "gawk" "iproute"
|
||||
"coreutils" "findutils" "tar")
|
||||
SETA(CPACK_RPM_server_PACKAGE_RECOMMENDS "lsof" "socat")
|
||||
SETA(CPACK_RPM_server_PACKAGE_RECOMMENDS "lsof" "socat" "pv")
|
||||
SETA(CPACK_RPM_test_PACKAGE_REQUIRES "${CPACK_RPM_PACKAGE_REQUIRES}" "socat")
|
||||
ENDIF()
|
||||
|
||||
@@ -307,6 +326,9 @@ IF(RPM MATCHES "fedora")
|
||||
ALTERNATIVE_NAME("shared" "mariadb-connector-c" ${MARIADB_CONNECTOR_C_VERSION}-1)
|
||||
ENDIF()
|
||||
|
||||
IF(RPM MATCHES "fedora|rhel|centos" AND NOT RPM MATCHES "rhel[78]")
|
||||
SETA(CPACK_RPM_server_PACKAGE_REQUIRES "(mysql-selinux >= 1.0.14 if selinux-policy-targeted)")
|
||||
ENDIF()
|
||||
SET(PYTHON_SHEBANG "/usr/bin/python3" CACHE STRING "python shebang")
|
||||
|
||||
# If we want to build build MariaDB-shared-compat,
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
|
||||
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "SunOS" AND CMAKE_COMPILER_IS_GNUCXX
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES "SunOS" AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
|
||||
AND CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
IF(NOT DEFINED BUGGY_GCC_NO_DTRACE_MODULES)
|
||||
EXECUTE_PROCESS(
|
||||
|
||||
@@ -140,7 +140,7 @@ FUNCTION(INSTALL_DOCUMENTATION)
|
||||
IF(RPM)
|
||||
SET(destination "${destination}/MariaDB-${group}-${VERSION}")
|
||||
ELSEIF(DEB)
|
||||
SET(destination "${destination}/mariadb-${group}-${MAJOR_VERSION}.${MINOR_VERSION}")
|
||||
SET(destination "${destination}/mariadb-${group}")
|
||||
ENDIF()
|
||||
|
||||
INSTALL(FILES ${files} DESTINATION ${destination} COMPONENT ${ARG_COMPONENT})
|
||||
|
||||
52
cmake/libfmt.cmake
Normal file
52
cmake/libfmt.cmake
Normal file
@@ -0,0 +1,52 @@
|
||||
INCLUDE (CheckCXXSourceRuns)
|
||||
INCLUDE (ExternalProject)
|
||||
|
||||
SET(WITH_LIBFMT "auto" CACHE STRING
|
||||
"Which libfmt to use (possible values are 'bundled', 'system', or 'auto')")
|
||||
|
||||
MACRO(BUNDLE_LIBFMT)
|
||||
SET(dir "${CMAKE_BINARY_DIR}/extra/libfmt")
|
||||
SET(LIBFMT_INCLUDE_DIR "${dir}/src/libfmt/include")
|
||||
|
||||
IF(CMAKE_VERSION VERSION_GREATER "3.0")
|
||||
SET(fmt_byproducts BUILD_BYPRODUCTS ${LIBFMT_INCLUDE_DIR}/fmt/format-inl.h)
|
||||
ENDIF()
|
||||
|
||||
ExternalProject_Add(
|
||||
libfmt
|
||||
PREFIX "${dir}"
|
||||
URL "https://github.com/fmtlib/fmt/releases/download/11.0.2/fmt-11.0.2.zip"
|
||||
URL_MD5 c622dca45ec3fc95254c48370a9f7a1d
|
||||
INSTALL_COMMAND ""
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
${fmt_byproducts}
|
||||
)
|
||||
ENDMACRO()
|
||||
|
||||
MACRO (CHECK_LIBFMT)
|
||||
IF(WITH_LIBFMT STREQUAL "system" OR WITH_LIBFMT STREQUAL "auto")
|
||||
SET(CMAKE_REQUIRED_INCLUDES ${LIBFMT_INCLUDE_DIR})
|
||||
CHECK_CXX_SOURCE_RUNS(
|
||||
"#define FMT_HEADER_ONLY 1
|
||||
#include <fmt/args.h>
|
||||
int main() {
|
||||
using ArgStore= fmt::dynamic_format_arg_store<fmt::format_context>;
|
||||
ArgStore arg_store;
|
||||
int answer= 4321;
|
||||
arg_store.push_back(answer);
|
||||
return fmt::vformat(\"{}\", arg_store).compare(\"4321\");
|
||||
}" HAVE_SYSTEM_LIBFMT)
|
||||
SET(CMAKE_REQUIRED_INCLUDES)
|
||||
ENDIF()
|
||||
IF(NOT HAVE_SYSTEM_LIBFMT OR WITH_LIBFMT STREQUAL "bundled")
|
||||
IF (WITH_LIBFMT STREQUAL "system")
|
||||
MESSAGE(FATAL_ERROR "system libfmt library is not found or unusable")
|
||||
ENDIF()
|
||||
BUNDLE_LIBFMT()
|
||||
ELSE()
|
||||
FIND_FILE(Libfmt_core_h fmt/core.h) # for build_depends.cmake
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
MARK_AS_ADVANCED(LIBFMT_INCLUDE_DIR)
|
||||
@@ -63,10 +63,19 @@ ENDFOREACH()
|
||||
|
||||
SET(MY_ERROR_FLAGS -Werror -fno-operator-names)
|
||||
|
||||
IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER_VERSION VERSION_LESS "6.0.0")
|
||||
IF(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "6.0.0")
|
||||
SET(MY_ERROR_FLAGS ${MY_ERROR_FLAGS} -Wno-error=maybe-uninitialized)
|
||||
SET(MY_ERROR_FLAGS ${MY_ERROR_FLAGS} -Wno-error=non-virtual-dtor) # gcc bug 7302
|
||||
ENDIF()
|
||||
|
||||
FOREACH(LANG C CXX)
|
||||
IF(CMAKE_${LANG}_COMPILER_ID MATCHES "Clang")
|
||||
MY_CHECK_AND_SET_COMPILER_FLAG(-Werror=uninitialized-explicit-init)
|
||||
MY_CHECK_AND_SET_COMPILER_FLAG(-Werror=uninitialized-const-reference)
|
||||
SET(CMAKE_${LANG}_FLAGS "${CMAKE_${LANG}_FLAGS} -Werror=uninitialized")
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
|
||||
IF(MYSQL_MAINTAINER_MODE MATCHES "OFF|WARN")
|
||||
RETURN()
|
||||
ELSEIF(MYSQL_MAINTAINER_MODE MATCHES "AUTO")
|
||||
|
||||
@@ -46,30 +46,13 @@ IF(GIT_EXECUTABLE)
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
RESULT_VARIABLE RESULT
|
||||
)
|
||||
IF(NOT RESULT EQUAL 0)
|
||||
SET(GIT_EXECUTABLE)
|
||||
IF(RESULT EQUAL 0)
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND "${GIT_EXECUTABLE}" submodule foreach --recursive "${GIT_EXECUTABLE} checkout-index --all --prefix=${PACKAGE_DIR}/$displaypath/"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
RESULT_VARIABLE RESULT
|
||||
)
|
||||
ENDIF()
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND "${GIT_EXECUTABLE}" submodule foreach "${GIT_EXECUTABLE} checkout-index --all --prefix=${PACKAGE_DIR}/$path/"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
RESULT_VARIABLE RESULT
|
||||
)
|
||||
IF(NOT RESULT EQUAL 0)
|
||||
SET(GIT_EXECUTABLE)
|
||||
ENDIF()
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND "${GIT_EXECUTABLE}" submodule foreach "${GIT_EXECUTABLE} checkout-index --all --prefix=${PACKAGE_DIR}/wsrep-lib/$path/"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/wsrep-lib
|
||||
RESULT_VARIABLE RESULT
|
||||
)
|
||||
IF(NOT RESULT EQUAL 0)
|
||||
SET(GIT_EXECUTABLE)
|
||||
ENDIF()
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND "${GIT_EXECUTABLE}" submodule foreach "${GIT_EXECUTABLE} checkout-index --all --prefix=${PACKAGE_DIR}/storage/columnstore/columnstore/$path/"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/storage/columnstore/columnstore
|
||||
RESULT_VARIABLE RESULT
|
||||
)
|
||||
IF(NOT RESULT EQUAL 0)
|
||||
SET(GIT_EXECUTABLE)
|
||||
ENDIF()
|
||||
|
||||
@@ -97,7 +97,7 @@ SET_IF_UNSET(CPACK_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}
|
||||
It is GPL v2 licensed, which means you can use the it free of charge under the
|
||||
conditions of the GNU General Public License Version 2 (http://www.gnu.org/licenses/).
|
||||
|
||||
MariaDB documentation can be found at https://mariadb.com/kb
|
||||
MariaDB documentation can be found at https://mariadb.com/docs
|
||||
MariaDB bug reports should be submitted through https://jira.mariadb.org
|
||||
|
||||
")
|
||||
|
||||
@@ -34,8 +34,5 @@ ELSE()
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -maix64 -pthread -mcmodel=large")
|
||||
ENDIF()
|
||||
|
||||
# fcntl(fd, F_SETFL, O_DIRECT) is not supported; O_DIRECT is an open(2) flag
|
||||
SET(HAVE_FCNTL_DIRECT 0 CACHE INTERNAL "")
|
||||
|
||||
# make it WARN by default, not AUTO (that implies -Werror)
|
||||
SET(MYSQL_MAINTAINER_MODE "WARN" CACHE STRING "Enable MariaDB maintainer-specific warnings. One of: NO (warnings are disabled) WARN (warnings are enabled) ERR (warnings are errors) AUTO (warnings are errors in Debug only)")
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (C) 2024 MariaDB Foundation
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -16,15 +15,5 @@
|
||||
|
||||
# This file includes FreeBSD specific options and quirks, related to system checks
|
||||
|
||||
# Should not be needed any more, but kept for easy resurrection if needed
|
||||
# #Legacy option, maybe not needed anymore , taken as is from autotools build
|
||||
# ADD_DEFINITIONS(-DNET_RETRY_COUNT=1000000)
|
||||
|
||||
# Find libexecinfo (library that contains backtrace_symbols etc)
|
||||
SET(EXECINFO_ROOT /usr/local CACHE INTERNAL "Where to find execinfo library and header")
|
||||
INCLUDE_DIRECTORIES(${EXECINFO_ROOT}/include)
|
||||
SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${EXECINFO_ROOT}/include)
|
||||
SET(ENV{LIB} "$ENV{LIB}:${EXECINFO_ROOT}/lib")
|
||||
|
||||
# For all userspace dependencies
|
||||
LINK_DIRECTORIES(/usr/local/lib)
|
||||
|
||||
@@ -17,10 +17,6 @@ INCLUDE(CheckSymbolExists)
|
||||
INCLUDE(CheckCSourceRuns)
|
||||
INCLUDE(CheckCSourceCompiles)
|
||||
|
||||
# fcntl(fd, F_SETFL, O_DIRECT) is not supported,
|
||||
# and directio(3C) would only work on UFS or NFS, not ZFS.
|
||||
SET(HAVE_FCNTL_DIRECT 0 CACHE INTERNAL "")
|
||||
|
||||
# Enable 64 bit file offsets
|
||||
SET(_FILE_OFFSET_BITS 64)
|
||||
|
||||
@@ -73,8 +69,8 @@ CHECK_C_SOURCE_RUNS(
|
||||
|
||||
|
||||
# Check is special processor flag needs to be set on older GCC
|
||||
#that defaults to v8 sparc . Code here is taken from my_rdtsc.h
|
||||
IF(CMAKE_COMPILER_IS_GNUCC AND CMAKE_SIZEOF_VOID_P EQUAL 4
|
||||
# that defaults to v8 sparc . Code here is taken from my_rdtsc.h
|
||||
IF(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_SIZEOF_VOID_P EQUAL 4
|
||||
AND CMAKE_SYSTEM_PROCESSOR MATCHES "sparc")
|
||||
SET(SOURCE
|
||||
"
|
||||
|
||||
@@ -15,370 +15,210 @@
|
||||
|
||||
# This file includes Windows specific hacks, mostly around compiler flags
|
||||
|
||||
INCLUDE (CheckCSourceCompiles)
|
||||
INCLUDE (CheckCXXSourceCompiles)
|
||||
INCLUDE (CheckStructHasMember)
|
||||
INCLUDE (CheckLibraryExists)
|
||||
INCLUDE (CheckFunctionExists)
|
||||
INCLUDE (CheckCSourceRuns)
|
||||
INCLUDE (CheckSymbolExists)
|
||||
INCLUDE (CheckTypeSize)
|
||||
|
||||
IF(MSVC)
|
||||
IF(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL ARM64)
|
||||
SET(MSVC_ARM64 1)
|
||||
SET(MSVC_INTEL 0)
|
||||
ELSE()
|
||||
SET(MSVC_INTEL 1)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
if(MSVC)
|
||||
if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL ARM64)
|
||||
set(MSVC_ARM64 1)
|
||||
set(MSVC_INTEL 0)
|
||||
else()
|
||||
set(MSVC_INTEL 1)
|
||||
endif()
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL Clang)
|
||||
set(CLANG_CL TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# avoid running system checks by using pre-cached check results
|
||||
# system checks are expensive on VS since every tiny program is to be compiled in
|
||||
# a VC solution.
|
||||
GET_FILENAME_COMPONENT(_SCRIPT_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
|
||||
INCLUDE(${_SCRIPT_DIR}/WindowsCache.cmake)
|
||||
|
||||
get_filename_component(_SCRIPT_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
|
||||
include(${_SCRIPT_DIR}/WindowsCache.cmake)
|
||||
|
||||
# OS display name (version_compile_os etc).
|
||||
# Used by the test suite to ignore bugs on some platforms,
|
||||
IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||
SET(SYSTEM_TYPE "Win64")
|
||||
ELSE()
|
||||
SET(SYSTEM_TYPE "Win32")
|
||||
ENDIF()
|
||||
# Used by the test suite to ignore bugs on some platforms
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(SYSTEM_TYPE "Win64")
|
||||
else()
|
||||
set(SYSTEM_TYPE "Win32")
|
||||
endif()
|
||||
|
||||
# Intel compiler is almost Visual C++
|
||||
# (same compile flags etc). Set MSVC flag
|
||||
IF(CMAKE_C_COMPILER MATCHES "icl")
|
||||
SET(MSVC TRUE)
|
||||
ENDIF()
|
||||
function(find_asan_runtime result_list)
|
||||
set(${result_list} "" PARENT_SCOPE)
|
||||
if(CMAKE_C_COMPILER_VERSION)
|
||||
set(CLANG_VERSION "${CMAKE_C_COMPILER_VERSION}")
|
||||
else()
|
||||
return()
|
||||
endif()
|
||||
|
||||
IF(MSVC AND CMAKE_CXX_COMPILER_ID MATCHES Clang)
|
||||
SET(CLANG_CL TRUE)
|
||||
ENDIF()
|
||||
get_filename_component(CLANG_BIN_DIR "${CMAKE_C_COMPILER}" DIRECTORY)
|
||||
get_filename_component(LLVM_ROOT "${CLANG_BIN_DIR}" DIRECTORY)
|
||||
|
||||
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
|
||||
ADD_DEFINITIONS(-D_WIN32_WINNT=0x0A00)
|
||||
# We do not want the windows.h macros min/max
|
||||
ADD_DEFINITIONS(-DNOMINMAX)
|
||||
# Speed up build process excluding unused header files
|
||||
ADD_DEFINITIONS(-DWIN32_LEAN_AND_MEAN)
|
||||
|
||||
# Adjust compiler and linker flags
|
||||
IF(MINGW AND CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
# mininal architecture flags, i486 enables GCC atomics
|
||||
ADD_DEFINITIONS(-march=i486)
|
||||
ENDIF()
|
||||
|
||||
MACRO(ENABLE_SANITIZERS)
|
||||
IF(NOT MSVC)
|
||||
MESSAGE(FATAL_ERROR "clang-cl or MSVC necessary to enable asan/ubsan")
|
||||
ENDIF()
|
||||
# currently, asan is broken with static CRT.
|
||||
IF(CLANG_CL AND NOT(MSVC_CRT_TYPE STREQUAL "/MD"))
|
||||
SET(MSVC_CRT_TYPE "/MD" CACHE INTERNAL "" FORCE)
|
||||
ENDIF()
|
||||
IF(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
SET(ASAN_ARCH i386)
|
||||
ELSE()
|
||||
SET(ASAN_ARCH x86_64)
|
||||
ENDIF()
|
||||
|
||||
# After installation, clang lib directory should be added to PATH
|
||||
# (e.g C:/Program Files/LLVM/lib/clang/5.0.1/lib/windows)
|
||||
SET(SANITIZER_LIBS)
|
||||
SET(SANITIZER_LINK_LIBRARIES)
|
||||
SET(SANITIZER_COMPILE_FLAGS)
|
||||
IF(WITH_ASAN)
|
||||
IF(CLANG_CL)
|
||||
LIST(APPEND SANITIZER_LIBS
|
||||
clang_rt.asan_dynamic-${ASAN_ARCH}.lib clang_rt.asan_dynamic_runtime_thunk-${ASAN_ARCH}.lib)
|
||||
ENDIF()
|
||||
STRING(APPEND SANITIZER_COMPILE_FLAGS " -fsanitize=address")
|
||||
ENDIF()
|
||||
IF(WITH_UBSAN)
|
||||
STRING(APPEND SANITIZER_COMPILE_FLAGS " -fsanitize=undefined -fno-sanitize=alignment")
|
||||
ENDIF()
|
||||
FOREACH(lib ${SANITIZER_LIBS})
|
||||
FIND_LIBRARY(${lib}_fullpath ${lib})
|
||||
IF(NOT ${lib}_fullpath)
|
||||
MESSAGE(FATAL_ERROR "Can't enable sanitizer : missing ${lib}")
|
||||
ENDIF()
|
||||
LIST(APPEND CMAKE_REQUIRED_LIBRARIES ${${lib}_fullpath})
|
||||
STRING(APPEND CMAKE_C_STANDARD_LIBRARIES " \"${${lib}_fullpath}\" ")
|
||||
STRING(APPEND CMAKE_CXX_STANDARD_LIBRARIES " \"${${lib}_fullpath}\" ")
|
||||
ENDFOREACH()
|
||||
STRING(APPEND CMAKE_C_FLAGS ${SANITIZER_COMPILE_FLAGS})
|
||||
STRING(APPEND CMAKE_CXX_FLAGS ${SANITIZER_COMPILE_FLAGS})
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
IF(MSVC)
|
||||
IF(MSVC_VERSION LESS 1920)
|
||||
MESSAGE(FATAL_ERROR "Visual Studio 2019 or later is required")
|
||||
ENDIF()
|
||||
# Disable mingw based pkg-config found in Strawberry perl
|
||||
SET(PKG_CONFIG_EXECUTABLE 0 CACHE INTERNAL "")
|
||||
|
||||
SET(MSVC_CRT_TYPE /MT CACHE STRING
|
||||
"Runtime library - specify runtime library for linking (/MT,/MTd,/MD,/MDd)"
|
||||
# Determine target architecture
|
||||
execute_process(
|
||||
COMMAND "${CMAKE_C_COMPILER}" --version
|
||||
OUTPUT_VARIABLE CLANG_VERSION_OUTPUT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_QUIET
|
||||
)
|
||||
SET(VALID_CRT_TYPES /MTd /MDd /MD /MT)
|
||||
IF (NOT ";${VALID_CRT_TYPES};" MATCHES ";${MSVC_CRT_TYPE};")
|
||||
MESSAGE(FATAL_ERROR "Invalid value ${MSVC_CRT_TYPE} for MSVC_CRT_TYPE, choose one of /MT,/MTd,/MD,/MDd ")
|
||||
ENDIF()
|
||||
|
||||
# CMake version 3.15 and later uses CMAKE_MSVC_RUNTIME_LIBRARY
|
||||
# variable for our MSVC_CRT_TYPE.
|
||||
# Set CMAKE_MSVC_RUNTIME_LIBRARY and pass to external projects
|
||||
# it is important to keep the same CRT type when linking
|
||||
#
|
||||
# Translation rules MSVC_CRT_TYPE -> CMAKE_MSVC_RUNTIME_LIBRARY
|
||||
# /MT -> MultiThreaded
|
||||
# /MTd -> MultiThreadedDebug
|
||||
# /MD -> MultiThreadedDLL
|
||||
# /MDd -> MultiThreadedDebugDLL
|
||||
if(CLANG_VERSION_OUTPUT MATCHES "x86_64")
|
||||
set(ARCH_SUFFIX "x86_64")
|
||||
elseif(CLANG_VERSION_OUTPUT MATCHES "i686|i386")
|
||||
set(ARCH_SUFFIX "i386")
|
||||
elseif(CLANG_VERSION_OUTPUT MATCHES "aarch64")
|
||||
set(ARCH_SUFFIX "aarch64")
|
||||
else()
|
||||
message(FATAL_ERROR "unknown arch")
|
||||
endif()
|
||||
|
||||
SET(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded)
|
||||
IF(MSVC_CRT_TYPE MATCHES "d$")
|
||||
STRING(APPEND CMAKE_MSVC_RUNTIME_LIBRARY Debug)
|
||||
ENDIF()
|
||||
IF(MSVC_CRT_TYPE MATCHES "D")
|
||||
STRING(APPEND CMAKE_MSVC_RUNTIME_LIBRARY DLL)
|
||||
ENDIF()
|
||||
string(REGEX MATCH "^[0-9]+" CLANG_MAJOR_VERSION "${CMAKE_C_COMPILER_VERSION}")
|
||||
set(CLANG_VERSION_DIR "${LLVM_ROOT}/lib/clang/${CLANG_MAJOR_VERSION}")
|
||||
|
||||
IF(MSVC_CRT_TYPE MATCHES "/MD")
|
||||
# Dynamic runtime (DLLs), need to install CRT libraries.
|
||||
SET(CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT VCCRT)
|
||||
SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS TRUE)
|
||||
IF(MSVC_CRT_TYPE STREQUAL "/MDd")
|
||||
SET (CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE)
|
||||
ENDIF()
|
||||
INCLUDE(InstallRequiredSystemLibraries)
|
||||
ENDIF()
|
||||
|
||||
IF(WITH_ASAN AND (NOT CLANG_CL))
|
||||
SET(DYNAMIC_UCRT_LINK_DEFAULT OFF)
|
||||
ELSE()
|
||||
SET(DYNAMIC_UCRT_LINK_DEFAULT ON)
|
||||
ENDIF()
|
||||
|
||||
OPTION(DYNAMIC_UCRT_LINK "Link Universal CRT dynamically, if MSVC_CRT_TYPE=/MT" ${DYNAMIC_UCRT_LINK_DEFAULT})
|
||||
SET(DYNAMIC_UCRT_LINKER_OPTION " /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib")
|
||||
|
||||
# Enable debug info also in Release build,
|
||||
# and create PDB to be able to analyze crashes.
|
||||
FOREACH(type EXE SHARED MODULE)
|
||||
SET(CMAKE_${type}_LINKER_FLAGS_RELEASE
|
||||
"${CMAKE_${type}_LINKER_FLAGS_RELEASE} /debug")
|
||||
SET(CMAKE_${type}_LINKER_FLAGS_MINSIZEREL
|
||||
"${CMAKE_${type}_LINKER_FLAGS_MINSIZEREL} /debug")
|
||||
ENDFOREACH()
|
||||
|
||||
# Force runtime libraries
|
||||
# Compile with /Zi to get debugging information
|
||||
|
||||
FOREACH(lang C CXX)
|
||||
SET(CMAKE_${lang}_FLAGS_RELEASE "${CMAKE_${lang}_FLAGS_RELEASE} /Zi")
|
||||
ENDFOREACH()
|
||||
FOREACH(flag
|
||||
CMAKE_C_FLAGS CMAKE_CXX_FLAGS
|
||||
CMAKE_C_FLAGS_INIT CMAKE_CXX_FLAGS_INIT
|
||||
CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_DEBUG_INIT
|
||||
CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_DEBUG_INIT
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
)
|
||||
STRING(REGEX REPLACE "/M[TD][d]?" "${MSVC_CRT_TYPE}" "${flag}" "${${flag}}" )
|
||||
STRING(REPLACE "/ZI " "/Zi " "${flag}" "${${flag}}")
|
||||
IF((NOT "${${flag}}" MATCHES "/Zi") AND (NOT "${${flag}}" MATCHES "/Z7"))
|
||||
STRING(APPEND ${flag} " /Zi")
|
||||
ENDIF()
|
||||
# Remove inlining flags, added by CMake, if any.
|
||||
# Compiler default is fine.
|
||||
STRING(REGEX REPLACE "/Ob[0-3]" "" "${flag}" "${${flag}}" )
|
||||
ENDFOREACH()
|
||||
|
||||
# Allow to overwrite the inlining flag
|
||||
SET(MSVC_INLINE "" CACHE STRING
|
||||
"MSVC Inlining option, either empty, or one of /Ob0,/Ob1,/Ob2,/Ob3")
|
||||
IF(MSVC_INLINE MATCHES "/Ob[0-3]")
|
||||
ADD_COMPILE_OPTIONS(${MSVC_INLINE})
|
||||
ELSEIF(NOT(MSVC_INLINE STREQUAL ""))
|
||||
MESSAGE(FATAL_ERROR "Invalid option for MSVC_INLINE")
|
||||
ENDIF()
|
||||
|
||||
IF(WITH_ASAN OR WITH_UBSAN)
|
||||
# Workaround something Linux specific
|
||||
SET(SECURITY_HARDENED 0 CACHE INTERNAL "" FORCE)
|
||||
ENABLE_SANITIZERS()
|
||||
ENDIF()
|
||||
|
||||
IF(CLANG_CL)
|
||||
SET(CLANG_CL_FLAGS
|
||||
"-Wno-unknown-warning-option -Wno-unused-private-field \
|
||||
-Wno-unused-parameter -Wno-inconsistent-missing-override \
|
||||
-Wno-unused-command-line-argument -Wno-pointer-sign \
|
||||
-Wno-deprecated-register -Wno-missing-braces \
|
||||
-Wno-unused-function -Wno-unused-local-typedef -msse4.2 "
|
||||
)
|
||||
IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||
STRING(APPEND CLANG_CL_FLAGS "-mpclmul ")
|
||||
set(out)
|
||||
foreach(name clang_rt.asan_dynamic-${ARCH_SUFFIX}.lib
|
||||
clang_rt.asan_dynamic_runtime_thunk-${ARCH_SUFFIX}.lib)
|
||||
set(path "${CLANG_VERSION_DIR}/lib/windows/${name}")
|
||||
if(EXISTS "${path}")
|
||||
list(APPEND out ${path})
|
||||
else()
|
||||
message(FATAL_ERROR "expected library ${path} not found")
|
||||
ENDIF()
|
||||
STRING(APPEND CMAKE_C_FLAGS " ${CLANG_CL_FLAGS} ${MSVC_CRT_TYPE}")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS " ${CLANG_CL_FLAGS} ${MSVC_CRT_TYPE}")
|
||||
ENDIF()
|
||||
endforeach()
|
||||
set(${result_list} ${out} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
FOREACH(type EXE SHARED MODULE)
|
||||
STRING(REGEX REPLACE "/STACK:([^ ]+)" "" CMAKE_${type}_LINKER_FLAGS "${CMAKE_${type}_LINKER_FLAGS}")
|
||||
IF(WITH_ASAN)
|
||||
SET(build_types RELWITHDEBINFO DEBUG)
|
||||
ELSE()
|
||||
SET(build_types RELWITHDEBINFO)
|
||||
ENDIF()
|
||||
FOREACH(btype ${build_types})
|
||||
STRING(REGEX REPLACE "/INCREMENTAL:([^ ]+)" "/INCREMENTAL:NO" CMAKE_${type}_LINKER_FLAGS_${btype} "${CMAKE_${type}_LINKER_FLAGS_${btype}}")
|
||||
STRING(REGEX REPLACE "/INCREMENTAL$" "/INCREMENTAL:NO" CMAKE_${type}_LINKER_FLAGS_${btype} "${CMAKE_${type}_LINKER_FLAGS_${btype}}")
|
||||
ENDFOREACH()
|
||||
IF(NOT CLANG_CL)
|
||||
STRING(APPEND CMAKE_${type}_LINKER_FLAGS_RELWITHDEBINFO " /release /OPT:REF,ICF")
|
||||
ENDIF()
|
||||
IF(DYNAMIC_UCRT_LINK AND (MSVC_CRT_TYPE STREQUAL "/MT"))
|
||||
FOREACH(config RELEASE RELWITHDEBINFO DEBUG MINSIZEREL)
|
||||
STRING(APPEND CMAKE_${type}_LINKER_FLAGS_${config} ${DYNAMIC_UCRT_LINKER_OPTION})
|
||||
ENDFOREACH()
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
macro(enable_sanitizers)
|
||||
# Remove the runtime checks from the compiler flags
|
||||
# ASAN does the same thing, in many cases better
|
||||
foreach(lang C CXX)
|
||||
foreach(suffix "_DEBUG" "_DEBUG_INIT")
|
||||
string(REGEX REPLACE "/RTC[1su]" "" CMAKE_${lang}_FLAGS${suffix} "${CMAKE_${lang}_FLAGS${suffix}}")
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
if(WITH_ASAN)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/fsanitize=address>)
|
||||
endif()
|
||||
if(WITH_UBSAN)
|
||||
include(CheckCCompilerFlag)
|
||||
check_c_compiler_flag(/fsanitize=undefined HAVE_fsanitize_undefined)
|
||||
if (HAVE_fsanitize_undefined)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/fsanitize=undefined>)
|
||||
else()
|
||||
message(FATAL_ERROR "UBSAN not supported by this compiler yet")
|
||||
endif()
|
||||
endif()
|
||||
if(CLANG_CL)
|
||||
find_asan_runtime(asan_libs)
|
||||
foreach(lib ${asan_libs})
|
||||
link_libraries(${lib})
|
||||
string(APPEND CMAKE_C_STANDARD_LIBRARIES " \"${lib}\"")
|
||||
string(APPEND CMAKE_CXX_STANDARD_LIBRARIES " \"${lib}\"")
|
||||
endforeach()
|
||||
else()
|
||||
add_link_options(/INCREMENTAL:NO)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
|
||||
if(MSVC)
|
||||
# Disable mingw based pkg-config found in Strawberry perl
|
||||
set(PKG_CONFIG_EXECUTABLE 0 CACHE INTERNAL "")
|
||||
|
||||
if(NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDLL)
|
||||
endif()
|
||||
|
||||
if(CMAKE_MSVC_RUNTIME_LIBRARY MATCHES "DLL")
|
||||
# Dynamic runtime (DLLs), need to install CRT libraries.
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT VCCRT)
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS TRUE)
|
||||
if(CMAKE_MSVC_RUNTIME_LIBRARY STREQUAL "MultiThreadedDebugDLL")
|
||||
set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE)
|
||||
endif()
|
||||
include(InstallRequiredSystemLibraries)
|
||||
endif()
|
||||
|
||||
# Compile with /Zi to get debugging information
|
||||
if (NOT DEFINED CMAKE_MSVC_DEBUG_INFORMATION_FORMAT)
|
||||
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "ProgramDatabase")
|
||||
add_link_options(/DEBUG) # Ensure debugging info at link time
|
||||
endif()
|
||||
|
||||
if(WITH_ASAN OR WITH_UBSAN)
|
||||
# Workaround something Linux specific
|
||||
set(SECURITY_HARDENED 0 CACHE INTERNAL "" FORCE)
|
||||
enable_sanitizers()
|
||||
endif()
|
||||
|
||||
add_compile_definitions(
|
||||
_CRT_SECURE_NO_DEPRECATE
|
||||
_CRT_NONSTDC_NO_WARNINGS
|
||||
_WIN32_WINNT=0x0A00
|
||||
# We do not want the windows.h , or winsvc.h macros min/max
|
||||
NOMINMAX NOSERVICE
|
||||
# Speed up build process excluding unused header files
|
||||
WIN32_LEAN_AND_MEAN
|
||||
)
|
||||
if(CLANG_CL)
|
||||
add_compile_options(
|
||||
-Wno-unknown-warning-option
|
||||
-Wno-unused-private-field
|
||||
-Wno-unused-parameter
|
||||
-Wno-inconsistent-missing-override
|
||||
-Wno-unused-command-line-argument
|
||||
-Wno-pointer-sign
|
||||
-Wno-deprecated-register
|
||||
-Wno-missing-braces
|
||||
-Wno-unused-function
|
||||
-Wno-unused-local-typedef
|
||||
-Wno-microsoft-static-assert
|
||||
-Wno-c++17-extensions
|
||||
-msse4.2
|
||||
)
|
||||
if((CMAKE_SIZEOF_VOID_P MATCHES 8) AND MSVC_INTEL)
|
||||
add_compile_options(-mpclmul)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# Mark 32 bit executables large address aware so they can
|
||||
# use > 2GB address space
|
||||
IF(CMAKE_SIZEOF_VOID_P MATCHES 4)
|
||||
STRING(APPEND CMAKE_EXE_LINKER_FLAGS " /LARGEADDRESSAWARE")
|
||||
ENDIF()
|
||||
|
||||
# Speed up multiprocessor build
|
||||
IF (NOT CLANG_CL)
|
||||
STRING(APPEND CMAKE_C_FLAGS " /MP")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS " /MP")
|
||||
STRING(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO " /Gw")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " /Gw")
|
||||
ENDIF()
|
||||
|
||||
#TODO: update the code and remove the disabled warnings
|
||||
STRING(APPEND CMAKE_C_FLAGS " /we4700 /we4311 /we4477 /we4302 /we4090")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS " /we4099 /we4700 /we4311 /we4477 /we4302 /we4090")
|
||||
IF(MSVC_VERSION GREATER 1910 AND NOT CLANG_CL)
|
||||
STRING(APPEND CMAKE_CXX_FLAGS " /permissive-")
|
||||
STRING(APPEND CMAKE_C_FLAGS " /diagnostics:caret")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS " /diagnostics:caret")
|
||||
ENDIF()
|
||||
ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_WARNINGS)
|
||||
IF(MYSQL_MAINTAINER_MODE MATCHES "ERR")
|
||||
STRING(APPEND CMAKE_C_FLAGS " /WX")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS " /WX")
|
||||
FOREACH(type EXE SHARED MODULE)
|
||||
FOREACH(cfg RELEASE DEBUG RELWITHDEBINFO)
|
||||
SET(CMAKE_${type}_LINKER_FLAGS_${cfg} "${CMAKE_${type}_LINKER_FLAGS_${cfg}} /WX")
|
||||
ENDFOREACH()
|
||||
ENDFOREACH()
|
||||
ENDIF()
|
||||
if(CMAKE_SIZEOF_VOID_P MATCHES 4)
|
||||
add_link_options(/LARGEADDRESSAWARE)
|
||||
endif()
|
||||
|
||||
IF(FAST_BUILD)
|
||||
STRING (REGEX REPLACE "/RTC(su|[1su])" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
ELSEIF (NOT CLANG_CL)
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELEASE " /d2OptimizeHugeFunctions")
|
||||
STRING(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO " /d2OptimizeHugeFunctions")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
# RelWithDebInfo is deoptimized wrt inlining.
|
||||
# Fix it to default
|
||||
foreach(lang C CXX)
|
||||
foreach(suffix "_RELWITHDEBINFO" "_RELWITHDEBINFO_INIT")
|
||||
string(REGEX REPLACE "/Ob[0-1]" "" CMAKE_${lang}_FLAGS${suffix} "${CMAKE_${lang}_FLAGS${suffix}}")
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
# Always link with socket/synchronization libraries
|
||||
STRING(APPEND CMAKE_C_STANDARD_LIBRARIES " ws2_32.lib synchronization.lib")
|
||||
STRING(APPEND CMAKE_CXX_STANDARD_LIBRARIES " ws2_32.lib synchronization.lib")
|
||||
if(NOT CLANG_CL)
|
||||
add_link_options("$<$<CONFIG:Release,RelWithDebInfo>:/INCREMENTAL:NO;/RELEASE;/OPT:REF,ICF>")
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:$<$<CONFIG:Release,RelWithDebInfo>:/Gw>>)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/MP>)
|
||||
add_compile_options("$<$<COMPILE_LANGUAGE:C,CXX>:/we4099;/we4700;/we4311;/we4477;/we4302;/we4090>")
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:/permissive->)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/diagnostics:caret>)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:/utf-8>)
|
||||
if(NOT FAST_BUILD)
|
||||
add_compile_options($<$<CONFIG:Release,RelWithDebInfo>:$<$<COMPILE_LANGUAGE:C,CXX>:/d2OptimizeHugeFunctions>>)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# System checks
|
||||
SET(SIGNAL_WITH_VIO_CLOSE 1) # Something that runtime team needs
|
||||
if(MYSQL_MAINTAINER_MODE MATCHES "ERR")
|
||||
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
|
||||
add_link_options(/WX)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# IPv6 constants appeared in Vista SDK first. We need to define them in any case if they are
|
||||
# not in headers, to handle dual mode sockets correctly.
|
||||
CHECK_SYMBOL_EXISTS(IPPROTO_IPV6 "winsock2.h" HAVE_IPPROTO_IPV6)
|
||||
IF(NOT HAVE_IPPROTO_IPV6)
|
||||
SET(HAVE_IPPROTO_IPV6 41)
|
||||
ENDIF()
|
||||
CHECK_SYMBOL_EXISTS(IPV6_V6ONLY "winsock2.h;ws2ipdef.h" HAVE_IPV6_V6ONLY)
|
||||
IF(NOT HAVE_IPV6_V6ONLY)
|
||||
SET(IPV6_V6ONLY 27)
|
||||
ENDIF()
|
||||
# avoid running system checks by using pre-cached check results
|
||||
# system checks are expensive on VS generator
|
||||
get_filename_component(_SCRIPT_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
|
||||
include(${_SCRIPT_DIR}/WindowsCache.cmake)
|
||||
|
||||
# Some standard functions exist there under different
|
||||
# names (e.g popen is _popen or strok_r is _strtok_s)
|
||||
# If a replacement function exists, HAVE_FUNCTION is
|
||||
# defined to 1. CMake variable <function_name> will also
|
||||
# be defined to the replacement name.
|
||||
# So for example, CHECK_FUNCTION_REPLACEMENT(popen _popen)
|
||||
# will define HAVE_POPEN to 1 and set variable named popen
|
||||
# to _popen. If the header template, one needs to have
|
||||
# cmakedefine popen @popen@ which will expand to
|
||||
# define popen _popen after CONFIGURE_FILE
|
||||
|
||||
MACRO(CHECK_FUNCTION_REPLACEMENT function replacement)
|
||||
STRING(TOUPPER ${function} function_upper)
|
||||
CHECK_FUNCTION_EXISTS(${function} HAVE_${function_upper})
|
||||
IF(NOT HAVE_${function_upper})
|
||||
CHECK_FUNCTION_EXISTS(${replacement} HAVE_${replacement})
|
||||
IF(HAVE_${replacement})
|
||||
SET(HAVE_${function_upper} 1 )
|
||||
SET(${function} ${replacement})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
MACRO(CHECK_SYMBOL_REPLACEMENT symbol replacement header)
|
||||
STRING(TOUPPER ${symbol} symbol_upper)
|
||||
CHECK_SYMBOL_EXISTS(${symbol} ${header} HAVE_${symbol_upper})
|
||||
IF(NOT HAVE_${symbol_upper})
|
||||
CHECK_SYMBOL_EXISTS(${replacement} ${header} HAVE_${replacement})
|
||||
IF(HAVE_${replacement})
|
||||
SET(HAVE_${symbol_upper} 1)
|
||||
SET(${symbol} ${replacement})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
CHECK_SYMBOL_REPLACEMENT(S_IROTH _S_IREAD sys/stat.h)
|
||||
CHECK_SYMBOL_REPLACEMENT(S_IFIFO _S_IFIFO sys/stat.h)
|
||||
CHECK_SYMBOL_REPLACEMENT(SIGQUIT SIGTERM signal.h)
|
||||
CHECK_SYMBOL_REPLACEMENT(SIGPIPE SIGINT signal.h)
|
||||
CHECK_FUNCTION_REPLACEMENT(popen _popen)
|
||||
CHECK_FUNCTION_REPLACEMENT(pclose _pclose)
|
||||
CHECK_FUNCTION_REPLACEMENT(access _access)
|
||||
CHECK_FUNCTION_REPLACEMENT(strcasecmp _stricmp)
|
||||
CHECK_FUNCTION_REPLACEMENT(strncasecmp _strnicmp)
|
||||
CHECK_SYMBOL_REPLACEMENT(snprintf _snprintf stdio.h)
|
||||
CHECK_FUNCTION_REPLACEMENT(strtok_r strtok_s)
|
||||
CHECK_FUNCTION_REPLACEMENT(strtoll _strtoi64)
|
||||
CHECK_FUNCTION_REPLACEMENT(strtoull _strtoui64)
|
||||
CHECK_FUNCTION_REPLACEMENT(vsnprintf _vsnprintf)
|
||||
CHECK_TYPE_SIZE(ssize_t SIZE_OF_SSIZE_T)
|
||||
IF(NOT HAVE_SIZE_OF_SSIZE_T)
|
||||
SET(ssize_t SSIZE_T)
|
||||
ENDIF()
|
||||
|
||||
SET(FN_NO_CASE_SENSE 1)
|
||||
SET(USE_SYMDIR 1)
|
||||
|
||||
# Force static C runtime for targets in current directory
|
||||
# (useful to get rid of MFC dll's dependency, or in installer)
|
||||
MACRO(FORCE_STATIC_CRT)
|
||||
FOREACH(flag
|
||||
CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_DEBUG_INIT
|
||||
CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_DEBUG_INIT
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
)
|
||||
STRING(REGEX REPLACE "/MD[d]?" "/MT" "${flag}" "${${flag}}" )
|
||||
STRING(REPLACE "${DYNAMIC_UCRT_LINKER_OPTION}" "" "${flag}" "${${flag}}")
|
||||
ENDFOREACH()
|
||||
ENDMACRO()
|
||||
# this is out of place, not really a system check
|
||||
set(FN_NO_CASE_SENSE 1)
|
||||
set(USE_SYMDIR 1)
|
||||
|
||||
@@ -44,7 +44,6 @@ SET(HAVE_EXECINFO_H CACHE INTERNAL "")
|
||||
SET(HAVE_FCHMOD CACHE INTERNAL "")
|
||||
SET(HAVE_FCNTL CACHE INTERNAL "")
|
||||
SET(HAVE_FCNTL_H 1 CACHE INTERNAL "")
|
||||
SET(HAVE_FCNTL_DIRECT 0 CACHE INTERNAL "")
|
||||
SET(HAVE_FCNTL_NONBLOCK CACHE INTERNAL "")
|
||||
SET(HAVE_FDATASYNC CACHE INTERNAL "")
|
||||
SET(HAVE_DECL_FDATASYNC CACHE INTERNAL "")
|
||||
@@ -62,7 +61,6 @@ SET(HAVE_GETIFADDRS CACHE INTERNAL "")
|
||||
SET(HAVE_GETCWD 1 CACHE INTERNAL "")
|
||||
SET(HAVE_GETHOSTBYADDR_R CACHE INTERNAL "")
|
||||
SET(HAVE_GETHRTIME CACHE INTERNAL "")
|
||||
SET(HAVE_GETPAGESIZE CACHE INTERNAL "")
|
||||
SET(HAVE_GETPASS CACHE INTERNAL "")
|
||||
SET(HAVE_GETMNTENT CACHE INTERNAL "")
|
||||
SET(HAVE_GETMNTENT_IN_SYS_MNTAB CACHE INTERNAL "")
|
||||
@@ -205,10 +203,10 @@ SET(HAVE_STRING_H 1 CACHE INTERNAL "")
|
||||
SET(HAVE_STRNDUP CACHE INTERNAL "")
|
||||
SET(HAVE_STRNLEN 1 CACHE INTERNAL "")
|
||||
SET(HAVE_STRPBRK 1 CACHE INTERNAL "")
|
||||
SET(HAVE_STRTOK_R CACHE INTERNAL "")
|
||||
SET(HAVE_STRTOLL CACHE INTERNAL "")
|
||||
SET(HAVE_STRTOK_R 1 CACHE INTERNAL "")
|
||||
SET(HAVE_STRTOLL 1 CACHE INTERNAL "")
|
||||
SET(HAVE_STRTOUL 1 CACHE INTERNAL "")
|
||||
SET(HAVE_STRTOULL CACHE INTERNAL "")
|
||||
SET(HAVE_STRTOULL 1 CACHE INTERNAL "")
|
||||
SET(HAVE_SYNCH_H CACHE INTERNAL "")
|
||||
SET(HAVE_SYSENT_H CACHE INTERNAL "")
|
||||
SET(HAVE_SYS_DIR_H CACHE INTERNAL "")
|
||||
@@ -296,6 +294,7 @@ SET(HAVE_EVENT_H CACHE INTERNAL "")
|
||||
SET(HAVE_LINUX_UNISTD_H CACHE INTERNAL "")
|
||||
SET(HAVE_SYS_UTSNAME_H CACHE INTERNAL "")
|
||||
SET(HAVE_PTHREAD_ATTR_GETGUARDSIZE CACHE INTERNAL "")
|
||||
SET(HAVE_PTHREAD_GETATTR_NP CACHE INTERNAL "")
|
||||
SET(HAVE_SOCKPEERCRED CACHE INTERNAL "")
|
||||
SET(HAVE_ABI_CXA_DEMANGLE CACHE INTERNAL "")
|
||||
SET(HAVE_GCC_C11_ATOMICS CACHE INTERNAL "")
|
||||
@@ -350,4 +349,17 @@ SET(HAVE_SYS_STATVFS_H CACHE INTERNAL "")
|
||||
SET(HAVE_GETPAGESIZES CACHE INTERNAL "")
|
||||
SET(HAVE_LINUX_LIMITS_H CACHE INTERNAL "")
|
||||
SET(HAVE_FILE_UCONTEXT_H CACHE INTERNAL "")
|
||||
SET(have_C__Werror CACHE INTERNAL "")
|
||||
SET(HAVE_SIGNAL_H 1 CACHE INTERNAL "")
|
||||
SET(HAVE_UINT CACHE INTERNAL "")
|
||||
SET(HAVE_SOCKET_LEN_T CACHE INTERNAL "")
|
||||
SET(HAVE_GETTHRID CACHE INTERNAL "")
|
||||
SET(HAVE_THREAD_LOCAL 1 CACHE INTERNAL "")
|
||||
SET(have_CXX__Wno_unused_but_set_variable CACHE INTERNAL "")
|
||||
SET(HAVE_UNISTD_H CACHE INTERNAL "")
|
||||
SET(HAVE_LINUX_UNISTD_H CACHE INTERNAL "")
|
||||
SET(OFF64_T CACHE INTERNAL "")
|
||||
SET(Z_HAVE_UNISTD_H CACHE INTERNAL "")
|
||||
SET(HAVE_OFF64_T CACHE FALSE INTERNAL "")
|
||||
SET(HAVE_AUXV_GETAUXVAL CACHE INTERNAL "")
|
||||
ENDIF(MSVC)
|
||||
|
||||
@@ -108,6 +108,17 @@ MACRO(MYSQL_ADD_PLUGIN)
|
||||
MESSAGE(FATAL_ERROR "Invalid value for PLUGIN_${plugin}")
|
||||
ENDIF()
|
||||
|
||||
# Validate that the requested build mode is compatible with what the
|
||||
# plugin actually supports. STATIC_ONLY plugins cannot be built as
|
||||
# dynamic modules, and MODULE_ONLY plugins cannot be linked statically.
|
||||
IF(PLUGIN_${plugin} STREQUAL "DYNAMIC" AND ARG_STATIC_ONLY)
|
||||
MESSAGE(FATAL_ERROR "Plugin ${plugin} is STATIC_ONLY and cannot be built"
|
||||
" with -DPLUGIN_${plugin}=DYNAMIC. Remove this option or use STATIC.")
|
||||
ELSEIF(PLUGIN_${plugin} STREQUAL "STATIC" AND ARG_MODULE_ONLY)
|
||||
MESSAGE(FATAL_ERROR "Plugin ${plugin} is MODULE_ONLY and cannot be built"
|
||||
" with -DPLUGIN_${plugin}=STATIC. Remove this option or use DYNAMIC.")
|
||||
ENDIF()
|
||||
|
||||
IF(ARG_STORAGE_ENGINE)
|
||||
SET(with_var "WITH_${plugin}_STORAGE_ENGINE" )
|
||||
ELSE()
|
||||
@@ -161,6 +172,9 @@ MACRO(MYSQL_ADD_PLUGIN)
|
||||
PROPERTIES COMPILE_DEFINITIONS "EMBEDDED_LIBRARY${version_string}")
|
||||
ENDIF()
|
||||
ADD_DEPENDENCIES(${target}_embedded GenError ${ARG_DEPENDS})
|
||||
IF(ARG_LINK_LIBRARIES)
|
||||
TARGET_LINK_LIBRARIES (${target}_embedded ${ARG_LINK_LIBRARIES})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
@@ -214,6 +228,11 @@ MACRO(MYSQL_ADD_PLUGIN)
|
||||
|
||||
TARGET_LINK_LIBRARIES (${target} mysqlservices ${ARG_LINK_LIBRARIES})
|
||||
|
||||
IF(WIN32)
|
||||
# A popular library, turns out many plugins need it for gethostname()
|
||||
TARGET_LINK_LIBRARIES (${target} ws2_32)
|
||||
ENDIF()
|
||||
|
||||
IF(CMAKE_SYSTEM_NAME MATCHES AIX)
|
||||
TARGET_LINK_OPTIONS(${target} PRIVATE "-Wl,-bE:${CMAKE_SOURCE_DIR}/libservices/mysqlservices_aix.def")
|
||||
ENDIF()
|
||||
@@ -320,11 +339,13 @@ MACRO(CONFIGURE_PLUGINS)
|
||||
|
||||
GET_CMAKE_PROPERTY(ALL_VARS VARIABLES)
|
||||
FOREACH (V ${ALL_VARS})
|
||||
IF (V MATCHES "^PLUGIN_" AND ${V} MATCHES "YES")
|
||||
STRING(SUBSTRING ${V} 7 -1 plugin)
|
||||
STRING(TOLOWER ${plugin} target)
|
||||
IF (NOT TARGET ${target})
|
||||
MESSAGE(FATAL_ERROR "Plugin ${plugin} cannot be built")
|
||||
IF (V MATCHES "^PLUGIN_")
|
||||
IF (${V} STREQUAL "YES")
|
||||
STRING(SUBSTRING ${V} 7 -1 plugin)
|
||||
STRING(TOLOWER ${plugin} target)
|
||||
IF (NOT TARGET ${target})
|
||||
MESSAGE(FATAL_ERROR "Plugin ${plugin} cannot be built")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
|
||||
@@ -19,4 +19,10 @@
|
||||
|
||||
</application>
|
||||
</compatibility>
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
|
||||
<heapType xmlns="http://schemas.microsoft.com/SMI/2020/WindowsSettings">SegmentHeap</heapType>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
</asmv1:assembly>
|
||||
|
||||
@@ -49,8 +49,6 @@ Then restart the build.
|
||||
SET(WSREP_VERSION "${WSREP_API_VERSION}.${WSREP_PATCH_VERSION}"
|
||||
CACHE INTERNAL "WSREP version")
|
||||
|
||||
SET(WSREP_PROC_INFO ${WITH_WSREP})
|
||||
|
||||
SET(WSREP_PATCH_VERSION "wsrep_${WSREP_VERSION}")
|
||||
if (NOT WITH_WSREP_ALL)
|
||||
SET(WSREP_LIB_WITH_UNIT_TESTS OFF CACHE BOOL
|
||||
|
||||
@@ -21,6 +21,11 @@ MACRO (MYSQL_USE_BUNDLED_ZLIB)
|
||||
SET(ZLIB_LIBRARY ${ZLIB_LIBRARIES})
|
||||
SET(ZLIB_INCLUDE_DIR ${ZLIB_INCLUDE_DIRS})
|
||||
SET(ZLIB_FOUND TRUE)
|
||||
IF(VCPKG_INSTALLED_DIR)
|
||||
# Avoid errors in vcpkg's FIND_PACKAGE
|
||||
# for packages dependend on zlib
|
||||
SET(CMAKE_DISABLE_FIND_PACKAGE_ZLIB 1)
|
||||
ENDIF()
|
||||
SET(WITH_ZLIB "bundled" CACHE STRING "Use bundled zlib")
|
||||
ADD_SUBDIRECTORY(zlib)
|
||||
ENDMACRO()
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
#cmakedefine HAVE_DLFCN_H 1
|
||||
#cmakedefine HAVE_EXECINFO_H 1
|
||||
#cmakedefine HAVE_FCNTL_H 1
|
||||
#cmakedefine HAVE_FCNTL_DIRECT 1
|
||||
#cmakedefine HAVE_FENV_H 1
|
||||
#cmakedefine HAVE_FLOAT_H 1
|
||||
#cmakedefine HAVE_FNMATCH_H 1
|
||||
@@ -152,7 +151,6 @@
|
||||
#cmakedefine HAVE_GETCWD 1
|
||||
#cmakedefine HAVE_GETHOSTBYADDR_R 1
|
||||
#cmakedefine HAVE_GETHRTIME 1
|
||||
#cmakedefine HAVE_GETPAGESIZE 1
|
||||
#cmakedefine HAVE_GETPAGESIZES 1
|
||||
#cmakedefine HAVE_GETPASS 1
|
||||
#cmakedefine HAVE_GETPASSPHRASE 1
|
||||
@@ -185,6 +183,7 @@
|
||||
#cmakedefine HAVE_MLOCKALL 1
|
||||
#cmakedefine HAVE_MMAP 1
|
||||
#cmakedefine HAVE_MMAP64 1
|
||||
#cmakedefine HAVE_MPROTECT 1
|
||||
#cmakedefine HAVE_PERROR 1
|
||||
#cmakedefine HAVE_POLL 1
|
||||
#cmakedefine HAVE_POSIX_FALLOCATE 1
|
||||
@@ -403,38 +402,27 @@
|
||||
#cmakedefine SIGNAL_WITH_VIO_CLOSE 1
|
||||
|
||||
/* Windows stuff, mostly functions, that have Posix analogs but named differently */
|
||||
#cmakedefine S_IROTH @S_IROTH@
|
||||
#cmakedefine S_IFIFO @S_IFIFO@
|
||||
#cmakedefine IPPROTO_IPV6 @IPPROTO_IPV6@
|
||||
#cmakedefine IPV6_V6ONLY @IPV6_V6ONLY@
|
||||
#cmakedefine sigset_t @sigset_t@
|
||||
#cmakedefine mode_t @mode_t@
|
||||
#cmakedefine SIGQUIT @SIGQUIT@
|
||||
#cmakedefine SIGPIPE @SIGPIPE@
|
||||
#cmakedefine popen @popen@
|
||||
#cmakedefine pclose @pclose@
|
||||
#cmakedefine ssize_t @ssize_t@
|
||||
#cmakedefine strcasecmp @strcasecmp@
|
||||
#cmakedefine strncasecmp @strncasecmp@
|
||||
#cmakedefine snprintf @snprintf@
|
||||
#cmakedefine strtok_r @strtok_r@
|
||||
#cmakedefine strtoll @strtoll@
|
||||
#cmakedefine strtoull @strtoull@
|
||||
#cmakedefine vsnprintf @vsnprintf@
|
||||
#if defined(_MSC_VER) && (_MSC_VER > 1800)
|
||||
#ifdef _WIN32
|
||||
#define S_IROTH _S_IREAD
|
||||
#define S_IFIFO _S_IFIFO
|
||||
#define SIGQUIT SIGTERM
|
||||
#define SIGPIPE SIGINT
|
||||
#define sigset_t int
|
||||
#define mode_t int
|
||||
#define popen _popen
|
||||
#define pclose _pclose
|
||||
#define ssize_t SSIZE_T
|
||||
#define strcasecmp _stricmp
|
||||
#define strncasecmp _strnicmp
|
||||
#define strtok_r strtok_s
|
||||
#define tzname _tzname
|
||||
#define P_tmpdir "C:\\TEMP"
|
||||
#endif
|
||||
#if defined(_MSC_VER) && (_MSC_VER > 1310)
|
||||
# define HAVE_SETENV
|
||||
#define setenv(a,b,c) _putenv_s(a,b)
|
||||
#endif
|
||||
#define PSAPI_VERSION 1 /* for GetProcessMemoryInfo() */
|
||||
|
||||
/* We don't want the min/max macros */
|
||||
#ifdef _WIN32
|
||||
#define HAVE_SETENV
|
||||
#define NOMINMAX 1
|
||||
#endif
|
||||
#define PSAPI_VERSION 2 /* for GetProcessMemoryInfo() */
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/*
|
||||
MySQL features
|
||||
@@ -556,7 +544,6 @@
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
#cmakedefine WSREP_INTERFACE_VERSION "@WSREP_INTERFACE_VERSION@"
|
||||
#cmakedefine WITH_WSREP 1
|
||||
#cmakedefine WSREP_PROC_INFO 1
|
||||
#endif
|
||||
|
||||
#if !defined(__STDC_FORMAT_MACROS)
|
||||
|
||||
@@ -368,6 +368,7 @@ CHECK_FUNCTION_EXISTS (mlock HAVE_MLOCK)
|
||||
CHECK_FUNCTION_EXISTS (mlockall HAVE_MLOCKALL)
|
||||
CHECK_FUNCTION_EXISTS (mmap HAVE_MMAP)
|
||||
CHECK_FUNCTION_EXISTS (mmap64 HAVE_MMAP64)
|
||||
CHECK_FUNCTION_EXISTS (mprotect HAVE_MPROTECT)
|
||||
CHECK_FUNCTION_EXISTS (perror HAVE_PERROR)
|
||||
CHECK_FUNCTION_EXISTS (poll HAVE_POLL)
|
||||
CHECK_FUNCTION_EXISTS (posix_fallocate HAVE_POSIX_FALLOCATE)
|
||||
@@ -463,7 +464,6 @@ CHECK_SYMBOL_EXISTS(madvise "sys/mman.h" HAVE_DECL_MADVISE)
|
||||
CHECK_SYMBOL_EXISTS(getpagesizes "sys/mman.h" HAVE_GETPAGESIZES)
|
||||
CHECK_SYMBOL_EXISTS(tzname "time.h" HAVE_TZNAME)
|
||||
CHECK_SYMBOL_EXISTS(lrand48 "stdlib.h" HAVE_LRAND48)
|
||||
CHECK_SYMBOL_EXISTS(getpagesize "unistd.h" HAVE_GETPAGESIZE)
|
||||
CHECK_SYMBOL_EXISTS(TIOCGWINSZ "sys/ioctl.h" GWINSZ_IN_SYS_IOCTL)
|
||||
CHECK_SYMBOL_EXISTS(FIONREAD "sys/ioctl.h" FIONREAD_IN_SYS_IOCTL)
|
||||
CHECK_SYMBOL_EXISTS(TIOCSTAT "sys/ioctl.h" TIOCSTAT_IN_SYS_IOCTL)
|
||||
@@ -701,7 +701,6 @@ CHECK_SYMBOL_EXISTS(O_NONBLOCK "unistd.h;fcntl.h" HAVE_FCNTL_NONBLOCK)
|
||||
IF(NOT HAVE_FCNTL_NONBLOCK)
|
||||
SET(NO_FCNTL_NONBLOCK 1)
|
||||
ENDIF()
|
||||
CHECK_SYMBOL_EXISTS(O_DIRECT "fcntl.h" HAVE_FCNTL_DIRECT)
|
||||
|
||||
#
|
||||
# Test for how the C compiler does inline, if at all
|
||||
|
||||
@@ -44,12 +44,10 @@ __DATA__
|
||||
% ./tests -#d
|
||||
func2: info: s=ok
|
||||
=> execute
|
||||
=> evaluate: ON
|
||||
=> evaluate_if: OFF
|
||||
main: explain: dbug explained: d
|
||||
func2: info: s=ok
|
||||
% ./tests d,ret3
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
#
|
||||
## Testing negative lists
|
||||
@@ -57,7 +55,6 @@ func2: info: s=ok
|
||||
% ./tests d:-d,ret3
|
||||
func2: info: s=ko
|
||||
=> execute
|
||||
=> evaluate: ON
|
||||
=> evaluate_if: OFF
|
||||
main: explain: dbug explained: d:-d,ret3
|
||||
func2: info: s=ko
|
||||
@@ -69,7 +66,6 @@ func2: info: s=ko
|
||||
| | | <func3
|
||||
| | <func2
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| >func2
|
||||
| | >func3
|
||||
@@ -85,7 +81,6 @@ func2: info: s=ko
|
||||
| | | info: s=ko
|
||||
| | <func2
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| >func2
|
||||
| | >func3
|
||||
@@ -99,19 +94,15 @@ func2: info: s=ko
|
||||
| | | >func3
|
||||
| | | <func3
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| | >func3
|
||||
| | <func3
|
||||
<main
|
||||
% ./tests t:d,info:-d,ret3:-f,func2 d,evaluate
|
||||
=> evaluate: ON
|
||||
=> evaluate_if: OFF
|
||||
% ./tests t:d,info:-d,ret3:-f,func2 d,evaluate_if
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: ON
|
||||
% ./tests t:d:-d,ret3:-f,func2 d,evaluate_if
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: ON
|
||||
% ./tests t:d:-d,ret3:-f,func2
|
||||
>main
|
||||
@@ -120,7 +111,6 @@ func2: info: s=ko
|
||||
| | | <func3
|
||||
| <func1
|
||||
=> execute
|
||||
=> evaluate: ON
|
||||
=> evaluate_if: OFF
|
||||
| explain: dbug explained: d:-d,ret3:f:-f,func2:t
|
||||
| | >func3
|
||||
@@ -135,7 +125,6 @@ func2: info: s=ko
|
||||
| | | >func3
|
||||
| | | <func3
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: ON
|
||||
| | >func3
|
||||
| | <func3
|
||||
@@ -152,7 +141,6 @@ func2: info: s=ko
|
||||
| dump: Memory: 0x#### Bytes: (27)
|
||||
64 2C 64 75 6D 70 3A 2D 64 2C 72 65 74 33 3A 66 3A 2D 66 2C 66 75 6E 63 32 3A
|
||||
74
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| | >func3
|
||||
| | <func3
|
||||
@@ -166,7 +154,6 @@ func2: info: s=ko
|
||||
| dump: Memory: 0x#### Bytes: (27)
|
||||
64 2C 64 75 6D 70 3A 2D 64 2C 72 65 74 33 3A 66 3A 2D 66 2C 66 75 6E 63 32 3A
|
||||
74
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| | >func3
|
||||
| | <func3
|
||||
@@ -180,7 +167,6 @@ func2: info: s=ko
|
||||
| dump: Memory: 0x#### Bytes: (27)
|
||||
64 2C 64 75 6D 70 3A 2D 64 2C 72 65 74 33 3A 66 3A 2D 66 2C 66 75 6E 63 32 3A
|
||||
74
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| | >func3
|
||||
| | <func3
|
||||
@@ -194,7 +180,6 @@ func2: info: s=ko
|
||||
| dump: Memory: 0x#### Bytes: (35)
|
||||
64 2C 64 75 6D 70 2C 65 78 70 6C 61 69 6E 3A 2D 64 2C 72 65 74 33 3A 66 3A 2D
|
||||
66 2C 66 75 6E 63 32 3A 74
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| explain: dbug explained: d,dump,explain:-d,ret3:f:-f,func2:t
|
||||
| | >func3
|
||||
@@ -209,7 +194,6 @@ dbug-tests: | <func1
|
||||
dbug-tests: | dump: Memory: 0x#### Bytes: (37)
|
||||
64 2C 64 75 6D 70 2C 65 78 70 6C 61 69 6E 3A 2D 64 2C 72 65 74 33 3A 66 3A 2D
|
||||
66 2C 66 75 6E 63 32 3A 50 3A 74
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
dbug-tests: | explain: dbug explained: d,dump,explain:-d,ret3:f:-f,func2:P:t
|
||||
dbug-tests: | | >func3
|
||||
@@ -224,7 +208,6 @@ dbug-tests: tests.c: | <func1
|
||||
dbug-tests: tests.c: | dump: Memory: 0x#### Bytes: (39)
|
||||
64 2C 64 75 6D 70 2C 65 78 70 6C 61 69 6E 3A 2D 64 2C 72 65 74 33 3A 66 3A 2D
|
||||
66 2C 66 75 6E 63 32 3A 46 3A 50 3A 74
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
dbug-tests: tests.c: | explain: dbug explained: d,dump,explain:-d,ret3:f:-f,func2:F:P:t
|
||||
dbug-tests: tests.c: | | >func3
|
||||
@@ -240,7 +223,6 @@ dbug-tests: tests.c: <main
|
||||
| | | <func3
|
||||
| <func1
|
||||
=> execute
|
||||
=> evaluate: ON
|
||||
=> evaluate_if: OFF
|
||||
| explain: dbug explained: d:-d,ret3:f:-f,func2:t
|
||||
| | >func3
|
||||
@@ -256,7 +238,6 @@ dbug-tests: tests.c: <main
|
||||
| | <func2
|
||||
| <func1
|
||||
=> execute
|
||||
=> evaluate: ON
|
||||
=> evaluate_if: OFF
|
||||
| explain: dbug explained: d:-d,ret3:t
|
||||
| >func2
|
||||
@@ -267,7 +248,6 @@ dbug-tests: tests.c: <main
|
||||
<main
|
||||
% ./tests d,info:-d,ret3:d,push
|
||||
func2: info: s=ko
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| >func2
|
||||
| | >func3
|
||||
@@ -277,7 +257,6 @@ func2: info: s=ko
|
||||
<main
|
||||
% ./tests d,info:-d,ret3:d,push,explain
|
||||
func2: info: s=ko
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| explain: dbug explained: d,info,push,explain:-d,ret3:t
|
||||
| >func2
|
||||
@@ -288,13 +267,11 @@ func2: info: s=ko
|
||||
<main
|
||||
% ./tests d,info:-d,ret3:d,explain
|
||||
func2: info: s=ko
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
main: explain: dbug explained: d,info,explain:-d,ret3
|
||||
func2: info: s=ko
|
||||
% ./tests d,info:-d,ret3:d,explain,pop
|
||||
func2: info: s=ko
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
% ./tests d,info:-d,ret3:d,explain t:d,pop
|
||||
>main
|
||||
@@ -304,7 +281,6 @@ func2: info: s=ko
|
||||
| | | <func3
|
||||
| | <func2
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
main: explain: dbug explained: d,info,explain:-d,ret3
|
||||
func2: info: s=ko
|
||||
@@ -317,13 +293,11 @@ func2: info: s=ko
|
||||
| | | info: s=ko
|
||||
| | <func2
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
main: explain: dbug explained: d,info,explain,pop:-d,ret3
|
||||
func2: info: s=ko
|
||||
% ./tests d,info:-d,ret3:d,explain,set
|
||||
func2: info: s=ko
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
tests.c: main: explain: dbug explained: d,info,explain,set:-d,ret3:F
|
||||
tests.c: func2: info: s=ko
|
||||
@@ -336,7 +310,6 @@ func2: info: s=ko
|
||||
| | | info: s=ko
|
||||
| | <func2
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
tests.c: | explain: dbug explained: d,info,explain,set:-d,ret3:F:t
|
||||
tests.c: | >func2
|
||||
@@ -354,7 +327,6 @@ func2: info: s=ko
|
||||
| | | info: s=ko
|
||||
| | <func2
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
tests.c: | explain: dbug explained: d,info,explain,set:-d,ret3:F:t
|
||||
tests.c: | >func2
|
||||
@@ -365,7 +337,6 @@ func2: info: s=ko
|
||||
tests.c: <main
|
||||
% ./tests t d,info:-d,ret3:d,explain,set,pop
|
||||
func2: info: s=ko
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| >func2
|
||||
| | >func3
|
||||
@@ -375,7 +346,6 @@ func2: info: s=ko
|
||||
% ./tests t:f,func2
|
||||
| | >func2
|
||||
| | <func2
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| >func2
|
||||
| <func2
|
||||
@@ -387,7 +357,6 @@ func2: info: s=ko
|
||||
| >func1
|
||||
| <func1
|
||||
=> execute
|
||||
=> evaluate: ON
|
||||
=> evaluate_if: OFF
|
||||
| explain: dbug explained: d:f:-f,func2/:t
|
||||
<main
|
||||
@@ -399,7 +368,6 @@ func2: info: s=ko
|
||||
| | | info: s=ok
|
||||
| | <func2
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
% ./tests t:f,main/:d,pop
|
||||
>main
|
||||
@@ -409,10 +377,8 @@ func2: info: s=ko
|
||||
| | | <func3
|
||||
| | <func2
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
% ./tests f,main/:d,push
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| >func2
|
||||
| | >func3
|
||||
@@ -431,7 +397,6 @@ func2: info: s=ko
|
||||
| | | <func3
|
||||
| | <func2
|
||||
=> push1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| | >func3
|
||||
| | <func3
|
||||
@@ -440,7 +405,6 @@ func2: info: s=ko
|
||||
>main
|
||||
=> push1
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| >func2
|
||||
| | >func3
|
||||
@@ -453,7 +417,6 @@ func2: info: s=ko
|
||||
| | | <func3
|
||||
=> push1
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| >func2
|
||||
| | >func3
|
||||
@@ -469,7 +432,6 @@ func2: info: s=ko
|
||||
| | | <func3
|
||||
| | <func2
|
||||
=> push1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
# change the defaults
|
||||
% ./tests t:f,func3 --push1=t
|
||||
@@ -477,7 +439,6 @@ func2: info: s=ko
|
||||
| | | <func3
|
||||
=> push1
|
||||
| <func1
|
||||
=> evaluate: OFF
|
||||
=> evaluate_if: OFF
|
||||
| >func2
|
||||
| | >func3
|
||||
@@ -487,11 +448,9 @@ func2: info: s=ko
|
||||
# repeated keyword
|
||||
% ./tests d:-d,info,info
|
||||
=> execute
|
||||
=> evaluate: ON
|
||||
=> evaluate_if: OFF
|
||||
main: explain: dbug explained: d:-d,info
|
||||
% ./tests d:-d,info/,info
|
||||
=> execute
|
||||
=> evaluate: ON
|
||||
=> evaluate_if: OFF
|
||||
main: explain: dbug explained: d:-d,info/
|
||||
|
||||
@@ -16,7 +16,8 @@ char *push1=0;
|
||||
const char *func3()
|
||||
{
|
||||
DBUG_ENTER("func3");
|
||||
DBUG_RETURN(DBUG_EVALUATE("ret3", "ok", "ko"));
|
||||
DBUG_EXECUTE("ret3", DBUG_RETURN("ok"););
|
||||
DBUG_RETURN("ko");
|
||||
}
|
||||
|
||||
void func2()
|
||||
@@ -72,10 +73,8 @@ int main (int argc __attribute__((unused)),
|
||||
DBUG_EXECUTE_IF("push", DBUG_PUSH("+t"); );
|
||||
DBUG_EXECUTE("execute", fprintf(DBUG_FILE, "=> execute\n"); );
|
||||
DBUG_EXECUTE_IF("set", DBUG_SET("+F"); );
|
||||
fprintf(DBUG_FILE, "=> evaluate: %s\n",
|
||||
DBUG_EVALUATE("evaluate", "ON", "OFF"));
|
||||
fprintf(DBUG_FILE, "=> evaluate_if: %s\n",
|
||||
DBUG_EVALUATE_IF("evaluate_if", "ON", "OFF"));
|
||||
(DBUG_IF("evaluate_if") ? "ON": "OFF"));
|
||||
DBUG_EXECUTE_IF("pop", DBUG_POP(); );
|
||||
{
|
||||
char s[1000] __attribute__((unused));
|
||||
|
||||
28
dbug/user.r
28
dbug/user.r
@@ -771,32 +771,20 @@ artificial delay checking for race conditions.
|
||||
.SP 1
|
||||
EX:\ \fCDBUG_EXECUTE_IF\ ("crashme",\ DBUG_ABORT()\ ());\fR
|
||||
.SP 1
|
||||
.LI DBUG_EVALUATE\
|
||||
The DBUG_EVALUATE macro is similar to DBUG_EXECUTE, but it can be used in
|
||||
the expression context. The first argument is the debug keyword that is used to
|
||||
choose whether the second (keyword is enabled) or the third (keyword is not
|
||||
enabled) argument is evaluated. When
|
||||
.I dbug
|
||||
is compiled off, the third argument is evaluated.
|
||||
.SP 1
|
||||
EX:\fC
|
||||
.br
|
||||
printf("Info-debug is %s",
|
||||
.br
|
||||
DBUG_EVALUATE\ ("info", "ON", "OFF"));\fR
|
||||
.SP 1
|
||||
.LI DBUG_EVALUATE_IF\
|
||||
Works like DBUG_EVALUATE macro, but the second argument is
|
||||
.B not
|
||||
evaluated, if the keyword is not explicitly listed in
|
||||
the 'd' flag. Like DBUG_EXECUTE_IF this could be used to conditionally execute
|
||||
.LI DBUG_IF\
|
||||
Returns
|
||||
.B 1
|
||||
if the keyword is explicitly listed in
|
||||
the 'd' flag. Otherwise returns
|
||||
.B 0
|
||||
Like DBUG_EXECUTE_IF this could be used to conditionally execute
|
||||
"dangerous" actions.
|
||||
.SP 1
|
||||
EX:\fC
|
||||
.br
|
||||
if (prepare_transaction () ||
|
||||
.br
|
||||
DBUG_EVALUATE ("crashme", (DBUG_ABORT(), 0), 0) ||
|
||||
(DBUG_IF("crashme") && (DBUG_ABORT(), 0)) ||
|
||||
.br
|
||||
commit_transaction () )\fR
|
||||
.SP 1
|
||||
|
||||
10
debian/additions/debian-start
vendored
10
debian/additions/debian-start
vendored
@@ -6,14 +6,19 @@
|
||||
# Changes to this file will be preserved when updating the Debian package.
|
||||
#
|
||||
|
||||
# shellcheck source=debian/additions/debian-start.inc.sh
|
||||
source /usr/share/mysql/debian-start.inc.sh
|
||||
|
||||
# Read default/mysql first and then default/mariadb just like the init.d file does
|
||||
if [ -f /etc/default/mysql ]; then
|
||||
if [ -f /etc/default/mysql ]
|
||||
then
|
||||
# shellcheck source=/dev/null
|
||||
. /etc/default/mysql
|
||||
fi
|
||||
|
||||
if [ -f /etc/default/mariadb ]; then
|
||||
if [ -f /etc/default/mariadb ]
|
||||
then
|
||||
# shellcheck source=/dev/null
|
||||
. /etc/default/mariadb
|
||||
fi
|
||||
|
||||
@@ -21,7 +26,6 @@ MARIADB="/usr/bin/mariadb --defaults-extra-file=/etc/mysql/debian.cnf"
|
||||
MYADMIN="/usr/bin/mariadb-admin --defaults-extra-file=/etc/mysql/debian.cnf"
|
||||
# Don't run full mariadb-upgrade on every server restart, use --version-check to do it only once
|
||||
MYUPGRADE="/usr/bin/mariadb-upgrade --defaults-extra-file=/etc/mysql/debian.cnf --version-check --silent"
|
||||
MYCHECK="/usr/bin/mariadb-check --defaults-extra-file=/etc/mysql/debian.cnf"
|
||||
|
||||
# The following commands should be run when the server is up but in background
|
||||
# where they do not block the server start and in one shell instance so that
|
||||
|
||||
15
debian/additions/debian-start.inc.sh
vendored
15
debian/additions/debian-start.inc.sh
vendored
@@ -10,13 +10,13 @@ function upgrade_system_tables_if_necessary() {
|
||||
set -e
|
||||
set -u
|
||||
|
||||
logger -p daemon.info -i -t"$0" "Upgrading MySQL tables if necessary."
|
||||
logger -p daemon.info -i -t"$0" "Upgrading MariaDB tables if necessary."
|
||||
|
||||
# Filter all "duplicate column", "duplicate key" and "unknown column"
|
||||
# errors as the script is designed to be idempotent.
|
||||
LC_ALL=C $MYUPGRADE \
|
||||
2>&1 \
|
||||
| egrep -v '^(1|@had|ERROR (1051|1054|1060|1061|1146|1347|1348))' \
|
||||
| grep -E -v '^(1|@had|ERROR (1051|1054|1060|1061|1146|1347|1348))' \
|
||||
| logger -p daemon.warn -i -t"$0"
|
||||
}
|
||||
|
||||
@@ -28,8 +28,15 @@ function check_root_accounts() {
|
||||
|
||||
logger -p daemon.info -i -t"$0" "Checking for insecure root accounts."
|
||||
|
||||
ret=$( echo "SELECT count(*) FROM mysql.user WHERE user='root' and password='' and plugin in ('', 'mysql_native_password', 'mysql_old_password');" | $MARIADB --skip-column-names )
|
||||
if [ "$ret" -ne "0" ]; then
|
||||
ret=$(echo "
|
||||
SELECT count(*) FROM mysql.global_priv
|
||||
WHERE user='root' AND
|
||||
JSON_VALUE(priv, '$.plugin') in ('mysql_native_password', 'mysql_old_password', 'parsec') AND
|
||||
JSON_VALUE(priv, '$.authentication_string') = '' AND
|
||||
JSON_VALUE(priv, '$.password_last_changed') != 0
|
||||
" | $MARIADB --skip-column-names)
|
||||
if [ "$ret" -ne "0" ]
|
||||
then
|
||||
logger -p daemon.warn -i -t"$0" "WARNING: mysql.user contains $ret root accounts without password!"
|
||||
fi
|
||||
}
|
||||
|
||||
2
debian/additions/mariadb.cnf
vendored
2
debian/additions/mariadb.cnf
vendored
@@ -13,7 +13,7 @@
|
||||
# Run program with --help to get a list of available options and with
|
||||
# --print-defaults to see which it would actually understand and use.
|
||||
#
|
||||
# If you are new to MariaDB, check out https://mariadb.com/kb/en/basic-mariadb-articles/
|
||||
# If you are new to MariaDB, check out https://mariadb.com/docs/server/server-usage/basics
|
||||
|
||||
#
|
||||
# This group is read both by the client and the server
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
# SyslogLevel = err
|
||||
# SyslogIdentifier = mysqld
|
||||
#
|
||||
# For more information, please read https://mariadb.com/kb/en/mariadb/systemd/
|
||||
# For more information, please read https://mariadb.com/docs/server/server-management/starting-and-stopping-mariadb/systemd
|
||||
|
||||
[mysqld_safe]
|
||||
# This will be passed to all mysql clients
|
||||
|
||||
25
debian/additions/mariadb.conf.d/50-server.cnf
vendored
25
debian/additions/mariadb.conf.d/50-server.cnf
vendored
@@ -44,6 +44,11 @@ bind-address = 127.0.0.1
|
||||
# * Logging and Replication
|
||||
#
|
||||
|
||||
# Note: The configured log file or its directory need to be created
|
||||
# and be writable by the mysql user, e.g.:
|
||||
# $ sudo mkdir -m 2750 /var/log/mysql
|
||||
# $ sudo chown mysql /var/log/mysql
|
||||
|
||||
# Both location gets rotated by the cronjob.
|
||||
# Be aware that this log type is a performance killer.
|
||||
# Recommend only changing this at runtime for short testing periods if needed!
|
||||
@@ -55,16 +60,18 @@ bind-address = 127.0.0.1
|
||||
# /etc/mysql/conf.d/mariadb.conf.d/50-mysqld_safe.cnf
|
||||
# Enable this if you want to have error logging into a separate file
|
||||
#log_error = /var/log/mysql/error.log
|
||||
|
||||
# Enable the slow query log to see queries with especially long duration
|
||||
#slow_query_log_file = /var/log/mysql/mariadb-slow.log
|
||||
#long_query_time = 10
|
||||
#log_slow_query_file = /var/log/mysql/mariadb-slow.log
|
||||
#slow_query_log = 1
|
||||
#log_slow_query_time = 10
|
||||
#log_slow_verbosity = query_plan,explain
|
||||
#log-queries-not-using-indexes
|
||||
#min_examined_row_limit = 1000
|
||||
#log_slow_min_examined_row_limit = 1000
|
||||
|
||||
# The following can be used as easy to replay backup logs or for replication.
|
||||
# note: if you are setting up a replication slave, see README.Debian about
|
||||
# other settings you may need to change.
|
||||
# note: if you are setting up a replication slave, see README.Debian about other
|
||||
# settings you may need to change.
|
||||
#server-id = 1
|
||||
#log_bin = /var/log/mysql/mysql-bin.log
|
||||
expire_logs_days = 10
|
||||
@@ -75,7 +82,7 @@ expire_logs_days = 10
|
||||
#
|
||||
|
||||
# For documentation, please read
|
||||
# https://mariadb.com/kb/en/securing-connections-for-client-and-server/
|
||||
# https://mariadb.com/docs/server/security/encryption/data-in-transit-encryption/securing-connections-for-client-and-server
|
||||
#ssl-ca = /etc/mysql/cacert.pem
|
||||
#ssl-cert = /etc/mysql/server-cert.pem
|
||||
#ssl-key = /etc/mysql/server-key.pem
|
||||
@@ -97,7 +104,7 @@ collation-server = utf8mb4_general_ci
|
||||
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
|
||||
# Read the manual for more InnoDB related options. There are many!
|
||||
# Most important is to give InnoDB 80 % of the system RAM for buffer use:
|
||||
# https://mariadb.com/kb/en/innodb-system-variables/#innodb_buffer_pool_size
|
||||
# https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-system-variables#innodb_buffer_pool_size
|
||||
#innodb_buffer_pool_size = 8G
|
||||
|
||||
# this is only for embedded server
|
||||
@@ -108,7 +115,7 @@ collation-server = utf8mb4_general_ci
|
||||
# you can put MariaDB-only options here
|
||||
[mariadb]
|
||||
|
||||
# This group is only read by MariaDB-10.6 servers.
|
||||
# This group is only read by MariaDB-10.11 servers.
|
||||
# If you use the same .cnf file for MariaDB of different versions,
|
||||
# use this group for options that older servers don't understand
|
||||
[mariadb-10.6]
|
||||
[mariadb-10.11]
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# * Galera-related settings
|
||||
#
|
||||
# See the examples of server wsrep.cnf files in /usr/share/mysql
|
||||
# and read more at https://mariadb.com/kb/en/galera-cluster/
|
||||
# and read more at https://mariadb.com/docs/galera-cluster
|
||||
|
||||
[galera]
|
||||
# Mandatory settings
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
'''apport package hook for mariadb-10.6
|
||||
'''apport package hook for mariadb
|
||||
|
||||
(c) 2009 Canonical Ltd.
|
||||
Author: Mathias Gug <mathias.gug@canonical.com>
|
||||
@@ -21,7 +21,7 @@ def _add_my_conf_files(report, filename):
|
||||
continue
|
||||
|
||||
def add_info(report):
|
||||
attach_conffiles(report, 'mariadb-server-10.6', conffiles=None)
|
||||
attach_conffiles(report, 'mariadb-server', conffiles=None)
|
||||
key = 'Logs' + path_to_key('/var/log/daemon.log')
|
||||
report[key] = ""
|
||||
for line in read_file('/var/log/daemon.log').split('\n'):
|
||||
87
debian/autobake-deb.sh
vendored
87
debian/autobake-deb.sh
vendored
@@ -28,21 +28,18 @@ then
|
||||
# On Gitlab the output log must stay under 4MB so make the
|
||||
# build less verbose
|
||||
sed '/Add support for verbose builds/,/^$/d' -i debian/rules
|
||||
elif [ -d storage/columnstore/columnstore/debian ]
|
||||
elif grep -q "$architecture" storage/columnstore/columnstore/debian/control
|
||||
then
|
||||
if [ "${MYSQL_VERSION_MAJOR:-not10}" != "10" ] || [ "$architecture" = amd64 ]
|
||||
then
|
||||
# ColumnStore is explicitly disabled in the native Debian build. Enable it
|
||||
# now when build is triggered by autobake-deb.sh (MariaDB.org) and when the
|
||||
# build is not running on Gitlab-CI.
|
||||
sed '/-DPLUGIN_COLUMNSTORE=NO/d' -i debian/rules
|
||||
# Take the files and part of control from MCS directory
|
||||
cp -v storage/columnstore/columnstore/debian/mariadb-plugin-columnstore.* debian/
|
||||
# idempotent, except for the blank line, but that can be tolerated.
|
||||
sed -e '/Package: mariadb-plugin-columnstore/,/^$/d' -i debian/control
|
||||
echo >> debian/control
|
||||
cat storage/columnstore/columnstore/debian/control >> debian/control
|
||||
fi
|
||||
# ColumnStore is explicitly disabled in the native Debian build. Enable it
|
||||
# now when build is triggered by autobake-deb.sh (MariaDB.org) and when the
|
||||
# build is not running on Gitlab-CI.
|
||||
sed '/-DPLUGIN_COLUMNSTORE=NO/d' -i debian/rules
|
||||
# Take the files and part of control from MCS directory
|
||||
cp -v storage/columnstore/columnstore/debian/mariadb-plugin-columnstore.* debian/
|
||||
# idempotent, except for the blank line, but that can be tolerated.
|
||||
sed -e '/Package: mariadb-plugin-columnstore/,/^$/d' -i debian/control
|
||||
echo >> debian/control
|
||||
sed "s/-10.6//" <storage/columnstore/columnstore/debian/control >> debian/control
|
||||
fi
|
||||
|
||||
# Look up distro-version specific stuff
|
||||
@@ -61,11 +58,31 @@ remove_rocksdb_tools()
|
||||
fi
|
||||
}
|
||||
|
||||
replace_uring_with_aio()
|
||||
add_lsb_base_depends()
|
||||
{
|
||||
sed 's/liburing-dev/libaio-dev/g' -i debian/control
|
||||
sed -e '/-DIGNORE_AIO_CHECK=ON/d' \
|
||||
-e '/-DWITH_URING=ON/d' -i debian/rules
|
||||
# Make sure one can run this multiple times remove
|
||||
# lines 'sysvinit-utils' and 'lsb-base'.
|
||||
sed -e '/sysvinit-utils/d' -e '/lsb-base/d' -i debian/control
|
||||
# Add back lsb-base before lsof
|
||||
sed -e 's#lsof #lsb-base (>= 3.0-10),\n lsof #' -i debian/control
|
||||
}
|
||||
|
||||
remove_uring()
|
||||
{
|
||||
sed -e '/liburing-dev/d' -i debian/control
|
||||
sed -e '/-DWITH_URING=ON/d' -i debian/rules
|
||||
}
|
||||
|
||||
disable_libfmt()
|
||||
{
|
||||
# 7.0+ required
|
||||
sed '/libfmt-dev/d' -i debian/control
|
||||
}
|
||||
|
||||
remove_package_notes()
|
||||
{
|
||||
# binutils >=2.39 + disto makefile /usr/share/debhelper/dh_package_notes/package-notes.mk
|
||||
sed -e '/package.notes/d' -i debian/rules debian/control
|
||||
}
|
||||
|
||||
# Parse release name and number from Linux standard base release
|
||||
@@ -97,25 +114,41 @@ case "${LSBNAME}"
|
||||
in
|
||||
# Debian
|
||||
"buster")
|
||||
replace_uring_with_aio
|
||||
disable_libfmt
|
||||
remove_uring
|
||||
;&
|
||||
"bullseye"|"bookworm")
|
||||
"bullseye")
|
||||
add_lsb_base_depends
|
||||
remove_package_notes
|
||||
;&
|
||||
"bookworm")
|
||||
# mariadb-plugin-rocksdb in control is 4 arches covered by the distro rocksdb-tools
|
||||
# so no removal is necessary.
|
||||
if [[ ! "$architecture" =~ amd64|arm64|armel|armhf|i386|mips64el|mipsel|ppc64el|s390x ]]
|
||||
then
|
||||
replace_uring_with_aio
|
||||
remove_uring
|
||||
fi
|
||||
;&
|
||||
"sid")
|
||||
"trixie"|"sid")
|
||||
# The default packaging should always target Debian Sid, so in this case
|
||||
# there is intentionally no customizations whatsoever.
|
||||
;;
|
||||
# Ubuntu
|
||||
"focal")
|
||||
replace_uring_with_aio
|
||||
disable_libfmt
|
||||
remove_uring
|
||||
;&
|
||||
"impish"|"jammy"|"kinetic")
|
||||
"jammy"|"kinetic")
|
||||
add_lsb_base_depends
|
||||
remove_package_notes
|
||||
;&
|
||||
"lunar"|"mantic")
|
||||
if [[ ! "$architecture" =~ amd64|arm64|armhf|ppc64el|s390x ]]
|
||||
then
|
||||
replace_uring_with_aio
|
||||
fi
|
||||
;&
|
||||
"noble")
|
||||
# mariadb-plugin-rocksdb s390x not supported by us (yet)
|
||||
# ubuntu doesn't support mips64el yet, so keep this just
|
||||
# in case something changes.
|
||||
@@ -123,10 +156,6 @@ in
|
||||
then
|
||||
remove_rocksdb_tools
|
||||
fi
|
||||
if [[ ! "$architecture" =~ amd64|arm64|armhf|ppc64el|s390x ]]
|
||||
then
|
||||
replace_uring_with_aio
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Error: Unknown release '$LSBNAME'" >&2
|
||||
@@ -161,7 +190,7 @@ fi
|
||||
|
||||
# Use eatmydata is available to build faster with less I/O, skipping fsync()
|
||||
# during the entire build process (safe because a build can always be restarted)
|
||||
if which eatmydata > /dev/null
|
||||
if command -v eatmydata > /dev/null
|
||||
then
|
||||
BUILDPACKAGE_DPKGCMD+=("eatmydata")
|
||||
fi
|
||||
|
||||
4
debian/changelog
vendored
4
debian/changelog
vendored
@@ -1,5 +1,5 @@
|
||||
mariadb-10.6 (1:10.6.0) unstable; urgency=medium
|
||||
mariadb (1:10.11.0) unstable; urgency=medium
|
||||
|
||||
* Initial Release
|
||||
|
||||
-- Otto Kekäläinen <otto@debian.org> Thu, 14 May 2020 18:00:57 +0300
|
||||
-- Vicențiu Ciorbaru <vicentiu@mariadb.org> Thu, 18 Jun 2021 16:08:00 +0300
|
||||
|
||||
2
debian/compat
vendored
2
debian/compat
vendored
@@ -1 +1 @@
|
||||
9
|
||||
11
|
||||
|
||||
308
debian/control
vendored
308
debian/control
vendored
@@ -1,12 +1,13 @@
|
||||
Source: mariadb-10.6
|
||||
Source: mariadb
|
||||
Section: database
|
||||
Priority: optional
|
||||
Maintainer: MariaDB Developers <developers@lists.mariadb.org>
|
||||
Build-Depends: bison,
|
||||
cmake,
|
||||
cracklib-runtime <!nocheck>,
|
||||
debhelper (>= 10),
|
||||
debhelper (>= 11),
|
||||
dh-exec,
|
||||
dh-package-notes,
|
||||
flex [amd64],
|
||||
gdb <!nocheck>,
|
||||
libaio-dev [linux-any],
|
||||
@@ -17,14 +18,18 @@ Build-Depends: bison,
|
||||
libboost-filesystem-dev [amd64],
|
||||
libboost-regex-dev [amd64],
|
||||
libboost-thread-dev [amd64],
|
||||
libbz2-dev,
|
||||
libcrack2-dev (>= 2.9.0),
|
||||
libcurl4-openssl-dev | libcurl4-dev,
|
||||
libedit-dev,
|
||||
libedit-dev:native,
|
||||
libfmt-dev (>= 7.0.0),
|
||||
libjemalloc-dev [linux-any],
|
||||
libjudy-dev,
|
||||
libkrb5-dev,
|
||||
liblz4-dev,
|
||||
liblzma-dev,
|
||||
liblzo2-dev,
|
||||
libncurses-dev,
|
||||
libnuma-dev [linux-any],
|
||||
libpam0g-dev,
|
||||
@@ -35,7 +40,7 @@ Build-Depends: bison,
|
||||
libsystemd-dev [linux-any],
|
||||
liburing-dev [linux-any],
|
||||
libxml2-dev,
|
||||
libzstd-dev,
|
||||
libzstd-dev (>= 1.1.3),
|
||||
lsb-release,
|
||||
perl:any,
|
||||
po-debconf,
|
||||
@@ -81,12 +86,12 @@ Description: MariaDB database development files
|
||||
|
||||
Package: libmariadb-dev-compat
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Section: libdevel
|
||||
Depends: libmariadb-dev (= ${binary:Version}),
|
||||
${misc:Depends}
|
||||
Conflicts: libmariadb-client-lgpl-dev,
|
||||
libmariadb-client-lgpl-dev-compat,
|
||||
libmariadbclient-dev (<< ${source:Version}),
|
||||
libmariadbclient-dev-compat,
|
||||
libmysqlclient-dev,
|
||||
libmysqlclient10-dev,
|
||||
@@ -101,6 +106,7 @@ Breaks: libmariadb-dev (<< ${source:Version})
|
||||
Replaces: libmariadb-client-lgpl-dev,
|
||||
libmariadb-client-lgpl-dev-compat,
|
||||
libmariadb-dev (<< ${source:Version}),
|
||||
libmariadbclient-dev (<< ${source:Version}),
|
||||
libmariadbclient-dev-compat,
|
||||
libmysqlclient-dev
|
||||
Description: MariaDB Connector/C, compatibility symlinks
|
||||
@@ -199,6 +205,7 @@ Section: libs
|
||||
Depends: ${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Breaks: libmariadbd-dev (<< ${source:Version})
|
||||
Conflicts: libmariadbd19t64
|
||||
Replaces: libmariadbd-dev (<< ${source:Version})
|
||||
Multi-Arch: same
|
||||
Description: MariaDB embedded database, shared library
|
||||
@@ -229,7 +236,8 @@ Description: MariaDB embedded database, development files package
|
||||
language in the world. The main goals of MariaDB are speed, robustness and
|
||||
ease of use.
|
||||
.
|
||||
This package includes the MariaDB embedded server library development and header files.
|
||||
This package includes the MariaDB embedded server library development
|
||||
and header files.
|
||||
|
||||
Package: mysql-common
|
||||
Architecture: all
|
||||
@@ -256,7 +264,7 @@ Description: MariaDB database common files (e.g. /etc/mysql/mariadb.conf.d/)
|
||||
.
|
||||
This package includes configuration files common to all MariaDB programs.
|
||||
|
||||
Package: mariadb-client-core-10.6
|
||||
Package: mariadb-client-core
|
||||
Architecture: any
|
||||
Depends: libmariadb3 (>= 10.5.4),
|
||||
mariadb-common (>= ${source:Version}),
|
||||
@@ -268,7 +276,9 @@ Conflicts: mariadb-client-10.0,
|
||||
mariadb-client-10.3,
|
||||
mariadb-client-10.4,
|
||||
mariadb-client-10.5,
|
||||
mariadb-client-10.6 (<< ${source:Version}),
|
||||
mariadb-client-10.6,
|
||||
mariadb-client-10.7,
|
||||
mariadb-client-10.8,
|
||||
mariadb-client-5.1,
|
||||
mariadb-client-5.2,
|
||||
mariadb-client-5.3,
|
||||
@@ -279,6 +289,9 @@ Conflicts: mariadb-client-10.0,
|
||||
mariadb-client-core-10.3,
|
||||
mariadb-client-core-10.4,
|
||||
mariadb-client-core-10.5,
|
||||
mariadb-client-core-10.6,
|
||||
mariadb-client-core-10.7,
|
||||
mariadb-client-core-10.8,
|
||||
mariadb-client-core-5.1,
|
||||
mariadb-client-core-5.2,
|
||||
mariadb-client-core-5.3,
|
||||
@@ -293,15 +306,19 @@ Conflicts: mariadb-client-10.0,
|
||||
mysql-client-core-5.7,
|
||||
mysql-client-core-8.0,
|
||||
virtual-mysql-client-core
|
||||
Breaks: mariadb-server-10.0,
|
||||
Breaks: mariadb-client (<< ${source:Version}),
|
||||
mariadb-server-10.0,
|
||||
mariadb-server-10.1,
|
||||
mariadb-server-core (<< ${source:Version}),
|
||||
mariadb-server-core-10.0,
|
||||
mariadb-server-core-10.1,
|
||||
mariadb-server-core-10.2,
|
||||
mariadb-server-core-10.3,
|
||||
mariadb-server-core-10.4,
|
||||
mariadb-server-core-10.5,
|
||||
mariadb-server-core-10.6 (<< ${source:Version}),
|
||||
mariadb-server-core-10.6,
|
||||
mariadb-server-core-10.7,
|
||||
mariadb-server-core-10.8,
|
||||
mysql-cluster-community-client-plugins,
|
||||
mysql-server-core-5.5,
|
||||
mysql-server-core-5.6,
|
||||
@@ -313,13 +330,16 @@ Breaks: mariadb-server-10.0,
|
||||
percona-xtradb-cluster-server-5.6,
|
||||
percona-xtradb-cluster-server-5.7,
|
||||
percona-xtradb-cluster-server-8.0
|
||||
Replaces: mariadb-client-10.0,
|
||||
Replaces: mariadb-client (<< ${source:Version}),
|
||||
mariadb-client-10.0,
|
||||
mariadb-client-10.1,
|
||||
mariadb-client-10.2,
|
||||
mariadb-client-10.3,
|
||||
mariadb-client-10.4,
|
||||
mariadb-client-10.5,
|
||||
mariadb-client-10.6 (<< ${source:Version}),
|
||||
mariadb-client-10.6,
|
||||
mariadb-client-10.7,
|
||||
mariadb-client-10.8,
|
||||
mariadb-client-5.1,
|
||||
mariadb-client-5.2,
|
||||
mariadb-client-5.3,
|
||||
@@ -330,19 +350,25 @@ Replaces: mariadb-client-10.0,
|
||||
mariadb-client-core-10.3,
|
||||
mariadb-client-core-10.4,
|
||||
mariadb-client-core-10.5,
|
||||
mariadb-client-core-10.6,
|
||||
mariadb-client-core-10.7,
|
||||
mariadb-client-core-10.8,
|
||||
mariadb-client-core-5.1,
|
||||
mariadb-client-core-5.2,
|
||||
mariadb-client-core-5.3,
|
||||
mariadb-client-core-5.5,
|
||||
mariadb-server-10.0,
|
||||
mariadb-server-10.1,
|
||||
mariadb-server-core (<< ${source:Version}),
|
||||
mariadb-server-core-10.0,
|
||||
mariadb-server-core-10.1,
|
||||
mariadb-server-core-10.2,
|
||||
mariadb-server-core-10.3,
|
||||
mariadb-server-core-10.4,
|
||||
mariadb-server-core-10.5,
|
||||
mariadb-server-core-10.6 (<< ${source:Version}),
|
||||
mariadb-server-core-10.6,
|
||||
mariadb-server-core-10.7,
|
||||
mariadb-server-core-10.8,
|
||||
mysql-client (<< 5.0.51),
|
||||
mysql-client-5.0,
|
||||
mysql-client-5.1,
|
||||
@@ -374,22 +400,24 @@ Description: MariaDB database core client binaries
|
||||
.
|
||||
This package includes the core client files, as used by Akonadi.
|
||||
|
||||
Package: mariadb-client-10.6
|
||||
Package: mariadb-client
|
||||
Architecture: any
|
||||
Depends: debianutils (>=1.6),
|
||||
mariadb-client-core-10.6 (>= ${source:Version}),
|
||||
libconfig-inifiles-perl,
|
||||
mariadb-client-core (>= ${source:Version}),
|
||||
mariadb-common,
|
||||
${misc:Depends},
|
||||
${perl:Depends},
|
||||
${shlibs:Depends}
|
||||
Conflicts: mariadb-client (<< ${source:Version}),
|
||||
mariadb-client-10.0,
|
||||
Conflicts: mariadb-client-10.0,
|
||||
mariadb-client-10.1,
|
||||
mariadb-client-10.2,
|
||||
mariadb-client-10.3,
|
||||
mariadb-client-10.4,
|
||||
mariadb-client-10.5,
|
||||
mariadb-client-10.6 (<< ${source:Version}),
|
||||
mariadb-client-10.6,
|
||||
mariadb-client-10.7,
|
||||
mariadb-client-10.8,
|
||||
mariadb-client-5.1,
|
||||
mariadb-client-5.2,
|
||||
mariadb-client-5.3,
|
||||
@@ -409,27 +437,36 @@ Conflicts: mariadb-client (<< ${source:Version}),
|
||||
mysql-client-core-8.0,
|
||||
mytop,
|
||||
virtual-mysql-client
|
||||
Breaks: mariadb-client-core-10.0,
|
||||
Breaks: mariadb-client-core (<< ${source:Version}),
|
||||
mariadb-client-core-10.0,
|
||||
mariadb-client-core-10.1,
|
||||
mariadb-client-core-10.2,
|
||||
mariadb-client-core-10.3,
|
||||
mariadb-client-core-10.4,
|
||||
mariadb-client-core-10.5,
|
||||
mariadb-client-core-10.6 (<< ${source:Version}),
|
||||
mariadb-client-core-10.6,
|
||||
mariadb-client-core-10.7,
|
||||
mariadb-client-core-10.8,
|
||||
mariadb-server (<< ${source:Version}),
|
||||
mariadb-server-10.0,
|
||||
mariadb-server-10.1,
|
||||
mariadb-server-10.2,
|
||||
mariadb-server-10.3,
|
||||
mariadb-server-10.4,
|
||||
mariadb-server-10.5,
|
||||
mariadb-server-10.6 (<< ${source:Version}),
|
||||
mariadb-server-10.6,
|
||||
mariadb-server-10.7,
|
||||
mariadb-server-10.8,
|
||||
mariadb-server-core (<< ${source:Version}),
|
||||
mariadb-server-core-10.0,
|
||||
mariadb-server-core-10.1,
|
||||
mariadb-server-core-10.2,
|
||||
mariadb-server-core-10.3,
|
||||
mariadb-server-core-10.4,
|
||||
mariadb-server-core-10.5,
|
||||
mariadb-server-core-10.6 (<< ${source:Version}),
|
||||
mariadb-server-core-10.6,
|
||||
mariadb-server-core-10.7,
|
||||
mariadb-server-core-10.8,
|
||||
mysql-server-5.5,
|
||||
mysql-server-5.6,
|
||||
mysql-server-5.7,
|
||||
@@ -441,38 +478,49 @@ Breaks: mariadb-client-core-10.0,
|
||||
percona-server-server-5.6,
|
||||
percona-xtradb-cluster-server-5.6,
|
||||
percona-xtradb-cluster-server-5.7
|
||||
Replaces: mariadb-client (<< ${source:Version}),
|
||||
mariadb-client-10.0,
|
||||
Replaces: mariadb-client-10.0,
|
||||
mariadb-client-10.1,
|
||||
mariadb-client-10.2,
|
||||
mariadb-client-10.3,
|
||||
mariadb-client-10.4,
|
||||
mariadb-client-10.5,
|
||||
mariadb-client-10.6,
|
||||
mariadb-client-10.7,
|
||||
mariadb-client-10.8,
|
||||
mariadb-client-5.1,
|
||||
mariadb-client-5.2,
|
||||
mariadb-client-5.3,
|
||||
mariadb-client-5.5,
|
||||
mariadb-client-core (<< ${source:Version}),
|
||||
mariadb-client-core-10.0,
|
||||
mariadb-client-core-10.1,
|
||||
mariadb-client-core-10.2,
|
||||
mariadb-client-core-10.3,
|
||||
mariadb-client-core-10.4,
|
||||
mariadb-client-core-10.5,
|
||||
mariadb-client-core-10.6 (<< ${source:Version}),
|
||||
mariadb-client-core-10.6,
|
||||
mariadb-client-core-10.7,
|
||||
mariadb-client-core-10.8,
|
||||
mariadb-server (<< ${source:Version}),
|
||||
mariadb-server-10.0,
|
||||
mariadb-server-10.1,
|
||||
mariadb-server-10.2,
|
||||
mariadb-server-10.3,
|
||||
mariadb-server-10.4,
|
||||
mariadb-server-10.5,
|
||||
mariadb-server-10.6 (<< ${source:Version}),
|
||||
mariadb-server-10.6,
|
||||
mariadb-server-10.7,
|
||||
mariadb-server-10.8,
|
||||
mariadb-server-core (<< ${source:Version}),
|
||||
mariadb-server-core-10.0,
|
||||
mariadb-server-core-10.1,
|
||||
mariadb-server-core-10.2,
|
||||
mariadb-server-core-10.3,
|
||||
mariadb-server-core-10.4,
|
||||
mariadb-server-core-10.5,
|
||||
mariadb-server-core-10.6 (<< ${source:Version}),
|
||||
mariadb-server-core-10.6,
|
||||
mariadb-server-core-10.7,
|
||||
mariadb-server-core-10.8,
|
||||
mysql-client (<< 5.0.51),
|
||||
mysql-client-5.0,
|
||||
mysql-client-5.1,
|
||||
@@ -513,7 +561,7 @@ Description: MariaDB database client binaries
|
||||
This package includes the client binaries and the additional tools
|
||||
innotop and mariadb-report (mysqlreport).
|
||||
|
||||
Package: mariadb-server-core-10.6
|
||||
Package: mariadb-server-core
|
||||
Architecture: any
|
||||
Depends: mariadb-common (>= ${source:Version}),
|
||||
${misc:Depends},
|
||||
@@ -524,6 +572,9 @@ Conflicts: mariadb-server-core-10.0,
|
||||
mariadb-server-core-10.3,
|
||||
mariadb-server-core-10.4,
|
||||
mariadb-server-core-10.5,
|
||||
mariadb-server-core-10.6,
|
||||
mariadb-server-core-10.7,
|
||||
mariadb-server-core-10.8,
|
||||
mariadb-server-core-5.1,
|
||||
mariadb-server-core-5.2,
|
||||
mariadb-server-core-5.3,
|
||||
@@ -536,20 +587,26 @@ Conflicts: mariadb-server-core-10.0,
|
||||
mysql-server-core-5.7,
|
||||
mysql-server-core-8.0,
|
||||
virtual-mysql-server-core
|
||||
Breaks: mariadb-client-10.0,
|
||||
Breaks: mariadb-client (<< ${source:Version}),
|
||||
mariadb-client-10.0,
|
||||
mariadb-client-10.1,
|
||||
mariadb-client-10.2,
|
||||
mariadb-client-10.3,
|
||||
mariadb-client-10.4,
|
||||
mariadb-client-10.5,
|
||||
mariadb-client-10.6 (<< ${source:Version}),
|
||||
mariadb-client-10.6,
|
||||
mariadb-client-10.7,
|
||||
mariadb-client-10.8,
|
||||
mariadb-server (<< ${source:Version}),
|
||||
mariadb-server-10.0,
|
||||
mariadb-server-10.1,
|
||||
mariadb-server-10.2,
|
||||
mariadb-server-10.3,
|
||||
mariadb-server-10.4,
|
||||
mariadb-server-10.5,
|
||||
mariadb-server-10.6 (<< ${source:Version}),
|
||||
mariadb-server-10.6,
|
||||
mariadb-server-10.7,
|
||||
mariadb-server-10.8,
|
||||
mysql-client-5.5,
|
||||
mysql-server-5.5,
|
||||
mysql-server-5.6,
|
||||
@@ -558,20 +615,26 @@ Breaks: mariadb-client-10.0,
|
||||
percona-server-server-5.6,
|
||||
percona-xtradb-cluster-server-5.6,
|
||||
percona-xtradb-cluster-server-5.7
|
||||
Replaces: mariadb-client-10.0,
|
||||
Replaces: mariadb-client (<< ${source:Version}),
|
||||
mariadb-client-10.0,
|
||||
mariadb-client-10.1,
|
||||
mariadb-client-10.2,
|
||||
mariadb-client-10.3,
|
||||
mariadb-client-10.4,
|
||||
mariadb-client-10.5,
|
||||
mariadb-client-10.6 (<< ${source:Version}),
|
||||
mariadb-client-10.6,
|
||||
mariadb-client-10.7,
|
||||
mariadb-client-10.8,
|
||||
mariadb-server (<< ${source:Version}),
|
||||
mariadb-server-10.0,
|
||||
mariadb-server-10.1,
|
||||
mariadb-server-10.2,
|
||||
mariadb-server-10.3,
|
||||
mariadb-server-10.4,
|
||||
mariadb-server-10.5,
|
||||
mariadb-server-10.6 (<< ${source:Version}),
|
||||
mariadb-server-10.6,
|
||||
mariadb-server-10.7,
|
||||
mariadb-server-10.8,
|
||||
mariadb-server-core-10.0,
|
||||
mariadb-server-core-10.1,
|
||||
mariadb-server-core-10.2,
|
||||
@@ -608,11 +671,12 @@ Description: MariaDB database core server files
|
||||
.
|
||||
This package includes the core server files, as used by Akonadi.
|
||||
|
||||
Package: mariadb-server-10.6
|
||||
Package: mariadb-server
|
||||
Architecture: any
|
||||
Suggests: mariadb-test,
|
||||
netcat-openbsd
|
||||
Recommends: libhtml-template-perl
|
||||
Recommends: libhtml-template-perl,
|
||||
pv
|
||||
Pre-Depends: adduser (>= 3.40),
|
||||
debconf,
|
||||
mariadb-common (>= ${source:Version})
|
||||
@@ -620,10 +684,9 @@ Depends: galera-4 (>= 26.4),
|
||||
gawk,
|
||||
iproute2 [linux-any],
|
||||
libdbi-perl,
|
||||
lsb-base (>= 3.0-10),
|
||||
lsof [linux-any],
|
||||
mariadb-client-10.6 (>= ${source:Version}),
|
||||
mariadb-server-core-10.6 (>= ${source:Version}),
|
||||
mariadb-client (>= ${source:Version}),
|
||||
mariadb-server-core (>= ${source:Version}),
|
||||
passwd,
|
||||
perl (>= 5.6),
|
||||
procps,
|
||||
@@ -633,13 +696,15 @@ Depends: galera-4 (>= 26.4),
|
||||
${misc:Depends},
|
||||
${perl:Depends},
|
||||
${shlibs:Depends}
|
||||
Conflicts: mariadb-server (<< ${source:Version}),
|
||||
mariadb-server-10.0,
|
||||
Conflicts: mariadb-server-10.0,
|
||||
mariadb-server-10.1,
|
||||
mariadb-server-10.2,
|
||||
mariadb-server-10.3,
|
||||
mariadb-server-10.4,
|
||||
mariadb-server-10.5,
|
||||
mariadb-server-10.6,
|
||||
mariadb-server-10.7,
|
||||
mariadb-server-10.8,
|
||||
mariadb-server-5.1,
|
||||
mariadb-server-5.2,
|
||||
mariadb-server-5.3,
|
||||
@@ -669,15 +734,20 @@ Breaks: handlersocket-mysql-5.5,
|
||||
Replaces: handlersocket-mysql-5.5,
|
||||
libmariadbclient-dev (<< 5.5.0),
|
||||
libmariadbclient16,
|
||||
mariadb-client (<< ${source:Version}),
|
||||
mariadb-client-10.5,
|
||||
mariadb-client-10.6 (<< ${source:Version}),
|
||||
mariadb-server (<< ${source:Version}),
|
||||
mariadb-client-10.6,
|
||||
mariadb-client-10.7,
|
||||
mariadb-client-10.8,
|
||||
mariadb-server-10.0,
|
||||
mariadb-server-10.1,
|
||||
mariadb-server-10.2,
|
||||
mariadb-server-10.3,
|
||||
mariadb-server-10.4,
|
||||
mariadb-server-10.5,
|
||||
mariadb-server-10.6,
|
||||
mariadb-server-10.7,
|
||||
mariadb-server-10.8,
|
||||
mariadb-server-5.1,
|
||||
mariadb-server-5.2,
|
||||
mariadb-server-5.3,
|
||||
@@ -709,37 +779,6 @@ Description: MariaDB database server binaries
|
||||
.
|
||||
This package includes the server binaries.
|
||||
|
||||
Package: mariadb-server
|
||||
Architecture: all
|
||||
Depends: mariadb-server-10.6 (>= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Description: MariaDB database server binaries (metapackage depending on the latest version)
|
||||
This is an empty package that depends on the current "best" version of
|
||||
mariadb-server (currently mariadb-server-10.6), as determined by the MariaDB
|
||||
maintainers. Install this package if in doubt about which MariaDB
|
||||
version you need. That will install the version recommended by the
|
||||
package maintainers.
|
||||
.
|
||||
MariaDB is a fast, stable and true multi-user, multi-threaded SQL database
|
||||
server. SQL (Structured Query Language) is the most popular database query
|
||||
language in the world. The main goals of MariaDB are speed, robustness and
|
||||
ease of use.
|
||||
|
||||
Package: mariadb-client
|
||||
Architecture: all
|
||||
Depends: mariadb-client-10.6 (>= ${source:Version}),
|
||||
${misc:Depends}
|
||||
Description: MariaDB database client binaries (metapackage depending on the latest version)
|
||||
This is an empty package that depends on the current "best" version of
|
||||
mariadb-client (currently mariadb-client-10.6), as determined by the MariaDB
|
||||
maintainers. Install this package if in doubt about which MariaDB version
|
||||
you want, as this is the one considered to be in the best shape.
|
||||
.
|
||||
MariaDB is a fast, stable and true multi-user, multi-threaded SQL database
|
||||
server. SQL (Structured Query Language) is the most popular database query
|
||||
language in the world. The main goals of MariaDB are speed, robustness and
|
||||
ease of use.
|
||||
|
||||
Package: mariadb-backup
|
||||
Architecture: any
|
||||
Breaks: mariadb-backup-10.1,
|
||||
@@ -750,20 +789,19 @@ Replaces: mariadb-backup-10.1,
|
||||
mariadb-backup-10.2,
|
||||
mariadb-backup-10.3,
|
||||
mariadb-client-10.1
|
||||
Depends: mariadb-client-core-10.6 (= ${binary:Version}),
|
||||
Depends: mariadb-client-core (= ${binary:Version}),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Backup tool for MariaDB server
|
||||
Based on Xtrabackup, but improved to work with MariaDB server.
|
||||
This backup tool is guaranteed to be compatible with MariaDB server.
|
||||
.
|
||||
Please refer to the MariaDB Knowledge Base on more information on
|
||||
Please refer to the MariaDB Documentation on more information on
|
||||
how to use this tool.
|
||||
|
||||
Package: mariadb-plugin-connect
|
||||
Architecture: any
|
||||
Depends: libxml2,
|
||||
mariadb-server-10.6 (= ${server:Version}),
|
||||
Depends: mariadb-server (= ${server:Version}),
|
||||
unixodbc,
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
@@ -790,8 +828,7 @@ Description: Connect storage engine for MariaDB server
|
||||
|
||||
Package: mariadb-plugin-s3
|
||||
Architecture: any
|
||||
Depends: libcurl4,
|
||||
mariadb-server-10.6 (= ${server:Version}),
|
||||
Depends: mariadb-server (= ${server:Version}),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Amazon S3 archival storage engine for MariaDB
|
||||
@@ -800,8 +837,8 @@ Description: Amazon S3 archival storage engine for MariaDB
|
||||
them accessible in MariaDB in read-only mode.
|
||||
|
||||
Package: mariadb-plugin-rocksdb
|
||||
Architecture: amd64 arm64 mips64el ppc64el
|
||||
Depends: mariadb-server-10.6 (= ${server:Version}),
|
||||
Architecture: amd64 arm64 mips64el ppc64el riscv64
|
||||
Depends: mariadb-server (= ${server:Version}),
|
||||
python3:any,
|
||||
rocksdb-tools,
|
||||
${misc:Depends},
|
||||
@@ -820,8 +857,7 @@ Description: RocksDB storage engine for MariaDB server
|
||||
|
||||
Package: mariadb-plugin-oqgraph
|
||||
Architecture: any
|
||||
Depends: libjudydebian1,
|
||||
mariadb-server-10.6 (= ${server:Version}),
|
||||
Depends: mariadb-server (= ${server:Version}),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Breaks: mariadb-oqgraph-engine-10.0,
|
||||
@@ -845,7 +881,7 @@ Description: OQGraph storage engine for MariaDB server
|
||||
|
||||
Package: mariadb-plugin-mroonga
|
||||
Architecture: any-alpha any-amd64 any-arm any-arm64 any-i386 any-ia64 any-mips64el any-mips64r6el any-mipsel any-mipsr6el any-nios2 any-powerpcel any-ppc64el any-sh3 any-sh4 any-tilegx
|
||||
Depends: mariadb-server-10.6 (= ${server:Version}),
|
||||
Depends: mariadb-server (= ${server:Version}),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Breaks: mariadb-server-10.0,
|
||||
@@ -865,7 +901,7 @@ Description: Mroonga storage engine for MariaDB server
|
||||
|
||||
Package: mariadb-plugin-spider
|
||||
Architecture: any
|
||||
Depends: mariadb-server-10.6 (= ${server:Version}),
|
||||
Depends: mariadb-server (= ${server:Version}),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Breaks: mariadb-server-10.0,
|
||||
@@ -886,8 +922,7 @@ Description: Spider storage engine for MariaDB server
|
||||
|
||||
Package: mariadb-plugin-gssapi-server
|
||||
Architecture: any
|
||||
Depends: libgssapi-krb5-2,
|
||||
mariadb-server-10.6,
|
||||
Depends: mariadb-server (= ${server:Version}),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Breaks: mariadb-gssapi-server-10.1,
|
||||
@@ -910,9 +945,7 @@ Description: GSSAPI authentication plugin for MariaDB server
|
||||
|
||||
Package: mariadb-plugin-gssapi-client
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Depends: libgssapi-krb5-2,
|
||||
mariadb-client-10.6 (= ${binary:Version}),
|
||||
Depends: mariadb-client (= ${binary:Version}),
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Breaks: mariadb-gssapi-client-10.1,
|
||||
@@ -931,20 +964,100 @@ Description: GSSAPI authentication plugin for MariaDB client
|
||||
|
||||
Package: mariadb-plugin-cracklib-password-check
|
||||
Architecture: any
|
||||
Depends: libcrack2 (>= 2.9.0),
|
||||
mariadb-server-10.6,
|
||||
Depends: mariadb-server,
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: CrackLib Password Validation Plugin for MariaDB server
|
||||
This password validation plugin uses cracklib to allow only
|
||||
sufficiently secure (as defined by cracklib) user passwords in MariaDB server.
|
||||
sufficiently secure (as defined by cracklib) user passwords in
|
||||
MariaDB server.
|
||||
.
|
||||
Install and configure this to enforce stronger passwords for MariaDB server users.
|
||||
Install and configure this to enforce stronger passwords for
|
||||
MariaDB server users.
|
||||
|
||||
Package: mariadb-plugin-hashicorp-key-management
|
||||
Architecture: any
|
||||
Depends: mariadb-server,
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Hashicorp Key Management plugin for MariaDB
|
||||
This encryption plugin uses Hashicorp Vault for storing encryption
|
||||
keys for MariaDB Data-at-Rest encryption.
|
||||
|
||||
Package: mariadb-plugin-provider-bzip2
|
||||
Architecture: any
|
||||
Depends: mariadb-server,
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: BZip2 compression support in the server and storage engines
|
||||
The various MariaDB storage engines, such as InnoDB, RocksDB, Mroonga,
|
||||
can use different compression libraries.
|
||||
.
|
||||
Plugin provides BZip2 (https://sourceware.org/bzip2/) compression
|
||||
.
|
||||
Note that these affect InnoDB and Mroonga only;
|
||||
RocksDB still uses the compression algorithms from its own library
|
||||
|
||||
Package: mariadb-plugin-provider-lz4
|
||||
Architecture: any
|
||||
Depends: mariadb-server,
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: LZ4 compression support in the server and storage engines
|
||||
The various MariaDB storage engines, such as InnoDB, RocksDB, Mroonga,
|
||||
can use different compression libraries.
|
||||
.
|
||||
Plugin provides LZ4 (http://lz4.github.io/lz4/) compression
|
||||
.
|
||||
Note that these affect InnoDB and Mroonga only;
|
||||
RocksDB still uses the compression algorithms from its own library
|
||||
|
||||
Package: mariadb-plugin-provider-lzma
|
||||
Architecture: any
|
||||
Depends: mariadb-server,
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: LZMA compression support in the server and storage engines
|
||||
The various MariaDB storage engines, such as InnoDB, RocksDB, Mroonga,
|
||||
can use different compression libraries.
|
||||
.
|
||||
Plugin provides LZMA (https://tukaani.org/lzma/) compression
|
||||
.
|
||||
Note that these affect InnoDB and Mroonga only;
|
||||
RocksDB still uses the compression algorithms from its own library
|
||||
|
||||
Package: mariadb-plugin-provider-lzo
|
||||
Architecture: any
|
||||
Depends: mariadb-server,
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: LZO compression support in the server and storage engines
|
||||
The various MariaDB storage engines, such as InnoDB, RocksDB, Mroonga,
|
||||
can use different compression libraries.
|
||||
.
|
||||
Plugin provides LZO (http://www.oberhumer.com/opensource/lzo/) compression
|
||||
.
|
||||
Note that these affect InnoDB and Mroonga only;
|
||||
RocksDB still uses the compression algorithms from its own library
|
||||
|
||||
Package: mariadb-plugin-provider-snappy
|
||||
Architecture: any
|
||||
Depends: mariadb-server,
|
||||
${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Description: Snappy compression support in the server and storage engines
|
||||
The various MariaDB storage engines, such as InnoDB, RocksDB, Mroonga,
|
||||
can use different compression libraries.
|
||||
.
|
||||
Plugin provides Snappy (https://github.com/google/snappy) compression
|
||||
.
|
||||
Note that these affect InnoDB and Mroonga only;
|
||||
RocksDB still uses the compression algorithms from its own library
|
||||
|
||||
Package: mariadb-test
|
||||
Architecture: any
|
||||
Depends: mariadb-client-10.6 (= ${binary:Version}),
|
||||
mariadb-server-10.6 (= ${server:Version}),
|
||||
Depends: mariadb-client (= ${binary:Version}),
|
||||
mariadb-server (= ${server:Version}),
|
||||
mariadb-test-data (= ${source:Version}),
|
||||
virtual-mysql-testsuite,
|
||||
${misc:Depends},
|
||||
@@ -953,8 +1066,7 @@ Depends: mariadb-client-10.6 (= ${binary:Version}),
|
||||
Conflicts: mariadb-server-5.5,
|
||||
mysql-server-5.7,
|
||||
mysql-server-core-8.0
|
||||
Breaks: mariadb-server-5.5,
|
||||
mariadb-test-10.0,
|
||||
Breaks: mariadb-test-10.0,
|
||||
mariadb-test-10.1,
|
||||
mariadb-test-10.2,
|
||||
mariadb-test-10.3,
|
||||
|
||||
1
debian/copyright
vendored
1
debian/copyright
vendored
@@ -1,4 +1,3 @@
|
||||
|
||||
== MariaDB ==
|
||||
|
||||
The Debian package of MySQL was first debianzed on 1997-04-12 by Christian
|
||||
|
||||
2
debian/libmariadb-dev-compat.lintian-overrides
vendored
Normal file
2
debian/libmariadb-dev-compat.lintian-overrides
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# Needed conflict
|
||||
conflicts-with-version libmariadbclient-dev (<< 1:10.11.8+maria~deb11)
|
||||
2
debian/libmariadb-dev.install
vendored
2
debian/libmariadb-dev.install
vendored
@@ -1,3 +1,4 @@
|
||||
usr/bin/mariadb-config
|
||||
usr/bin/mariadb_config
|
||||
usr/include/mariadb/errmsg.h
|
||||
usr/include/mariadb/ma_list.h
|
||||
@@ -31,3 +32,4 @@ usr/lib/*/pkgconfig/libmariadb.pc
|
||||
usr/share/aclocal/mysql.m4
|
||||
usr/share/man/man1/mariadb_config.1
|
||||
usr/share/man/man1/mysql_config.1
|
||||
usr/share/man/man3/*.3
|
||||
|
||||
1
debian/libmariadb-dev.links
vendored
1
debian/libmariadb-dev.links
vendored
@@ -1,2 +1 @@
|
||||
usr/bin/mariadb_config usr/bin/mariadb-config
|
||||
usr/share/man/man1/mariadb_config.1.gz usr/share/man/man1/mariadb-config.1.gz
|
||||
|
||||
776
debian/libmariadb-dev.lintian-overrides
vendored
776
debian/libmariadb-dev.lintian-overrides
vendored
@@ -1,2 +1,774 @@
|
||||
# This is how upstream does it, wont' fix
|
||||
arch-dependent-file-not-in-arch-specific-directory usr/bin/mariadb_config
|
||||
# Needed conflict
|
||||
conflicts-with-version libmariadb-dev-compat (<< 3.0.0)
|
||||
|
||||
# This is intended one
|
||||
repeated-path-segment mariadb [usr/include/mariadb/mariadb/]
|
||||
|
||||
# These are handled when groff messages are corrected
|
||||
typo-in-manual-page handshak handshake [usr/share/man/man3/mariadb_get_infov.3.gz:173]
|
||||
typo-in-manual-page occured occurred [usr/share/man/man3/mysql_ping.3.gz:39]
|
||||
typo-in-manual-page occured occurred [usr/share/man/man3/mysql_set_character_set.3.gz:37]
|
||||
typo-in-manual-page occured occurred [usr/share/man/man3/mysql_stmt_error.3.gz:30]
|
||||
typo-in-manual-page occured occurred [usr/share/man/man3/mysql_stmt_reset.3.gz:27]
|
||||
typo-in-manual-page occured occurred [usr/share/man/man3/mysql_store_result.3.gz:34]
|
||||
typo-in-manual-page releated related [usr/share/man/man3/mariadb_get_infov.3.gz:8]
|
||||
typo-in-manual-page reponse response [usr/share/man/man3/mysql_send_query.3.gz:8]
|
||||
typo-in-manual-page seperated separated [usr/share/man/man3/mysql_real_connect.3.gz:144]
|
||||
typo-in-manual-page seperated separated [usr/share/man/man3/mysql_real_connect.3.gz:148]
|
||||
typo-in-manual-page sucess success [usr/share/man/man3/mariadb_reconnect.3.gz:25]
|
||||
|
||||
# Probably fixed in newer pandoc
|
||||
# man pages should be regenerated
|
||||
groff-message an.tmac:<standard input>:*: tbl preprocessor failed, or it or soelim was not run; table(s) likely not rendered (TE macro called with TW register undefined) [usr/share/man/man3/mysql_stmt_attr_set.3.gz:20]
|
||||
groff-message an.tmac:<standard input>:*: tbl preprocessor failed, or it or soelim was not run; table(s) likely not rendered (TE macro called with TW register undefined) [usr/share/man/man3/mysql_real_connect.3.gz:18]
|
||||
groff-message an.tmac:<standard input>:*: tbl preprocessor failed, or it or soelim was not run; table(s) likely not rendered (TE macro called with TW register undefined) [usr/share/man/man3/mysql_set_character_set.3.gz:5]
|
||||
groff-message an.tmac:<standard input>:*: tbl preprocessor failed, or it or soelim was not run; table(s) likely not rendered (TE macro called with TW register undefined) [usr/share/man/man3/mysql_set_server_option.3.gz:4]
|
||||
groff-message an.tmac:<standard input>:*: tbl preprocessor failed, or it or soelim was not run; table(s) likely not rendered (TE macro called with TW register undefined) [usr/share/man/man3/mariadb_rpl_get_optionsv.3.gz:4]
|
||||
groff-message an.tmac:<standard input>:*: tbl preprocessor failed, or it or soelim was not run; table(s) likely not rendered (TE macro called with TW register undefined) [usr/share/man/man3/mariadb_rpl_optionsv.3.gz:4]
|
||||
groff-message an.tmac:<standard input>:*: tbl preprocessor failed, or it or soelim was not run; table(s) likely not rendered (TE macro called with TW register undefined) [usr/share/man/man3/mysql_info.3.gz:10]
|
||||
groff-message an.tmac:<standard input>:*: tbl preprocessor failed, or it or soelim was not run; table(s) likely not rendered (TE macro called with TW register undefined) [usr/share/man/man3/mysql_refresh.3.gz:13]
|
||||
groff-message an.tmac:<standard input>:*: tbl preprocessor failed, or it or soelim was not run; table(s) likely not rendered (TE macro called with TW register undefined) [usr/share/man/man3/mysql_optionsv.3.gz:48]
|
||||
groff-message an.tmac:<standard input>:*: tbl preprocessor failed, or it or soelim was not run; table(s) likely not rendered (TE macro called with TW register undefined) [usr/share/man/man3/mysql_stmt_attr_get.3.gz:20]
|
||||
groff-message an.tmac:<standard input>:*: tbl preprocessor failed, or it or soelim was not run; table(s) likely not rendered (TE macro called with TW register undefined) [usr/share/man/man3/mariadb_get_infov.3.gz:43]
|
||||
|
||||
# Until man pages are regenerated they just pollute
|
||||
# lintian output
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1043256
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1041809
|
||||
# https://github.com/jgm/pandoc/issues/9020
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:45]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:16]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:51]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:46]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:17]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:52]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:21]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:22]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:47]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:53]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:54]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_cancel.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_check.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_cmp_named.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_count.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_exists_named.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_exists_num.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_free.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_named.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_num.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_reconnect.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_close.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_fetch.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_open.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_stmt_fetch_fields.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_autocommit.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_change_user.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_close.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_commit.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_data_seek.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_field_direct.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_fields.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_row.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_field_seek.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_field_tell.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_free_result.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_character_set_info.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_client_version.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_host_info.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_proto_info.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_server_info.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_server_version.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_ssl_cipher.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_hex_string.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_init.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_kill.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_more_results.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_next_result.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_num_fields.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_num_rows.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_query.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_read_query_result.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_query.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_reset_connection.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_rollback.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_row_seek.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_row_tell.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_select_db.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_server_end.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_server_init.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_shutdown.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_sqlstate.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_ssl_set.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stat.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_bind_param.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_bind_result.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_close.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_errno.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_execute.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_fetch.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_fetch_column.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_field_count.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_init.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_param_count.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_param_metadata.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_prepare.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_reset.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_row_seek.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_row_tell.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_send_long_data.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_store_result.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_thread_end.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_thread_id.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_thread_init.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_use_result.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_warning_count.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:48]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:55]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:49]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_connection.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_named.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_num.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_named.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_num.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_get_optionsv.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_optionsv.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_stmt_execute_direct.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_affected_rows.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_errno.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_error.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_field.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_lengths.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_field_count.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_client_info.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_socket.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_info.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_options.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_options4.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_ping.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_escape_string.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_send_query.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_set_character_set.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_set_server_option.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_affected_rows.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_data_seek.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_error.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_free_result.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_insert_id.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_more_results.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_next_result.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_num_rows.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_result_metadata.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_sqlstate.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_store_result.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_warning_count.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:56]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:57]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:50]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:58]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:51]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:59]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:60]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:52]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:61]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:62]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:63]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:64]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:53]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:19]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:20]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:65]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:54]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:66]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:55]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:67]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:56]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:68]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:57]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:69]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:58]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:70]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:59]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:71]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:60]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_reconnect.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_server_info.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_init.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:61]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:72]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_check.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_get_optionsv.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_optionsv.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_field_direct.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_lengths.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_row.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_info.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_insert_id.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:62]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:73]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:63]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:74]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_cancel.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_cmp_named.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_affected_rows.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_init.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_shutdown.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_param_count.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:64]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:75]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:65]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_cancel.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_exists_named.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_exists_num.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_free.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_free.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_close.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_fetch.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_open.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_affected_rows.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_affected_rows.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_affected_rows.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_close.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_field_direct.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_lengths.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_proto_info.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_server_info.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_server_version.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_hex_string.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_init.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_num_fields.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_num_rows.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_init.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_insert_id.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_reset.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_sqlstate.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_warning_count.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:76]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:66]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_connection.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_get_optionsv.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_optionsv.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_autocommit.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_commit.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_free_result.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_host_info.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_socket.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_ssl_cipher.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_more_results.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_read_query_result.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_rollback.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stat.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_errno.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_fetch.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_free_result.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_insert_id.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_param_metadata.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_thread_id.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_warning_count.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:67]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:77]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:68]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:78]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_cancel.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_cmp_named.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_count.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_count.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_exists_named.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_exists_num.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_field_direct.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_character_set_info.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_info.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_num_rows.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_options.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_row_seek.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_row_tell.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_select_db.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_set_server_option.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_bind_result.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_close.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_more_results.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_param_count.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_prepare.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_row_seek.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_row_tell.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:69]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:79]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:70]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_check.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_check.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_free.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_num.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_stmt_fetch_fields.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_data_seek.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_errno.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_error.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_field_seek.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_field_tell.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_hex_string.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_init.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_init.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_options4.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_query.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_server_end.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_bind_param.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_data_seek.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_error.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_execute.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_field_count.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_next_result.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:80]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:81]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:71]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:82]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:83]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_cmp_named.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_count.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_free.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_named.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_named.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_fetch.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_affected_rows.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_field.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_fields.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_lengths.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_row.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_client_version.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_next_result.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_num_rows.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_query.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_send_query.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_server_end.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_shutdown.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_affected_rows.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_fetch_column.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_num_rows.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_result_metadata.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_send_long_data.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_send_long_data.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_store_result.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:72]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:84]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:73]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:85]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_exists_named.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_exists_num.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_num.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_named.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_num.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_fetch.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_stmt_execute_direct.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_autocommit.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_hex_string.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_row_seek.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_set_character_set.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_bind_result.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_fetch.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_fetch.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_init.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_init.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_param_metadata.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_prepare.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_row_seek.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:74]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:86]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:75]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:87]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_cancel.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_check.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_named.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_num.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_exists_named.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_exists_num.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_reconnect.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_fetch.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_data_seek.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_lengths.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_field_count.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_field_seek.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_character_set_info.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_character_set_info.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_host_info.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_ssl_cipher.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_kill.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_select_db.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_set_server_option.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_bind_param.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_bind_param.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_data_seek.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_fetch.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_use_result.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:76]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:88]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_check.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_named.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_named.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_num.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_open.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_hex_string.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_init.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_ping.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_escape_string.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_query.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_fetch_column.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_prepare.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_send_long_data.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_store_result.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_warning_count.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:89]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:77]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_cmp_named.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_count.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_named.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_num.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_num.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_stmt_execute_direct.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_errno.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_error.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_field_direct.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_field_direct.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_lengths.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_row.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_field_seek.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_field_seek.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_info.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_query.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_send_query.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_server_end.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_server_init.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_set_character_set.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_shutdown.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_affected_rows.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_reset.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_warning_count.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:90]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:91]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:78]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_cmp_named.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_named.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_named.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_num.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_reconnect.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_close.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_affected_rows.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_change_user.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_errno.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_error.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_row.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_server_info.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_query.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_shutdown.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_errno.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_fetch_column.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_init.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_warning_count.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:92]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_named.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_num.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_stmt_execute_direct.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_autocommit.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_select_db.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_send_query.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_affected_rows.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_errno.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_field_count.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_send_long_data.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_warning_count.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:93]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:94]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_column_count.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_named.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_num.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_row.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_field_count.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_init.3.gz:9]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_kill.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_more_results.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_escape_string.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_server_init.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_set_character_set.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_error.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_fetch_column.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:95]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_named.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_num.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_named.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_num.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_fields.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_init.3.gz:10]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_server_init.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_ssl_set.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_error.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:96]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_change_user.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_reset_connection.3.gz:2]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:97]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_cancel.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_named.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_named.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_num.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_num.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_named.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_num.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_error.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_affected_rows.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_send_long_data.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:98]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:9]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_affected_rows.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_change_user.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_field.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_row.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_ssl_cipher.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_kill.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_ssl_set.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:99]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:100]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:101]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_named.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_num.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_list_num.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_ssl_cipher.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_escape_string.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_send_query.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_send_long_data.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:102]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:103]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:104]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:105]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:106]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_change_user.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_fetch_row.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_ssl_cipher.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_kill.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_ssl_set.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:107]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:108]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_named.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_create_many_num.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_named.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_update_many_num.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:109]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:10]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_autocommit.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_escape_string.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_escape_string.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_select_db.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_ssl_set.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_fetch.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_use_result.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_fetch.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:3]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_stmt_execute_direct.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_get_ssl_cipher.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_ssl_set.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:11]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:12]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:4]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_send_long_data.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_dyncol_unpack.3.gz:13]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:9]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:9]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:10]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_ssl_set.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:11]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_info.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:12]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:10]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:13]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:9]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:11]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:14]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:10]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:11]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:12]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:13]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_info.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:12]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:13]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:9]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:15]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_change_user.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:14]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:15]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:10]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_ssl_set.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:16]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:17]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:16]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_select_db.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:11]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:18]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_autocommit.3.gz:6]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_info.3.gz:7]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:9]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:17]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_next.3.gz:14]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:18]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:12]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:9]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:19]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:13]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:10]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:9]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:20]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_info.3.gz:8]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:19]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:14]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:15]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:21]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:11]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:20]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:21]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:9]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:12]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:10]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:22]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:23]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:11]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:22]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:24]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:25]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_info.3.gz:9]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:26]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:27]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:13]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:23]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:24]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:28]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:29]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:12]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:25]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:26]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:30]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:31]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:10]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:14]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:27]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:28]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:32]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:33]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_session_track_get_first.3.gz:16]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:13]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:29]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:34]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:35]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:30]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:36]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:37]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:10]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:31]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_get_optionsv.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:38]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:39]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:32]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:40]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:41]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:11]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:33]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_rpl_optionsv.3.gz:5]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:42]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:15]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:34]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:43]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:14]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:35]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:44]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:45]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:11]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:16]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:15]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:12]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_init.3.gz:1]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:36]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:37]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:46]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:17]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:12]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:18]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:38]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:39]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:47]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_get.3.gz:19]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:16]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:40]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:13]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_refresh.3.gz:14]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:17]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:41]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:49]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:42]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:14]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:18]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_optionsv.3.gz:50]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_stmt_attr_set.3.gz:19]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mariadb_get_infov.3.gz:44]
|
||||
groff-message troff:<standard input>:*: cannot select font 'C' [usr/share/man/man3/mysql_real_connect.3.gz:15]
|
||||
|
||||
2
debian/libmariadb3.lintian-overrides
vendored
Normal file
2
debian/libmariadb3.lintian-overrides
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# Needed conflict
|
||||
conflicts-with-version libmariadbclient18 (<< 10.2.0)
|
||||
342
debian/libmariadb3.symbols
vendored
Normal file
342
debian/libmariadb3.symbols
vendored
Normal file
@@ -0,0 +1,342 @@
|
||||
libmariadb.so.3 libmariadb3 #MINVER#
|
||||
* Build-Depends-Package: libmariadb-dev
|
||||
libmariadb_3@libmariadb_3 3.0.0
|
||||
libmariadb_3_3_5@libmariadb_3_3_5 3.3.5
|
||||
libmariadbclient_18@libmariadbclient_18 3.0.0
|
||||
libmysqlclient_18@libmysqlclient_18 3.0.0
|
||||
ma_pvio_register_callback@libmariadb_3 3.0.0
|
||||
mariadb_cancel@libmariadb_3 3.0.0
|
||||
mariadb_connection@libmariadb_3 3.0.0
|
||||
mariadb_convert_string@libmariadb_3 3.0.0
|
||||
mariadb_deinitialize_ssl@libmariadb_3 3.0.0
|
||||
mariadb_field_attr@libmariadb_3 3.3.1
|
||||
mariadb_free_rpl_event@libmariadb_3 3.1.0
|
||||
mariadb_get_charset_by_name@libmariadb_3 3.0.0
|
||||
mariadb_get_charset_by_nr@libmariadb_3 3.0.0
|
||||
mariadb_get_info@libmariadb_3 3.0.0
|
||||
mariadb_get_infov@libmariadb_3 3.0.0
|
||||
mariadb_reconnect@libmariadb_3 3.0.0
|
||||
mariadb_rpl_close@libmariadb_3 3.1.0
|
||||
mariadb_rpl_errno@libmariadb_3_3_5 3.3.2
|
||||
mariadb_rpl_error@libmariadb_3_3_5 3.3.2
|
||||
mariadb_rpl_extract_rows@libmariadb_3_3_5 3.3.2
|
||||
mariadb_rpl_fetch@libmariadb_3 3.1.0
|
||||
mariadb_rpl_get_optionsv@libmariadb_3 3.1.0
|
||||
mariadb_rpl_init_ex@libmariadb_3 3.3.0
|
||||
mariadb_rpl_open@libmariadb_3 3.1.0
|
||||
mariadb_rpl_optionsv@libmariadb_3 3.1.0
|
||||
mariadb_stmt_execute_direct@libmariadb_3 3.0.0
|
||||
mariadb_stmt_fetch_fields@libmariadb_3 3.1.0
|
||||
mysql_affected_rows@libmariadbclient_18 3.0.0
|
||||
mysql_affected_rows@libmysqlclient_18 3.0.0
|
||||
mysql_autocommit_cont@libmariadb_3 3.0.0
|
||||
mysql_autocommit@libmariadbclient_18 3.0.0
|
||||
mysql_autocommit@libmysqlclient_18 3.0.0
|
||||
mysql_autocommit_start@libmariadb_3 3.0.0
|
||||
mysql_change_user_cont@libmariadb_3 3.0.0
|
||||
mysql_change_user@libmariadbclient_18 3.0.0
|
||||
mysql_change_user@libmysqlclient_18 3.0.0
|
||||
mysql_change_user_start@libmariadb_3 3.0.0
|
||||
mysql_character_set_name@libmariadbclient_18 3.0.0
|
||||
mysql_character_set_name@libmysqlclient_18 3.0.0
|
||||
mysql_client_find_plugin@libmariadbclient_18 3.0.0
|
||||
mysql_client_find_plugin@libmysqlclient_18 3.0.0
|
||||
mysql_client_register_plugin@libmariadbclient_18 3.0.0
|
||||
mysql_client_register_plugin@libmysqlclient_18 3.0.0
|
||||
mysql_close_cont@libmariadb_3 3.0.0
|
||||
mysql_close@libmariadbclient_18 3.0.0
|
||||
mysql_close@libmysqlclient_18 3.0.0
|
||||
mysql_close_start@libmariadb_3 3.0.0
|
||||
mysql_commit_cont@libmariadb_3 3.0.0
|
||||
mysql_commit@libmariadbclient_18 3.0.0
|
||||
mysql_commit@libmysqlclient_18 3.0.0
|
||||
mysql_commit_start@libmariadb_3 3.0.0
|
||||
mysql_data_seek@libmariadbclient_18 3.0.0
|
||||
mysql_data_seek@libmysqlclient_18 3.0.0
|
||||
mysql_debug@libmariadbclient_18 3.0.0
|
||||
mysql_debug@libmysqlclient_18 3.0.0
|
||||
mysql_dump_debug_info_cont@libmariadb_3 3.0.0
|
||||
mysql_dump_debug_info@libmariadbclient_18 3.0.0
|
||||
mysql_dump_debug_info@libmysqlclient_18 3.0.0
|
||||
mysql_dump_debug_info_start@libmariadb_3 3.0.0
|
||||
mysql_embedded@libmariadbclient_18 3.0.0
|
||||
mysql_embedded@libmysqlclient_18 3.0.0
|
||||
mysql_eof@libmariadbclient_18 3.0.0
|
||||
mysql_eof@libmysqlclient_18 3.0.0
|
||||
mysql_errno@libmariadbclient_18 3.0.0
|
||||
mysql_errno@libmysqlclient_18 3.0.0
|
||||
mysql_error@libmariadbclient_18 3.0.0
|
||||
mysql_error@libmysqlclient_18 3.0.0
|
||||
mysql_escape_string@libmariadbclient_18 3.0.0
|
||||
mysql_escape_string@libmysqlclient_18 3.0.0
|
||||
mysql_fetch_field_direct@libmariadbclient_18 3.0.0
|
||||
mysql_fetch_field_direct@libmysqlclient_18 3.0.0
|
||||
mysql_fetch_field@libmariadbclient_18 3.0.0
|
||||
mysql_fetch_field@libmysqlclient_18 3.0.0
|
||||
mysql_fetch_fields@libmariadbclient_18 3.0.0
|
||||
mysql_fetch_fields@libmysqlclient_18 3.0.0
|
||||
mysql_fetch_lengths@libmariadbclient_18 3.0.0
|
||||
mysql_fetch_lengths@libmysqlclient_18 3.0.0
|
||||
mysql_fetch_row_cont@libmariadb_3 3.0.0
|
||||
mysql_fetch_row@libmariadbclient_18 3.0.0
|
||||
mysql_fetch_row@libmysqlclient_18 3.0.0
|
||||
mysql_fetch_row_start@libmariadb_3 3.0.0
|
||||
mysql_field_count@libmariadbclient_18 3.0.0
|
||||
mysql_field_count@libmysqlclient_18 3.0.0
|
||||
mysql_field_seek@libmariadbclient_18 3.0.0
|
||||
mysql_field_seek@libmysqlclient_18 3.0.0
|
||||
mysql_field_tell@libmariadbclient_18 3.0.0
|
||||
mysql_field_tell@libmysqlclient_18 3.0.0
|
||||
mysql_free_result_cont@libmariadb_3 3.0.0
|
||||
mysql_free_result@libmariadbclient_18 3.0.0
|
||||
mysql_free_result@libmysqlclient_18 3.0.0
|
||||
mysql_free_result_start@libmariadb_3 3.0.0
|
||||
mysql_get_character_set_info@libmariadbclient_18 3.0.0
|
||||
mysql_get_character_set_info@libmysqlclient_18 3.0.0
|
||||
mysql_get_charset_by_name@libmariadbclient_18 3.0.0
|
||||
mysql_get_charset_by_name@libmysqlclient_18 3.0.0
|
||||
mysql_get_charset_by_nr@libmariadbclient_18 3.0.0
|
||||
mysql_get_charset_by_nr@libmysqlclient_18 3.0.0
|
||||
mysql_get_client_info@libmariadbclient_18 3.0.0
|
||||
mysql_get_client_info@libmysqlclient_18 3.0.0
|
||||
mysql_get_client_version@libmariadbclient_18 3.0.0
|
||||
mysql_get_client_version@libmysqlclient_18 3.0.0
|
||||
mysql_get_host_info@libmariadbclient_18 3.0.0
|
||||
mysql_get_host_info@libmysqlclient_18 3.0.0
|
||||
mysql_get_option@libmariadbclient_18 3.0.0
|
||||
mysql_get_option@libmysqlclient_18 3.0.0
|
||||
mysql_get_optionv@libmariadbclient_18 3.0.0
|
||||
mysql_get_optionv@libmysqlclient_18 3.0.0
|
||||
mysql_get_parameters@libmariadbclient_18 3.0.0
|
||||
mysql_get_parameters@libmysqlclient_18 3.0.0
|
||||
mysql_get_proto_info@libmariadbclient_18 3.0.0
|
||||
mysql_get_proto_info@libmysqlclient_18 3.0.0
|
||||
mysql_get_server_info@libmariadbclient_18 3.0.0
|
||||
mysql_get_server_info@libmysqlclient_18 3.0.0
|
||||
mysql_get_server_name@libmariadbclient_18 3.0.0
|
||||
mysql_get_server_name@libmysqlclient_18 3.0.0
|
||||
mysql_get_server_version@libmariadbclient_18 3.0.0
|
||||
mysql_get_server_version@libmysqlclient_18 3.0.0
|
||||
mysql_get_socket@libmariadbclient_18 3.0.0
|
||||
mysql_get_socket@libmysqlclient_18 3.0.0
|
||||
mysql_get_ssl_cipher@libmariadbclient_18 3.0.0
|
||||
mysql_get_ssl_cipher@libmysqlclient_18 3.0.0
|
||||
mysql_get_timeout_value@libmariadb_3 3.0.19
|
||||
mysql_get_timeout_value_ms@libmariadb_3 3.0.19
|
||||
mysql_hex_string@libmariadbclient_18 3.0.0
|
||||
mysql_hex_string@libmysqlclient_18 3.0.0
|
||||
mysql_info@libmariadbclient_18 3.0.0
|
||||
mysql_info@libmysqlclient_18 3.0.0
|
||||
mysql_init@libmariadbclient_18 3.0.0
|
||||
mysql_init@libmysqlclient_18 3.0.0
|
||||
mysql_insert_id@libmariadbclient_18 3.0.0
|
||||
mysql_insert_id@libmysqlclient_18 3.0.0
|
||||
mysql_kill_cont@libmariadb_3 3.0.0
|
||||
mysql_kill@libmariadbclient_18 3.0.0
|
||||
mysql_kill@libmysqlclient_18 3.0.0
|
||||
mysql_kill_start@libmariadb_3 3.0.0
|
||||
mysql_list_dbs@libmariadbclient_18 3.0.0
|
||||
mysql_list_dbs@libmysqlclient_18 3.0.0
|
||||
mysql_list_fields_cont@libmariadb_3 3.0.0
|
||||
mysql_list_fields@libmariadbclient_18 3.0.0
|
||||
mysql_list_fields@libmysqlclient_18 3.0.0
|
||||
mysql_list_fields_start@libmariadb_3 3.0.0
|
||||
mysql_list_processes@libmariadbclient_18 3.0.0
|
||||
mysql_list_processes@libmysqlclient_18 3.0.0
|
||||
mysql_list_tables@libmariadbclient_18 3.0.0
|
||||
mysql_list_tables@libmysqlclient_18 3.0.0
|
||||
mysql_load_plugin@libmariadbclient_18 3.0.0
|
||||
mysql_load_plugin@libmysqlclient_18 3.0.0
|
||||
mysql_load_plugin_v@libmariadbclient_18 3.0.0
|
||||
mysql_load_plugin_v@libmysqlclient_18 3.0.0
|
||||
mysql_more_results@libmariadbclient_18 3.0.0
|
||||
mysql_more_results@libmysqlclient_18 3.0.0
|
||||
mysql_net_field_length@libmariadbclient_18 3.0.0
|
||||
mysql_net_field_length@libmysqlclient_18 3.0.0
|
||||
mysql_net_read_packet@libmariadbclient_18 3.0.0
|
||||
mysql_net_read_packet@libmysqlclient_18 3.0.0
|
||||
mysql_next_result_cont@libmariadb_3 3.0.0
|
||||
mysql_next_result@libmariadbclient_18 3.0.0
|
||||
mysql_next_result@libmysqlclient_18 3.0.0
|
||||
mysql_next_result_start@libmariadb_3 3.0.0
|
||||
mysql_num_fields@libmariadbclient_18 3.0.0
|
||||
mysql_num_fields@libmysqlclient_18 3.0.0
|
||||
mysql_num_rows@libmariadbclient_18 3.0.0
|
||||
mysql_num_rows@libmysqlclient_18 3.0.0
|
||||
mysql_options4@libmariadbclient_18 3.0.0
|
||||
mysql_options4@libmysqlclient_18 3.0.0
|
||||
mysql_options@libmariadbclient_18 3.0.0
|
||||
mysql_options@libmysqlclient_18 3.0.0
|
||||
mysql_optionsv@libmariadb_3 3.0.0
|
||||
mysql_ping_cont@libmariadb_3 3.0.0
|
||||
mysql_ping@libmariadbclient_18 3.0.0
|
||||
mysql_ping@libmysqlclient_18 3.0.0
|
||||
mysql_ping_start@libmariadb_3 3.0.0
|
||||
mysql_ps_fetch_functions@libmariadb_3 3.0.0
|
||||
mysql_query_cont@libmariadb_3 3.0.0
|
||||
mysql_query@libmariadbclient_18 3.0.0
|
||||
mysql_query@libmysqlclient_18 3.0.0
|
||||
mysql_query_start@libmariadb_3 3.0.0
|
||||
mysql_read_query_result_cont@libmariadb_3 3.0.0
|
||||
mysql_read_query_result@libmariadbclient_18 3.0.0
|
||||
mysql_read_query_result@libmysqlclient_18 3.0.0
|
||||
mysql_read_query_result_start@libmariadb_3 3.0.0
|
||||
mysql_real_connect_cont@libmariadb_3 3.0.0
|
||||
mysql_real_connect@libmariadbclient_18 3.0.0
|
||||
mysql_real_connect@libmysqlclient_18 3.0.0
|
||||
mysql_real_connect_start@libmariadb_3 3.0.0
|
||||
mysql_real_escape_string@libmariadbclient_18 3.0.0
|
||||
mysql_real_escape_string@libmysqlclient_18 3.0.0
|
||||
mysql_real_query_cont@libmariadb_3 3.0.0
|
||||
mysql_real_query@libmariadbclient_18 3.0.0
|
||||
mysql_real_query@libmysqlclient_18 3.0.0
|
||||
mysql_real_query_start@libmariadb_3 3.0.0
|
||||
mysql_refresh_cont@libmariadb_3 3.0.0
|
||||
mysql_refresh@libmariadbclient_18 3.0.0
|
||||
mysql_refresh@libmysqlclient_18 3.0.0
|
||||
mysql_refresh_start@libmariadb_3 3.0.0
|
||||
mysql_reset_connection_cont@libmariadb_3 3.0.0
|
||||
mysql_reset_connection@libmariadbclient_18 3.0.0
|
||||
mysql_reset_connection@libmysqlclient_18 3.0.0
|
||||
mysql_reset_connection_start@libmariadb_3 3.0.0
|
||||
mysql_rollback_cont@libmariadb_3 3.0.0
|
||||
mysql_rollback@libmariadbclient_18 3.0.0
|
||||
mysql_rollback@libmysqlclient_18 3.0.0
|
||||
mysql_rollback_start@libmariadb_3 3.0.0
|
||||
mysql_row_seek@libmariadbclient_18 3.0.0
|
||||
mysql_row_seek@libmysqlclient_18 3.0.0
|
||||
mysql_row_tell@libmariadbclient_18 3.0.0
|
||||
mysql_row_tell@libmysqlclient_18 3.0.0
|
||||
mysql_select_db_cont@libmariadb_3 3.0.0
|
||||
mysql_select_db@libmariadbclient_18 3.0.0
|
||||
mysql_select_db@libmysqlclient_18 3.0.0
|
||||
mysql_select_db_start@libmariadb_3 3.0.0
|
||||
mysql_send_query_cont@libmariadb_3 3.0.0
|
||||
mysql_send_query@libmariadbclient_18 3.0.0
|
||||
mysql_send_query@libmysqlclient_18 3.0.0
|
||||
mysql_send_query_start@libmariadb_3 3.0.0
|
||||
mysql_server_end@libmariadbclient_18 3.0.0
|
||||
mysql_server_end@libmysqlclient_18 3.0.0
|
||||
mysql_server_init@libmariadbclient_18 3.0.0
|
||||
mysql_server_init@libmysqlclient_18 3.0.0
|
||||
mysql_session_track_get_first@libmariadbclient_18 3.0.0
|
||||
mysql_session_track_get_first@libmysqlclient_18 3.0.0
|
||||
mysql_session_track_get_next@libmariadbclient_18 3.0.0
|
||||
mysql_session_track_get_next@libmysqlclient_18 3.0.0
|
||||
mysql_set_character_set_cont@libmariadb_3 3.0.0
|
||||
mysql_set_character_set@libmariadbclient_18 3.0.0
|
||||
mysql_set_character_set@libmysqlclient_18 3.0.0
|
||||
mysql_set_character_set_start@libmariadb_3 3.0.0
|
||||
mysql_set_local_infile_default@libmariadbclient_18 3.0.0
|
||||
mysql_set_local_infile_default@libmysqlclient_18 3.0.0
|
||||
mysql_set_local_infile_handler@libmariadbclient_18 3.0.0
|
||||
mysql_set_local_infile_handler@libmysqlclient_18 3.0.0
|
||||
mysql_set_server_option_cont@libmariadb_3 3.0.0
|
||||
mysql_set_server_option@libmariadbclient_18 3.0.0
|
||||
mysql_set_server_option@libmysqlclient_18 3.0.0
|
||||
mysql_set_server_option_start@libmariadb_3 3.0.0
|
||||
mysql_shutdown_cont@libmariadb_3 3.0.0
|
||||
mysql_shutdown@libmariadbclient_18 3.0.0
|
||||
mysql_shutdown@libmysqlclient_18 3.0.0
|
||||
mysql_shutdown_start@libmariadb_3 3.0.0
|
||||
mysql_sqlstate@libmariadbclient_18 3.0.0
|
||||
mysql_sqlstate@libmysqlclient_18 3.0.0
|
||||
mysql_ssl_set@libmariadbclient_18 3.0.0
|
||||
mysql_ssl_set@libmysqlclient_18 3.0.0
|
||||
mysql_stat_cont@libmariadb_3 3.0.0
|
||||
mysql_stat@libmariadbclient_18 3.0.0
|
||||
mysql_stat@libmysqlclient_18 3.0.0
|
||||
mysql_stat_start@libmariadb_3 3.0.0
|
||||
mysql_stmt_affected_rows@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_affected_rows@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_attr_get@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_attr_get@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_attr_set@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_attr_set@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_bind_param@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_bind_param@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_bind_result@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_bind_result@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_close_cont@libmariadb_3 3.0.0
|
||||
mysql_stmt_close@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_close@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_close_start@libmariadb_3 3.0.0
|
||||
mysql_stmt_data_seek@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_data_seek@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_errno@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_errno@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_error@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_error@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_execute_cont@libmariadb_3 3.0.0
|
||||
mysql_stmt_execute@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_execute@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_execute_start@libmariadb_3 3.0.0
|
||||
mysql_stmt_fetch_column@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_fetch_column@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_fetch_cont@libmariadb_3 3.0.0
|
||||
mysql_stmt_fetch@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_fetch@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_fetch_start@libmariadb_3 3.0.0
|
||||
mysql_stmt_field_count@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_field_count@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_free_result_cont@libmariadb_3 3.0.0
|
||||
mysql_stmt_free_result@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_free_result@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_free_result_start@libmariadb_3 3.0.0
|
||||
mysql_stmt_init@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_init@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_insert_id@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_insert_id@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_more_results@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_more_results@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_next_result_cont@libmariadb_3 3.0.0
|
||||
mysql_stmt_next_result@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_next_result@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_next_result_start@libmariadb_3 3.0.0
|
||||
mysql_stmt_num_rows@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_num_rows@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_param_count@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_param_count@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_param_metadata@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_param_metadata@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_prepare_cont@libmariadb_3 3.0.0
|
||||
mysql_stmt_prepare@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_prepare@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_prepare_start@libmariadb_3 3.0.0
|
||||
mysql_stmt_reset_cont@libmariadb_3 3.0.0
|
||||
mysql_stmt_reset@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_reset@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_reset_start@libmariadb_3 3.0.0
|
||||
mysql_stmt_result_metadata@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_result_metadata@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_row_seek@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_row_seek@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_row_tell@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_row_tell@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_send_long_data_cont@libmariadb_3 3.0.0
|
||||
mysql_stmt_send_long_data@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_send_long_data@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_send_long_data_start@libmariadb_3 3.0.0
|
||||
mysql_stmt_sqlstate@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_sqlstate@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_store_result_cont@libmariadb_3 3.0.0
|
||||
mysql_stmt_store_result@libmariadbclient_18 3.0.0
|
||||
mysql_stmt_store_result@libmysqlclient_18 3.0.0
|
||||
mysql_stmt_store_result_start@libmariadb_3 3.0.0
|
||||
mysql_stmt_warning_count@libmariadb_3 3.0.0
|
||||
mysql_store_result_cont@libmariadb_3 3.0.0
|
||||
mysql_store_result@libmariadbclient_18 3.0.0
|
||||
mysql_store_result@libmysqlclient_18 3.0.0
|
||||
mysql_store_result_start@libmariadb_3 3.0.0
|
||||
mysql_thread_end@libmariadbclient_18 3.0.0
|
||||
mysql_thread_end@libmysqlclient_18 3.0.0
|
||||
mysql_thread_id@libmariadbclient_18 3.0.0
|
||||
mysql_thread_id@libmysqlclient_18 3.0.0
|
||||
mysql_thread_init@libmariadbclient_18 3.0.0
|
||||
mysql_thread_init@libmysqlclient_18 3.0.0
|
||||
mysql_thread_safe@libmariadbclient_18 3.0.0
|
||||
mysql_thread_safe@libmysqlclient_18 3.0.0
|
||||
mysql_use_result@libmariadbclient_18 3.0.0
|
||||
mysql_use_result@libmysqlclient_18 3.0.0
|
||||
mysql_warning_count@libmariadbclient_18 3.0.0
|
||||
mysql_warning_count@libmysqlclient_18 3.0.0
|
||||
42
debian/libmariadb3.symbols.README
vendored
Normal file
42
debian/libmariadb3.symbols.README
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
The libmariadb3.symbols files is used to track the libmariadb3 ABI.
|
||||
|
||||
If a symbol is removed or changed, the Debian build will fail unless the same change has also explicitly been made in the libmariadb3.symbols file.
|
||||
|
||||
If a symbol is added, the Debian build will issue a warning like:
|
||||
|
||||
dh_makeshlibs -O--parallel
|
||||
rm -f debian/libmariadb3/DEBIAN/shlibs
|
||||
echo "libmariadb 3 libmariadb3" >> debian/libmariadb3/DEBIAN/shlibs
|
||||
chmod 0644 -- debian/libmariadb3/DEBIAN/shlibs
|
||||
chown 0:0 -- debian/libmariadb3/DEBIAN/shlibs
|
||||
dpkg-gensymbols -plibmariadb3 -Idebian/libmariadb3.symbols -Pdebian/libmariadb3 -edebian/libmariadb3/usr/lib/x86_64-linux-gnu/libmariadb.so.3
|
||||
dpkg-gensymbols: warning: some new symbols appeared in the symbols file: see diff output below
|
||||
dpkg-gensymbols: warning: debian/libmariadb3/DEBIAN/symbols doesn't match completely debian/libmariadb3.symbols
|
||||
--- debian/libmariadb3.symbols (libmariadb3_10.2.32+maria~sid_amd64)
|
||||
+++ dpkg-gensymbolsUfTky5 2020-02-20 11:27:03.815551573 +0000
|
||||
@@ -12,6 +12,7 @@
|
||||
mariadb_get_charset_by_name@libmariadb_3 3.0.0
|
||||
mariadb_get_charset_by_nr@libmariadb_3 3.0.0
|
||||
mariadb_get_info@libmariadb_3 3.0.0
|
||||
+ mariadb_get_infov@libmariadb_3 10.2.32+maria~sid
|
||||
mariadb_reconnect@libmariadb_3 3.0.0
|
||||
mariadb_rpl_close@libmariadb_3 3.1.0
|
||||
mariadb_rpl_fetch@libmariadb_3 3.1.0
|
||||
|
||||
|
||||
When this happens, please add the symbol to the libmariadb3.symbols file.
|
||||
Unlike the automatic diff above, don't use the server version for the symbols.
|
||||
|
||||
Instead use the client library version, which can be viewed with:
|
||||
|
||||
$ grep 'SET(CPACK_PACKAGE_VERSION_' libmariadb/CMakeLists.txt
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR 3)
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR 1)
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH 7)
|
||||
|
||||
In this example, the line to add would be:
|
||||
|
||||
mariadb_get_infov@libmariadb_3 3.1.7
|
||||
|
||||
|
||||
Remember to not break the ABI in a stable release!
|
||||
1
debian/libmariadbd-dev.install
vendored
1
debian/libmariadbd-dev.install
vendored
@@ -3,4 +3,3 @@ usr/lib/*/libmariadbd.a
|
||||
usr/lib/*/libmariadbd.so
|
||||
usr/lib/*/libmysqld.a
|
||||
usr/lib/*/libmysqld.so
|
||||
usr/lib/*/pkgconfig/mariadb.pc
|
||||
|
||||
5
debian/libmariadbd19.lintian-overrides
vendored
Normal file
5
debian/libmariadbd19.lintian-overrides
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
# These are from stop word list
|
||||
spelling-error-in-binary noone no one [usr/lib/x86_64-linux-gnu/libmariadbd.so.19]
|
||||
spelling-error-in-binary thats that's [usr/lib/x86_64-linux-gnu/libmariadbd.so.19]
|
||||
spelling-error-in-binary theres there's [usr/lib/x86_64-linux-gnu/libmariadbd.so.19]
|
||||
spelling-error-in-binary yuR your [usr/lib/x86_64-linux-gnu/libmariadbd.so.19]
|
||||
1
debian/mariadb-backup.install
vendored
1
debian/mariadb-backup.install
vendored
@@ -1,3 +1,4 @@
|
||||
usr/bin/mariabackup
|
||||
usr/bin/mariadb-backup
|
||||
usr/bin/mbstream
|
||||
usr/share/man/man1/mariabackup.1
|
||||
|
||||
1
debian/mariadb-backup.links
vendored
1
debian/mariadb-backup.links
vendored
@@ -1 +0,0 @@
|
||||
usr/bin/mariadb-backup usr/bin/mariabackup
|
||||
7
debian/mariadb-backup.lintian-overrides
vendored
Normal file
7
debian/mariadb-backup.lintian-overrides
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# These are from stop word list
|
||||
spelling-error-in-binary depricated deprecated [usr/bin/mariadb-backup]
|
||||
spelling-error-in-binary explicite explicit [usr/bin/mariadb-backup]
|
||||
spelling-error-in-binary noone no one [usr/bin/mariadb-backup]
|
||||
spelling-error-in-binary thats that's [usr/bin/mariadb-backup]
|
||||
spelling-error-in-binary theres there's [usr/bin/mariadb-backup]
|
||||
spelling-error-in-binary yuR your [usr/bin/mariadb-backup]
|
||||
1
debian/mariadb-client-core-10.6.links
vendored
1
debian/mariadb-client-core-10.6.links
vendored
@@ -1 +0,0 @@
|
||||
usr/bin/mariadb usr/bin/mysql
|
||||
@@ -1,6 +1,7 @@
|
||||
usr/bin/mariadb
|
||||
usr/bin/mariadb-check
|
||||
usr/bin/my_print_defaults
|
||||
usr/bin/mysql
|
||||
usr/share/man/man1/mariadb-check.1
|
||||
usr/share/man/man1/mariadb.1
|
||||
usr/share/man/man1/my_print_defaults.1
|
||||
2
debian/mariadb-client-core.lintian-overrides
vendored
Normal file
2
debian/mariadb-client-core.lintian-overrides
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# Needed conflict
|
||||
conflicts-with-version mysql-client (<< 5.0.51)
|
||||
@@ -22,6 +22,17 @@ usr/bin/mariadb-slap
|
||||
usr/bin/mariadb-tzinfo-to-sql
|
||||
usr/bin/mariadb-waitpid
|
||||
usr/bin/msql2mysql
|
||||
usr/bin/mysql_find_rows
|
||||
usr/bin/mysql_fix_extensions
|
||||
usr/bin/mysql_waitpid
|
||||
usr/bin/mysqlaccess
|
||||
usr/bin/mysqladmin
|
||||
usr/bin/mysqlcheck
|
||||
usr/bin/mysqldump
|
||||
usr/bin/mysqldumpslow
|
||||
usr/bin/mysqlimport
|
||||
usr/bin/mysqlshow
|
||||
usr/bin/mysqlslap
|
||||
usr/bin/mytop
|
||||
usr/bin/perror
|
||||
usr/bin/replace
|
||||
@@ -1,5 +1,3 @@
|
||||
usr/bin/mariadb-access usr/bin/mysqlaccess
|
||||
usr/bin/mariadb-admin usr/bin/mysqladmin
|
||||
usr/bin/mariadb-check usr/bin/mariadb-analyze
|
||||
usr/bin/mariadb-check usr/bin/mariadb-optimize
|
||||
usr/bin/mariadb-check usr/bin/mariadb-repair
|
||||
@@ -8,15 +6,7 @@ usr/bin/mariadb-check usr/bin/mysqlanalyze
|
||||
usr/bin/mariadb-check usr/bin/mysqlcheck
|
||||
usr/bin/mariadb-check usr/bin/mysqloptimize
|
||||
usr/bin/mariadb-check usr/bin/mysqlrepair
|
||||
usr/bin/mariadb-dump usr/bin/mysqldump
|
||||
usr/bin/mariadb-dumpslow usr/bin/mysqldumpslow
|
||||
usr/bin/mariadb-find-rows usr/bin/mysql_find_rows
|
||||
usr/bin/mariadb-fix-extensions usr/bin/mysql_fix_extensions
|
||||
usr/bin/mariadb-import usr/bin/mysqlimport
|
||||
usr/bin/mariadb-report usr/bin/mysqlreport
|
||||
usr/bin/mariadb-show usr/bin/mysqlshow
|
||||
usr/bin/mariadb-slap usr/bin/mysqlslap
|
||||
usr/bin/mariadb-waitpid usr/bin/mysql_waitpid
|
||||
usr/share/man/man1/mariadb-check.1.gz usr/share/man/man1/mariadb-analyze.1.gz
|
||||
usr/share/man/man1/mariadb-check.1.gz usr/share/man/man1/mariadb-optimize.1.gz
|
||||
usr/share/man/man1/mariadb-check.1.gz usr/share/man/man1/mariadb-repair.1.gz
|
||||
8
debian/mariadb-client.lintian-overrides
vendored
Normal file
8
debian/mariadb-client.lintian-overrides
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# Mainly for BSD family to make sure that perl is found
|
||||
incorrect-path-for-interpreter /usr/bin/env perl != /usr/bin/perl [usr/bin/mytop]
|
||||
|
||||
# Used to determine which shell we have. False-positive situation
|
||||
bash-term-in-posix-shell '`echo "testing\c"' [usr/bin/mariadb-secure-installation:191]
|
||||
|
||||
# Needed outside conflict
|
||||
conflicts-with-version mysql-client (<< 5.0.51)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user