diff --git a/.clang-format b/.clang-format index 3814faf72..3d49f8567 100644 --- a/.clang-format +++ b/.clang-format @@ -85,7 +85,7 @@ BreakConstructorInitializersBeforeComma: false BreakConstructorInitializers: BeforeColon BreakAfterJavaFieldAnnotations: false BreakStringLiterals: true -CommentPragmas: '(^ IWYU pragma:)|(^\\copydoc )|(^ ?\\n)' +CommentPragmas: '(^ IWYU pragma:)|(^\\copydoc )|(^ ?\\n)|(^ diff --git a/doc/mrdocs.yml b/doc/mrdocs.yml new file mode 100644 index 000000000..60d2a58e1 --- /dev/null +++ b/doc/mrdocs.yml @@ -0,0 +1,26 @@ +# +# Copyright (c) 2019-2024 Ruben Perez Hidalgo (rubenperez038 at gmail dot com) +# +# Distributed under the Boost Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +# + +source-root: ../include +compilation-database: ./CMakeLists.txt +multipage: true +include-symbols: + - "boost::mysql::**" +exclude-symbols: + - boost::mysql::format_context_base::format_context_base + - boost::mysql::format_context_base::assign + - "boost::mysql::detail::**" + - "boost::mysql::mysql_server_errc" + - "boost::mysql::mariadb_server_errc" + - "boost::mysql::mysql_collations" + - "boost::mysql::mariadb_collations" + - "boost::mysql::formatter<*>" +implementation-defined: + - "boost::mysql::impl_defined::**" # Matching symbols need to not be excluded. Including all detail is slow and causes trouble +verbose: true +use-system-libc: true +base-url: https://github.com/boostorg/mysql/blob/master/include/ diff --git a/doc/package-lock.json b/doc/package-lock.json new file mode 100644 index 000000000..041a7dc71 --- /dev/null +++ b/doc/package-lock.json @@ -0,0 +1,1867 @@ +{ + "name": "doc", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@asciidoctor/tabs": "^1.0.0-beta.6", + "@cppalliance/antora-cpp-reference-extension": "^0.0.6", + "@cppalliance/antora-cpp-tagfiles-extension": "^0.0.4", + "@cppalliance/antora-playbook-macros-extension": "^0.0.2", + "@cppalliance/asciidoctor-boost-links": "^0.0.2", + "antora": "^3.1.10" + } + }, + "node_modules/@antora/asciidoc-loader": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.1.10.tgz", + "integrity": "sha512-np0JkOV37CK7V4eDZUZXf4fQuCKYW3Alxl8FlyzBevXi2Ujv29O82JLbHbv1cyTsvGkGNNB+gzJIx9XBsQ7+Nw==", + "license": "MPL-2.0", + "dependencies": { + "@antora/logger": "3.1.10", + "@antora/user-require-helper": "~3.0", + "@asciidoctor/core": "~2.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/cli": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.1.10.tgz", + "integrity": "sha512-gp8u9aVM0w1DtWSsB5PwvEfFYKrooPENLhN58RAfdgTrcsTsWw+CDysFZPgEaHB0Y1ZbanR82ZH/f6JVKGcZfQ==", + "license": "MPL-2.0", + "dependencies": { + "@antora/logger": "3.1.10", + "@antora/playbook-builder": "3.1.10", + "@antora/user-require-helper": "~3.0", + "commander": "~11.1" + }, + "bin": { + "antora": "bin/antora" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/content-aggregator": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.1.10.tgz", + "integrity": "sha512-OT6ZcCA7LrtNfrAZUr3hFh+Z/1isKpsfnqFjCDC66NEMqIyzJO99jq0CM66rYlYhyX7mb5BwEua8lHcwpOXNow==", + "license": "MPL-2.0", + "dependencies": { + "@antora/expand-path-helper": "~3.0", + "@antora/logger": "3.1.10", + "@antora/user-require-helper": "~3.0", + "braces": "~3.0", + "cache-directory": "~2.0", + "fast-glob": "~3.3", + "hpagent": "~1.2", + "isomorphic-git": "~1.25", + "js-yaml": "~4.1", + "multi-progress": "~4.0", + "picomatch": "~4.0", + "progress": "~2.0", + "should-proxy": "~1.0", + "simple-get": "~4.0", + "vinyl": "~3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/content-aggregator/node_modules/@antora/expand-path-helper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-3.0.0.tgz", + "integrity": "sha512-7PdEIhk97v85/CSm3HynCsX14TR6oIVz1s233nNLsiWubE8tTnpPt4sNRJR+hpmIZ6Bx9c6QDp3XIoiyu/WYYA==", + "license": "MPL-2.0", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/content-aggregator/node_modules/isomorphic-git": { + "version": "1.25.10", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.25.10.tgz", + "integrity": "sha512-IxGiaKBwAdcgBXwIcxJU6rHLk+NrzYaaPKXXQffcA0GW3IUrQXdUPDXDo+hkGVcYruuz/7JlGBiuaeTCgIgivQ==", + "license": "MIT", + "dependencies": { + "async-lock": "^1.4.1", + "clean-git-ref": "^2.0.1", + "crc-32": "^1.2.0", + "diff3": "0.0.3", + "ignore": "^5.1.4", + "minimisted": "^2.0.0", + "pako": "^1.0.10", + "pify": "^4.0.1", + "readable-stream": "^3.4.0", + "sha.js": "^2.4.9", + "simple-get": "^4.0.1" + }, + "bin": { + "isogit": "cli.cjs" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@antora/content-classifier": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.1.10.tgz", + "integrity": "sha512-3JJl4IIiTX00v/MirK603NoqIcHjGYAaRWt3Q4U03tI1Fv2Aho/ypO3FE45069jFf0Dx2uDJfp5kapb9gaIjdQ==", + "license": "MPL-2.0", + "dependencies": { + "@antora/asciidoc-loader": "3.1.10", + "@antora/logger": "3.1.10", + "mime-types": "~2.1", + "vinyl": "~3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/document-converter": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.1.10.tgz", + "integrity": "sha512-qi9ctgcKal8tZtWflVo66w+4zCJoBmUKRV+eA9aRRR09KDdU9r514vu1adWNgniPppISr90zD13V5l2JUy/2CQ==", + "license": "MPL-2.0", + "dependencies": { + "@antora/asciidoc-loader": "3.1.10" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/expand-path-helper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-2.0.0.tgz", + "integrity": "sha512-CSMBGC+tI21VS2kGW3PV7T2kQTM5eT3f2GTPVLttwaNYbNxDve08en/huzszHJfxo11CcEs26Ostr0F2c1QqeA==", + "license": "MPL-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@antora/file-publisher": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.1.10.tgz", + "integrity": "sha512-DPR/0d1P+kr3qV4T0Gh81POEO/aCmNWIp/oLUYAhr0HHOcFzgpTUUoLStgcYynZPFRIB7EYKSab+oYSCK17DGA==", + "license": "MPL-2.0", + "dependencies": { + "@antora/expand-path-helper": "~3.0", + "@antora/user-require-helper": "~3.0", + "vinyl": "~3.0", + "yazl": "~2.5" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/file-publisher/node_modules/@antora/expand-path-helper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-3.0.0.tgz", + "integrity": "sha512-7PdEIhk97v85/CSm3HynCsX14TR6oIVz1s233nNLsiWubE8tTnpPt4sNRJR+hpmIZ6Bx9c6QDp3XIoiyu/WYYA==", + "license": "MPL-2.0", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/logger": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.1.10.tgz", + "integrity": "sha512-WSuIxEP2tVrhWtTj/sIrwBDjpi4ldB/1Kpiu4PXmY4/qeWP8thW6u8nXdwdDcWss5zqkZWjourvWKwVq7y8Wjg==", + "license": "MPL-2.0", + "dependencies": { + "@antora/expand-path-helper": "~3.0", + "pino": "~9.2", + "pino-pretty": "~11.2", + "sonic-boom": "~4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/logger/node_modules/@antora/expand-path-helper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-3.0.0.tgz", + "integrity": "sha512-7PdEIhk97v85/CSm3HynCsX14TR6oIVz1s233nNLsiWubE8tTnpPt4sNRJR+hpmIZ6Bx9c6QDp3XIoiyu/WYYA==", + "license": "MPL-2.0", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/navigation-builder": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.1.10.tgz", + "integrity": "sha512-aLMK49nYsSB3mEZbLkmUXDAUYmscv2AFWu+5c3eqVGkQ6Wgyd79WQ6Bz3/TN9YqkzGL+PqGs0G39F0VQzD23Hw==", + "license": "MPL-2.0", + "dependencies": { + "@antora/asciidoc-loader": "3.1.10" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/page-composer": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.1.10.tgz", + "integrity": "sha512-JoEg8J8HVsnPmAgUrYSGzf0C8rQefXyCi/18ucy0utyfUvlJNsZvUbGUPx62Het9p0JP0FkAz2MTLyDlNdArVg==", + "license": "MPL-2.0", + "dependencies": { + "@antora/logger": "3.1.10", + "handlebars": "~4.7", + "require-from-string": "~2.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/playbook-builder": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.1.10.tgz", + "integrity": "sha512-UB8UmRYfkKgActTUlotdVS4FKGjaZgTnSXE7Fns1xb3/3HRanWvI+Yze1OmCkGC33cTpoQFnSYp7ySEH8LaiBw==", + "license": "MPL-2.0", + "dependencies": { + "@iarna/toml": "~2.2", + "convict": "~6.2", + "js-yaml": "~4.1", + "json5": "~2.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/redirect-producer": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.1.10.tgz", + "integrity": "sha512-IbWJGh6LmsxJQ821h0B9JfooofFZBgFLZxsbp/IoTLkBFGLFAY5tDRvB6rvubfNLRoSjM8VjEUXGqVLlwZOb+g==", + "license": "MPL-2.0", + "dependencies": { + "vinyl": "~3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/site-generator": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.1.10.tgz", + "integrity": "sha512-NCULYtwUjIyr5FGCymhfG/zDVUmZ6pfmCPorka8mAzo4/GDx1T7bgaRL9rEIyf2AMqcm7apQiAz03mpU4kucsw==", + "license": "MPL-2.0", + "dependencies": { + "@antora/asciidoc-loader": "3.1.10", + "@antora/content-aggregator": "3.1.10", + "@antora/content-classifier": "3.1.10", + "@antora/document-converter": "3.1.10", + "@antora/file-publisher": "3.1.10", + "@antora/logger": "3.1.10", + "@antora/navigation-builder": "3.1.10", + "@antora/page-composer": "3.1.10", + "@antora/playbook-builder": "3.1.10", + "@antora/redirect-producer": "3.1.10", + "@antora/site-mapper": "3.1.10", + "@antora/site-publisher": "3.1.10", + "@antora/ui-loader": "3.1.10", + "@antora/user-require-helper": "~3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/site-mapper": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.1.10.tgz", + "integrity": "sha512-KY1j/y0uxC2Y7RAo4r4yKv9cgFm8aZoRylZXEODJnwj3tffbZ2ZdRzSWHp6fN0QX/Algrr9JNd9CWrjcj2f3Zw==", + "license": "MPL-2.0", + "dependencies": { + "@antora/content-classifier": "3.1.10", + "vinyl": "~3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/site-publisher": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.1.10.tgz", + "integrity": "sha512-G4xcUWvgth8oeEQwiu9U1cE0miQtYHwKHOobUbDBt2Y6LlC5H31zQQmAyvMwTsGRlvYRgLVtG6j9d6JBwQ6w9Q==", + "license": "MPL-2.0", + "dependencies": { + "@antora/file-publisher": "3.1.10" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/ui-loader": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.1.10.tgz", + "integrity": "sha512-H1f5wI5a5HjLuE/Wexvc8NZy8w83Bhqjka7t1DbwOOqP+LyxFGLx/QbBVKdTtgFNDHVMtNBlplQq0ixeoTSh0A==", + "license": "MPL-2.0", + "dependencies": { + "@antora/expand-path-helper": "~3.0", + "braces": "~3.0", + "cache-directory": "~2.0", + "fast-glob": "~3.3", + "hpagent": "~1.2", + "js-yaml": "~4.1", + "picomatch": "~4.0", + "should-proxy": "~1.0", + "simple-get": "~4.0", + "vinyl": "~3.0", + "yauzl": "~3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/ui-loader/node_modules/@antora/expand-path-helper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-3.0.0.tgz", + "integrity": "sha512-7PdEIhk97v85/CSm3HynCsX14TR6oIVz1s233nNLsiWubE8tTnpPt4sNRJR+hpmIZ6Bx9c6QDp3XIoiyu/WYYA==", + "license": "MPL-2.0", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/user-require-helper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/user-require-helper/-/user-require-helper-3.0.0.tgz", + "integrity": "sha512-KIXb8WYhnrnwH7Jj21l1w+et9k5GvcgcqvLOwxqWLEd0uVZOiMFdqFjqbVm3M+zcrs1JXWMeh2LLvxBbQs3q/Q==", + "license": "MPL-2.0", + "dependencies": { + "@antora/expand-path-helper": "~3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@antora/user-require-helper/node_modules/@antora/expand-path-helper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-3.0.0.tgz", + "integrity": "sha512-7PdEIhk97v85/CSm3HynCsX14TR6oIVz1s233nNLsiWubE8tTnpPt4sNRJR+hpmIZ6Bx9c6QDp3XIoiyu/WYYA==", + "license": "MPL-2.0", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@asciidoctor/core": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.8.tgz", + "integrity": "sha512-oozXk7ZO1RAd/KLFLkKOhqTcG4GO3CV44WwOFg2gMcCsqCUTarvMT7xERIoWW2WurKbB0/ce+98r01p8xPOlBw==", + "license": "MIT", + "dependencies": { + "asciidoctor-opal-runtime": "0.3.3", + "unxhr": "1.0.1" + }, + "engines": { + "node": ">=8.11", + "npm": ">=5.0.0", + "yarn": ">=1.1.0" + } + }, + "node_modules/@asciidoctor/tabs": { + "version": "1.0.0-beta.6", + "resolved": "https://registry.npmjs.org/@asciidoctor/tabs/-/tabs-1.0.0-beta.6.tgz", + "integrity": "sha512-gGZnW7UfRXnbiyKNd9PpGKtSuD8+DsqaaTSbQ1dHVkZ76NaolLhdQg8RW6/xqN3pX1vWZEcF4e81+Oe9rNRWxg==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@cppalliance/antora-cpp-reference-extension": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@cppalliance/antora-cpp-reference-extension/-/antora-cpp-reference-extension-0.0.6.tgz", + "integrity": "sha512-Weud5Cn9KAoU3+fSA4IZM7THAEA8VPhclH7EfU6SiKSp/Iy92vSItpZioTmVrn0DIVo9tIxxrJXBp5GpSFk6hg==", + "license": "BSL-1.0", + "dependencies": { + "@antora/expand-path-helper": "^2.0.0", + "axios": "^1.7.2", + "cache-directory": "^2.0.0", + "fast-glob": "^3.3.2", + "isomorphic-git": "^1.27.1", + "js-yaml": "^4.1.0", + "semver": "^7.6.3" + } + }, + "node_modules/@cppalliance/antora-cpp-tagfiles-extension": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@cppalliance/antora-cpp-tagfiles-extension/-/antora-cpp-tagfiles-extension-0.0.4.tgz", + "integrity": "sha512-dzb/QDZ+a5yk7vaEb2jNQ5p02XjA6LfPmLRWcxqb/MvpA9DHZKsPunFDy+yqY3eGy9zqNppunljy9TZUbeoczg==", + "license": "BSL-1.0", + "dependencies": { + "@antora/expand-path-helper": "^2.0.0", + "cache-directory": "^2.0.0", + "fast-xml-parser": "^4.4.1", + "he": "^1.2.0", + "isomorphic-git": "^1.27.1" + } + }, + "node_modules/@cppalliance/antora-playbook-macros-extension": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@cppalliance/antora-playbook-macros-extension/-/antora-playbook-macros-extension-0.0.2.tgz", + "integrity": "sha512-0R3DSbMfADQs4E74N2bOLXDiCFth5ze1jVs8HSgpZ7U5vCayudhc77Fj/7yzy2iWvup9VfiE9QvoE5hIVxJEVg==", + "license": "BSL-1.0", + "dependencies": { + "process": "^0.11.10" + } + }, + "node_modules/@cppalliance/asciidoctor-boost-links": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@cppalliance/asciidoctor-boost-links/-/asciidoctor-boost-links-0.0.2.tgz", + "integrity": "sha512-9Lg1s955QeBO/xosbJbd+P4qJo1CkC0MvkiAIDZoqf10g8KQpMNy88NBAWji5YcNwXcrr8KP83GEweKMNDBMsw==", + "license": "BSL-1.0" + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "license": "ISC" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/antora": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/antora/-/antora-3.1.10.tgz", + "integrity": "sha512-FcXPfqxi5xrGF2fTrFiiau45q8w0bzRcnfk97nxvpvztPDHX/lUOrBF/GpaGl1JT5K085VkI3/dbxTlvWK1jjw==", + "license": "MPL-2.0", + "dependencies": { + "@antora/cli": "3.1.10", + "@antora/site-generator": "3.1.10" + }, + "bin": { + "antora": "bin/antora" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/asciidoctor-opal-runtime": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/asciidoctor-opal-runtime/-/asciidoctor-opal-runtime-0.3.3.tgz", + "integrity": "sha512-/CEVNiOia8E5BMO9FLooo+Kv18K4+4JBFRJp8vUy/N5dMRAg+fRNV4HA+o6aoSC79jVU/aT5XvUpxSxSsTS8FQ==", + "license": "MIT", + "dependencies": { + "glob": "7.1.3", + "unxhr": "1.0.1" + }, + "engines": { + "node": ">=8.11" + } + }, + "node_modules/async-lock": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.1.tgz", + "integrity": "sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/axios": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "license": "Apache-2.0" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/bare-events": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "license": "Apache-2.0", + "optional": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/cache-directory": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cache-directory/-/cache-directory-2.0.0.tgz", + "integrity": "sha512-7YKEapH+2Uikde8hySyfobXBqPKULDyHNl/lhKm7cKf/GJFdG/tU/WpLrOg2y9aUrQrWUilYqawFIiGJPS6gDA==", + "license": "LGPL-3.0+", + "dependencies": { + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clean-git-ref": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/clean-git-ref/-/clean-git-ref-2.0.1.tgz", + "integrity": "sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==", + "license": "Apache-2.0" + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/convict": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/convict/-/convict-6.2.4.tgz", + "integrity": "sha512-qN60BAwdMVdofckX7AlohVJ2x9UvjTNoKVXCL2LxFk1l7757EJqf1nySdMkPQer0bt8kQ5lQiyZ9/2NvrFBuwQ==", + "license": "Apache-2.0", + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "yargs-parser": "^20.2.7" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/diff3": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/diff3/-/diff3-0.0.3.tgz", + "integrity": "sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==", + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-copy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", + "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", + "license": "MIT" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT" + }, + "node_modules/fast-xml-parser": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz", + "integrity": "sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/help-me": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", + "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", + "license": "MIT" + }, + "node_modules/hpagent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", + "integrity": "sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isomorphic-git": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.29.0.tgz", + "integrity": "sha512-zWGqk8901cicvVEhVpN76AwKrS/TzHak2NQCtNXIAavpMIy/yqh+d/JtC9A8AUKZAauUdOyEWKI29tuCLAL+Zg==", + "license": "MIT", + "dependencies": { + "async-lock": "^1.4.1", + "clean-git-ref": "^2.0.1", + "crc-32": "^1.2.0", + "diff3": "0.0.3", + "ignore": "^5.1.4", + "minimisted": "^2.0.0", + "pako": "^1.0.10", + "path-browserify": "^1.0.1", + "pify": "^4.0.1", + "readable-stream": "^3.4.0", + "sha.js": "^2.4.9", + "simple-get": "^4.0.1" + }, + "bin": { + "isogit": "cli.cjs" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimisted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz", + "integrity": "sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5" + } + }, + "node_modules/multi-progress": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multi-progress/-/multi-progress-4.0.0.tgz", + "integrity": "sha512-9zcjyOou3FFCKPXsmkbC3ethv51SFPoA4dJD6TscIp2pUmy26kBDZW6h9XofPELrzseSkuD7r0V+emGEeo39Pg==", + "license": "MIT", + "peerDependencies": { + "progress": "^2.0.0" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pino": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.2.0.tgz", + "integrity": "sha512-g3/hpwfujK5a4oVbaefoJxezLzsDgLcNJeITvC6yrfwYeT9la+edCK42j5QpEQSQCZgTKapXvnQIdgZwvRaZug==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.2.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^3.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "license": "MIT", + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/pino-abstract-transport/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/pino-pretty": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-11.2.2.tgz", + "integrity": "sha512-2FnyGir8nAJAqD3srROdrF1J5BIcMT4nwj7hHSc60El6Uxlym00UbCCd8pYIterstVBFlMyF1yFV8XdGIPbj4A==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^3.0.2", + "fast-safe-stringify": "^2.1.1", + "help-me": "^5.0.0", + "joycon": "^3.1.1", + "minimist": "^1.2.6", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.0.0", + "pump": "^3.0.0", + "readable-stream": "^4.0.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^4.0.1", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-pretty/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "license": "MIT" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", + "license": "MIT" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "license": "MIT" + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "license": "ISC" + }, + "node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/secure-json-parse": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", + "license": "BSD-3-Clause" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/should-proxy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/should-proxy/-/should-proxy-1.0.4.tgz", + "integrity": "sha512-RPQhIndEIVUCjkfkQ6rs6sOR6pkxJWCNdxtfG5pP0RVgUYbK5911kLTF0TNcCC0G3YCGd492rMollFT2aTd9iQ==", + "license": "MIT" + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/sonic-boom": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", + "integrity": "sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/streamx": { + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.1.tgz", + "integrity": "sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==", + "license": "MIT", + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", + "license": "MIT" + }, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "license": "MIT", + "dependencies": { + "streamx": "^2.12.5" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "license": "MIT", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unxhr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unxhr/-/unxhr-1.0.1.tgz", + "integrity": "sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg==", + "license": "MIT", + "engines": { + "node": ">=8.11" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "license": "MIT", + "dependencies": { + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.1.3.tgz", + "integrity": "sha512-JCCdmlJJWv7L0q/KylOekyRaUrdEoUxWkWVcgorosTROCFWiS9p2NNPE9Yb91ak7b1N5SxAZEliWpspbZccivw==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3" + } + } + } +} diff --git a/doc/package.json b/doc/package.json new file mode 100644 index 000000000..ca9923142 --- /dev/null +++ b/doc/package.json @@ -0,0 +1,10 @@ +{ + "dependencies": { + "@asciidoctor/tabs": "^1.0.0-beta.6", + "@cppalliance/antora-cpp-reference-extension": "^0.0.6", + "@cppalliance/antora-cpp-tagfiles-extension": "^0.0.4", + "@cppalliance/antora-playbook-macros-extension": "^0.0.2", + "@cppalliance/asciidoctor-boost-links": "^0.0.2", + "antora": "^3.1.10" + } +} \ No newline at end of file diff --git a/include/boost/mysql/any_address.hpp b/include/boost/mysql/any_address.hpp index d5c13ab69..4fa54db26 100644 --- a/include/boost/mysql/any_address.hpp +++ b/include/boost/mysql/any_address.hpp @@ -51,7 +51,7 @@ struct host_and_port * \brief Contains a UNIX-socket domain path. * \details * This type is defined in all systems, regardless of their UNIX socket support. - * \n + * * This is an owning type with value semantics. */ struct unix_path @@ -69,14 +69,13 @@ struct unix_path * A variant-like type that can represent the network address of a MySQL server, * regardless of the transport type being used. It can contain either a host * and port (to connect using TCP) or a UNIX path (to connect using UNIX domain sockets). - * \n + * * This class may be extended in the future to accommodate Windows named pipes. - * \n + * * This type has value semantics: it is owning and regular. */ class any_address { -#ifndef BOOST_MYSQL_DOXYGEN struct { address_type type; @@ -89,7 +88,6 @@ class any_address { } friend struct detail::access; -#endif public: /** @@ -231,12 +229,12 @@ class any_address * Destroys the current contained object and constructs a new * host and port from the passed components. This function can * change the underlying type of object held by `*this`. - * \n + * * The constructed object has `this->type() == address_type::host_and_port`, * `this->hostname() == hostname` and `this->port() == port`. - * \n + * * An empty hostname is equivalent to `localhost`. - * \n + * * \par Exception safety * Basic guarantee. Memory allocations may throw. * \par Object lifetimes @@ -255,10 +253,10 @@ class any_address * Destroys the current contained object and constructs a new * UNIX socket path from the passed value. This function can * change the underlying type of object held by `*this`. - * \n + * * The constructed object has `this->type() == address_type::unix_path` and * `this->unix_socket_path() == path`. - * \n + * * \par Exception safety * Basic guarantee. Memory allocations may throw. * \par Object lifetimes diff --git a/include/boost/mysql/any_connection.hpp b/include/boost/mysql/any_connection.hpp index 2324b3031..fa2eee126 100644 --- a/include/boost/mysql/any_connection.hpp +++ b/include/boost/mysql/any_connection.hpp @@ -62,12 +62,12 @@ struct any_connection_params * \details * Relevant only for SSL connections (those that result on \ref * any_connection::uses_ssl returning `true`). - * \n + * * If the connection is configured to use TLS, an internal `asio::ssl::stream` * object will be created. If this member is set to a non-null value, * this internal object will be initialized using the passed context. * This is the only way to configure TLS options in `any_connection`. - * \n + * * If the connection is configured to use TLS and this member is `nullptr`, * an internal `asio::ssl::context` object with suitable default options * will be created. @@ -90,16 +90,17 @@ struct any_connection_params * \details * Attempting to read or write a protocol packet bigger than this size * will fail with a \ref client_errc::max_buffer_size_exceeded error. - * \n - * This effectively means: \n - * - Each request sent to the server must be smaller than this value. - * - Each individual row received from the server must be smaller than this value. - * Note that when using `execute` or `async_execute`, results objects may - * allocate memory beyond this limit if the total number of rows is high. - * \n + * + * This effectively means: + * + * \li Each request sent to the server must be smaller than this value. + * \li Each individual row received from the server must be smaller than this value. + * Note that when using `execute` or `async_execute`, results objects may + * allocate memory beyond this limit if the total number of rows is high. + * * If you need to send or receive larger packets, you may need to adjust - * your server's `max_allowed_packet` + * your server's + * max_allowed_packet * system variable, too. */ std::size_t max_buffer_size{0x4000000}; @@ -122,11 +123,11 @@ struct any_connection_params * * Compared to \ref connection, this class: * - * - Is type-erased. The type of the connection doesn't depend on the transport being used. - * - Is easier to connect, as \ref connect and \ref async_connect handle hostname resolution. - * - Can always be re-connected after being used or encountering an error. - * - Always uses `asio::any_io_executor`. - * - Has the same level of performance. + * \li Is type-erased. The type of the connection doesn't depend on the transport being used. + * \li Is easier to connect, as \ref connect and \ref async_connect handle hostname resolution. + * \li Can always be re-connected after being used or encountering an error. + * \li Always uses `asio::any_io_executor`. + * \li Has the same level of performance. * * This is a move-only type. * @@ -136,18 +137,18 @@ struct any_connection_params * and have the expected exceptions thrown on error. * * \par Thread safety - * Distinct objects: safe. \n - * Shared objects: unsafe. \n - * This class is not thread-safe: for a single object, if you + * Distinct objects: safe. + * + * Shared objects: unsafe. + * + * This class is *not thread-safe*: for a single object, if you * call its member functions concurrently from separate threads, you will get a race condition. */ class any_connection { detail::connection_impl impl_; -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; -#endif BOOST_MYSQL_DECL static std::unique_ptr create_engine(asio::any_io_executor ex, asio::ssl::context* ctx); @@ -164,11 +165,11 @@ class any_connection * \details * The resulting connection has `this->get_executor() == ex`. Any internally required I/O objects * will be constructed using this executor. - * \n + * * You can configure extra parameters, like the SSL context and buffer sizes, by passing * an \ref any_connection_params object to this constructor. */ - any_connection(boost::asio::any_io_executor ex, any_connection_params params = {}) + any_connection(asio::any_io_executor ex, any_connection_params params = {}) : any_connection(create_engine(std::move(ex), params.ssl_context), params) { } @@ -178,10 +179,10 @@ class any_connection * \details * The resulting connection has `this->get_executor() == ctx.get_executor()`. * Any internally required I/O objects will be constructed using this executor. - * \n + * * You can configure extra parameters, like the SSL context and buffer sizes, by passing * an \ref any_connection_params object to this constructor. - * \n + * * This function participates in overload resolution only if `ExecutionContext` * satisfies the `ExecutionContext` requirements imposed by Boost.Asio. */ @@ -238,7 +239,7 @@ class any_connection * \details * This function can be used to determine whether you are using a SSL * connection or not when using SSL negotiation. - * \n + * * This function always returns `false` * for connections that haven't been established yet. If the connection establishment fails, * the return value is undefined. @@ -252,20 +253,20 @@ class any_connection * \brief Returns whether backslashes are being treated as escape sequences. * \details * By default, the server treats backslashes in string values as escape characters. - * This behavior can be disabled by activating the `NO_BACKSLASH_ESCAPES` + * This behavior can be disabled by activating the + * NO_BACKSLASH_ESCAPES * SQL mode. - * \n + * * Every time an operation involving server communication completes, the server reports whether * this mode was activated or not as part of the response. Connections store this information * and make it available through this function. - * \n + * * \li If backslash are treated like escape characters, returns `true`. * \li If `NO_BACKSLASH_ESCAPES` has been activated, returns `false`. * \li If connection establishment hasn't happened yet, returns `true`. * \li Calling this function while an async operation that changes backslash behavior * is outstanding may return `true` or `false`. - * \n + * * This function does not involve server communication. * * \par Exception safety @@ -280,8 +281,9 @@ class any_connection * Deficiencies in the protocol can cause the character set to be unknown, though. * When the character set is known, this function returns * the character set currently in use. Otherwise, returns \ref client_errc::unknown_character_set. - * \n - * The following functions can modify the return value of this function: \n + * + * The following functions can modify the return value of this function: + * * \li Prior to connection, the character set is always unknown. * \li \ref connect and \ref async_connect may set the current character set * to a known value, depending on the requested collation. @@ -355,7 +357,7 @@ class any_connection * \brief Establishes a connection to a MySQL server. * \details * This function performs the following: - * \n + * * \li If a connection has already been established (by a previous call to \ref connect * or \ref async_connect), closes it at the transport layer (by closing any underlying socket) * and discards any protocol state associated to it. (If you require @@ -368,11 +370,11 @@ class any_connection * \li Performs the MySQL handshake to establish a session. If the * connection is configured to use TLS, the TLS handshake is performed as part of this step. * \li If any of the above steps fail, the TCP or UNIX socket connection is closed. - * \n + * * You can configure some options using the \ref connect_params struct. - * \n + * * The decision to use TLS or not is performed using the following: - * \n + * * \li If the transport is not TCP (`params.server_address.type() != address_type::host_and_port`), * the connection will never use TLS. * \li If the transport is TCP, and `params.ssl == ssl_mode::disable`, the connection will not use TLS. @@ -381,7 +383,7 @@ class any_connection * \li If the transport is TCP, and `params.ssl == ssl_mode::require`, the connection will always use TLS. * If the server doesn't support it, the operation will fail with \ref * client_errc::server_doesnt_support_ssl. - * \n + * * If `params.connection_collation` is within a set of well-known collations, this function * sets the current character set, such that \ref current_character_set returns a non-null value. * The default collation (`utf8mb4_general_ci`) is the only one guaranteed to be in the set of well-known @@ -450,9 +452,9 @@ class any_connection * If a string, it must be encoded using the connection's character set. * Any string parameters provided to \ref statement::bind should also be encoded * using the connection's character set. - * \n + * * After this operation completes successfully, `result.has_value() == true`. - * \n + * * Metadata in `result` will be populated according to `this->meta_mode()`. */ template @@ -476,7 +478,7 @@ class any_connection * \par Object lifetimes * If `CompletionToken` is a deferred completion token (e.g. `use_awaitable`), the caller is * responsible for managing `req`'s validity following these rules: - * \n + * * \li If `req` is `string_view`, the string pointed to by `req` * must be kept alive by the caller until the operation is initiated. * \li If `req` is a \ref bound_statement_tuple, and any of the parameters is a reference @@ -501,7 +503,7 @@ class any_connection template < BOOST_MYSQL_EXECUTION_REQUEST ExecutionRequest, BOOST_MYSQL_RESULTS_TYPE ResultsType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_execute(ExecutionRequest&& req, ResultsType& result, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_execute_t) @@ -518,7 +520,7 @@ class any_connection template < BOOST_MYSQL_EXECUTION_REQUEST ExecutionRequest, BOOST_MYSQL_RESULTS_TYPE ResultsType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_execute( ExecutionRequest&& req, @@ -541,24 +543,24 @@ class any_connection * Writes the execution request and reads the initial server response and the column * metadata, but not the generated rows or subsequent resultsets, if any. * `st` may be either an \ref execution_state or \ref static_execution_state object. - * \n + * * After this operation completes, `st` will have * \ref execution_state::meta populated. * Metadata will be populated according to `this->meta_mode()`. - * \n - * If the operation generated any rows or more than one resultset, these must be read (by using + * + * If the operation generated any rows or more than one resultset, these *must* be read (by using * \ref read_some_rows and \ref read_resultset_head) before engaging in any further network operation. * Otherwise, the results are undefined. - * \n + * * req may be either a type convertible to \ref string_view containing valid SQL * or a bound prepared statement, obtained by calling \ref statement::bind. * If a string, it must be encoded using the connection's character set. * Any string parameters provided to \ref statement::bind should also be encoded * using the connection's character set. - * \n + * * When using the static interface, this function will detect schema mismatches for the first * resultset. Further errors may be detected by \ref read_resultset_head and \ref read_some_rows. - * \n + * */ template < BOOST_MYSQL_EXECUTION_REQUEST ExecutionRequest, @@ -585,7 +587,7 @@ class any_connection * \par Object lifetimes * If `CompletionToken` is a deferred completion token (e.g. `use_awaitable`), the caller is * responsible for managing `req`'s validity following these rules: - * \n + * * \li If `req` is `string_view`, the string pointed to by `req` * must be kept alive by the caller until the operation is initiated. * \li If `req` is a \ref bound_statement_tuple, and any of the parameters is a reference @@ -610,7 +612,7 @@ class any_connection template < BOOST_MYSQL_EXECUTION_REQUEST ExecutionRequest, BOOST_MYSQL_EXECUTION_STATE_TYPE ExecutionStateType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_start_execution(ExecutionRequest&& req, ExecutionStateType& st, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_start_execution_t< @@ -630,7 +632,7 @@ class any_connection template < BOOST_MYSQL_EXECUTION_REQUEST ExecutionRequest, BOOST_MYSQL_EXECUTION_STATE_TYPE ExecutionStateType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_start_execution( ExecutionRequest&& req, @@ -655,7 +657,7 @@ class any_connection * \brief Prepares a statement server-side. * \details * `stmt` should be encoded using the connection's character set. - * \n + * * The returned statement has `valid() == true`. */ statement prepare_statement(string_view stmt, error_code& err, diagnostics& diag) @@ -695,7 +697,7 @@ class any_connection * and is never be called inline from within this function. */ template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code, ::boost::mysql::statement)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, statement)) CompletionToken = with_diagnostics_t> auto async_prepare_statement(string_view stmt, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_prepare_statement_t) @@ -705,7 +707,7 @@ class any_connection /// \copydoc async_prepare_statement template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code, ::boost::mysql::statement)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, statement)) CompletionToken = with_diagnostics_t> auto async_prepare_statement(string_view stmt, diagnostics& diag, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_prepare_statement_t) @@ -721,7 +723,7 @@ class any_connection * \brief Closes a statement, deallocating it from the server. * \details * After this operation succeeds, `stmt` must not be used again for execution. - * \n + * * \par Preconditions * `stmt.valid() == true` */ @@ -759,7 +761,7 @@ class any_connection * and is never be called inline from within this function. */ template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_close_statement(const statement& stmt, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_close_statement_t) @@ -769,7 +771,7 @@ class any_connection /// \copydoc async_close_statement template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_close_statement(const statement& stmt, diagnostics& diag, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_close_statement_t) @@ -784,12 +786,12 @@ class any_connection * The number of rows that will be read is unspecified. If the operation represented by `st` * has still rows to read, at least one will be read. If there are no more rows, or * `st.should_read_rows() == false`, returns an empty `rows_view`. - * \n + * * The number of rows that will be read depends on the connection's buffer size. The bigger the buffer, * the greater the batch size (up to a maximum). You can set the initial buffer size in the * constructor. The buffer may be * grown bigger by other read operations, if required. - * \n + * * The returned view points into memory owned by `*this`. It will be valid until * `*this` performs the next network operation or is destroyed. */ @@ -826,7 +828,7 @@ class any_connection * and is never be called inline from within this function. */ template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code, ::boost::mysql::rows_view)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, rows_view)) CompletionToken = with_diagnostics_t> auto async_read_some_rows(execution_state& st, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_read_some_rows_dynamic_t) @@ -836,7 +838,7 @@ class any_connection /// \copydoc async_read_some_rows(execution_state&,CompletionToken&&) template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code, ::boost::mysql::rows_view)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, rows_view)) CompletionToken = with_diagnostics_t> auto async_read_some_rows(execution_state& st, diagnostics& diag, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_read_some_rows_dynamic_t) @@ -853,25 +855,25 @@ class any_connection * Reads a batch of rows of unspecified size into the storage given by `output`. * At most `output.size()` rows will be read. If the operation represented by `st` * has still rows to read, and `output.size() > 0`, at least one row will be read. - * \n + * * Returns the number of read rows. - * \n + * * If there are no more rows, or `st.should_read_rows() == false`, this function is a no-op and returns * zero. - * \n + * * The number of rows that will be read depends on the connection's buffer size. The bigger the buffer, * the greater the batch size (up to a maximum). You can set the initial buffer size in the * constructor. The buffer may be grown bigger by other read operations, if required. - * \n + * * Rows read by this function are owning objects, and don't hold any reference to * the connection's internal buffers (contrary what happens with the dynamic interface's counterpart). - * \n + * * The type `SpanElementType` must be the underlying row type for one of the types in the * `StaticRow` parameter pack (i.e., one of the types in `underlying_row_t...`). * The type must match the resultset that is currently being processed by `st`. For instance, * given `static_execution_state`, when reading rows for the second resultset, `SpanElementType` * must exactly be `underlying_row_t`. If this is not the case, a runtime error will be issued. - * \n + * * This function can report schema mismatches. */ template @@ -891,25 +893,25 @@ class any_connection * Reads a batch of rows of unspecified size into the storage given by `output`. * At most `output.size()` rows will be read. If the operation represented by `st` * has still rows to read, and `output.size() > 0`, at least one row will be read. - * \n + * * Returns the number of read rows. - * \n + * * If there are no more rows, or `st.should_read_rows() == false`, this function is a no-op and returns * zero. - * \n + * * The number of rows that will be read depends on the connection's buffer size. The bigger the buffer, * the greater the batch size (up to a maximum). You can set the initial buffer size in the * constructor. The buffer may be grown bigger by other read operations, if required. - * \n + * * Rows read by this function are owning objects, and don't hold any reference to * the connection's internal buffers (contrary what happens with the dynamic interface's counterpart). - * \n + * * The type `SpanElementType` must be the underlying row type for one of the types in the * `StaticRow` parameter pack (i.e., one of the types in `underlying_row_t...`). * The type must match the resultset that is currently being processed by `st`. For instance, * given `static_execution_state`, when reading rows for the second resultset, `SpanElementType` * must exactly be `underlying_row_t`. If this is not the case, a runtime error will be issued. - * \n + * * This function can report schema mismatches. */ template @@ -928,25 +930,25 @@ class any_connection * Reads a batch of rows of unspecified size into the storage given by `output`. * At most `output.size()` rows will be read. If the operation represented by `st` * has still rows to read, and `output.size() > 0`, at least one row will be read. - * \n + * * Returns the number of read rows. - * \n + * * If there are no more rows, or `st.should_read_rows() == false`, this function is a no-op and returns * zero. - * \n + * * The number of rows that will be read depends on the connection's buffer size. The bigger the buffer, * the greater the batch size (up to a maximum). You can set the initial buffer size in the * constructor. The buffer may be grown bigger by other read operations, if required. - * \n + * * Rows read by this function are owning objects, and don't hold any reference to * the connection's internal buffers (contrary what happens with the dynamic interface's counterpart). - * \n + * * The type `SpanElementType` must be the underlying row type for one of the types in the * `StaticRow` parameter pack (i.e., one of the types in `underlying_row_t...`). * The type must match the resultset that is currently being processed by `st`. For instance, * given `static_execution_state`, when reading rows for the second resultset, `SpanElementType` * must exactly be `underlying_row_t`. If this is not the case, a runtime error will be issued. - * \n + * * This function can report schema mismatches. * * \par Handler signature @@ -969,7 +971,7 @@ class any_connection template < class SpanElementType, class... StaticRow, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code, std::size_t)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, std::size_t)) CompletionToken = with_diagnostics_t> auto async_read_some_rows( static_execution_state& st, @@ -986,25 +988,25 @@ class any_connection * Reads a batch of rows of unspecified size into the storage given by `output`. * At most `output.size()` rows will be read. If the operation represented by `st` * has still rows to read, and `output.size() > 0`, at least one row will be read. - * \n + * * Returns the number of read rows. - * \n + * * If there are no more rows, or `st.should_read_rows() == false`, this function is a no-op and returns * zero. - * \n + * * The number of rows that will be read depends on the connection's buffer size. The bigger the buffer, * the greater the batch size (up to a maximum). You can set the initial buffer size in the * constructor. The buffer may be grown bigger by other read operations, if required. - * \n + * * Rows read by this function are owning objects, and don't hold any reference to * the connection's internal buffers (contrary what happens with the dynamic interface's counterpart). - * \n + * * The type `SpanElementType` must be the underlying row type for one of the types in the * `StaticRow` parameter pack (i.e., one of the types in `underlying_row_t...`). * The type must match the resultset that is currently being processed by `st`. For instance, * given `static_execution_state`, when reading rows for the second resultset, `SpanElementType` * must exactly be `underlying_row_t`. If this is not the case, a runtime error will be issued. - * \n + * * This function can report schema mismatches. * * \par Handler signature @@ -1027,7 +1029,7 @@ class any_connection template < class SpanElementType, class... StaticRow, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code, std::size_t)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, std::size_t)) CompletionToken = with_diagnostics_t> auto async_read_some_rows( static_execution_state& st, @@ -1051,18 +1053,18 @@ class any_connection * initial response message and metadata, if any. If the resultset indicates a failure * (e.g. the query associated to this resultset contained an error), this function will fail * with that error. - * \n + * * If `st.should_read_head() == false`, this function is a no-op. - * \n + * * `st` may be either an \ref execution_state or \ref static_execution_state object. - * \n + * * This function is only relevant when using multi-function operations with statements * that return more than one resultset. - * \n + * * When using the static interface, this function will detect schema mismatches for the resultset * currently being read. Further errors may be detected by subsequent invocations of this function * and by \ref read_some_rows. - * \n + * */ template void read_resultset_head(ExecutionStateType& st, error_code& err, diagnostics& diag) @@ -1098,7 +1100,7 @@ class any_connection */ template < BOOST_MYSQL_EXECUTION_STATE_TYPE ExecutionStateType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_read_resultset_head(ExecutionStateType& st, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_read_resultset_head_t) @@ -1109,7 +1111,7 @@ class any_connection /// \copydoc async_read_resultset_head template < BOOST_MYSQL_EXECUTION_STATE_TYPE ExecutionStateType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_read_resultset_head(ExecutionStateType& st, diagnostics& diag, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_read_resultset_head_t) @@ -1124,15 +1126,15 @@ class any_connection * Sets the connection's character set by running a * `SET NAMES` * SQL statement, using the passed \ref character_set::name as the charset name to set. - * \n + * * This function will also update the value returned by \ref current_character_set, so * prefer using this function over raw SQL statements. - * \n + * * If the server was unable to set the character set to the requested value (e.g. because * the server does not support the requested charset), this function will fail, * as opposed to how \ref connect behaves when an unsupported collation is passed. * This is a limitation of MySQL servers. - * \n + * * You need to perform connection establishment for this function to succeed, since it * involves communicating with the server. * @@ -1156,7 +1158,7 @@ class any_connection /** * \copydoc set_character_set * \details - * \n + * * \par Handler signature * The handler signature for this operation is `void(boost::mysql::error_code)`. * @@ -1171,7 +1173,7 @@ class any_connection * and is never be called inline from within this function. */ template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_set_character_set(const character_set& charset, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_set_character_set_t) @@ -1181,7 +1183,7 @@ class any_connection /// \copydoc async_set_character_set template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_set_character_set( const character_set& charset, @@ -1201,7 +1203,7 @@ class any_connection * \details * If the server is alive, this function will complete without error. * If it's not, it will fail with the relevant network or protocol error. - * \n + * * Note that ping requests are treated as any other type of request at the protocol * level, and won't be prioritized anyhow by the server. If the server is stuck * in a long-running query, the ping request won't be answered until the query is @@ -1221,7 +1223,7 @@ class any_connection /** * \copydoc ping * \details - * \n + * * \par Handler signature * The handler signature for this operation is `void(boost::mysql::error_code)`. * @@ -1236,7 +1238,7 @@ class any_connection * and is never be called inline from within this function. */ template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_ping(CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_ping_t) @@ -1246,7 +1248,7 @@ class any_connection /// \copydoc async_ping template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_ping(diagnostics& diag, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_ping_t) @@ -1258,32 +1260,32 @@ class any_connection * \brief Resets server-side session state, like variables and prepared statements. * \details * Resets all server-side state for the current session: - * \n + * * \li Rolls back any active transactions and resets autocommit mode. * \li Releases all table locks. * \li Drops all temporary tables. * \li Resets all session system variables to their default values (including the ones set by `SET * NAMES`) and clears all user-defined variables. * \li Closes all prepared statements. - * \n + * * A full reference on the affected session state can be found * here. - * \n - * \n + * + * * This function will not reset the current physical connection and won't cause re-authentication. * It is faster than closing and re-opening a connection. - * \n + * * The connection must be connected and authenticated before calling this function. * This function involves communication with the server, and thus may fail. * * \par Warning on character sets - * This function will restore the connection's character set and collation **to the server's default**, + * This function will restore the connection's character set and collation *to the server's default*, * and not to the one specified during connection establishment. Some servers have `latin1` as their * default character set, which is not usually what you want. Since there is no way to know this * character set, \ref current_character_set will return `nullptr` after the operation succeeds. * We recommend always using \ref set_character_set or \ref async_set_character_set after calling this * function. - * \n + * * You can find the character set that your server will use after the reset by running: * \code * "SELECT @@global.character_set_client, @@global.character_set_results;" @@ -1306,7 +1308,7 @@ class any_connection /** * \copydoc reset_connection * \details - * \n + * * \par Handler signature * The handler signature for this operation is `void(boost::mysql::error_code)`. * @@ -1321,7 +1323,7 @@ class any_connection * and is never be called inline from within this function. */ template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_reset_connection(CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_reset_connection_t) @@ -1331,7 +1333,7 @@ class any_connection /// \copydoc async_reset_connection template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_reset_connection(diagnostics& diag, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(detail::async_reset_connection_t) @@ -1344,17 +1346,17 @@ class any_connection * \brief Cleanly closes the connection to the server. * \details * This function does the following: - * \n + * * \li Sends a quit request. This is required by the MySQL protocol, to inform * the server that we're closing the connection gracefully. * \li If the connection is using TLS (`this->uses_ssl() == true`), performs * the TLS shutdown. * \li Closes the transport-level connection (the TCP or UNIX socket). - * \n + * * Since this function involves writing a message to the server, it can fail. * Only use this function if you know that the connection is healthy and you want * to cleanly close it. - * \n + * * If you don't call this function, the destructor or successive connects will * perform a transport-layer close. This doesn't cause any resource leaks, but may * cause warnings to be written to the server logs. @@ -1415,17 +1417,17 @@ class any_connection * Runs the pipeline described by `req` and stores its response in `res`. * After the operation completes, `res` will have as many elements as stages * were in `req`, even if the operation fails. - * \n + * * Request stages are seen by the server as a series of unrelated requests. * As a consequence, all stages are always run, even if previous stages fail. - * \n + * * If all stages succeed, the operation completes successfully. Thus, there is no need to check * the per-stage error code in `res` if this operation completed successfully. - * \n + * * If any stage fails with a non-fatal error (as per \ref is_fatal_error), the result of the operation * is the first encountered error. You can check which stages succeeded and which ones didn't by * inspecting each stage in `res`. - * \n + * * If any stage fails with a fatal error, the result of the operation is the fatal error. * Successive stages will be marked as failed with the fatal error. The server may or may * not have processed such stages. diff --git a/include/boost/mysql/character_set.hpp b/include/boost/mysql/character_set.hpp index 25e60278b..2b54dc826 100644 --- a/include/boost/mysql/character_set.hpp +++ b/include/boost/mysql/character_set.hpp @@ -43,28 +43,21 @@ struct character_set * string encoded using this character set, and return the number of * bytes that the first character in the string spans, or 0 in case of error. * `r` is guaranteed to be non-empty (`r.size() > 0`). - * \n + * * In some character sets (like UTF-8), not all byte sequences represent * valid characters. If this function finds an invalid byte sequence while * trying to interpret the first character, it should return 0 to signal the error. - * \n + * * This function must not throw exceptions or have side effects. */ std::size_t (*next_char)(span); }; /// The utf8mb4 character set (the one you should use by default). -BOOST_INLINE_CONSTEXPR character_set utf8mb4_charset -#ifndef BOOST_MYSQL_DOXYGEN - {"utf8mb4", detail::next_char_utf8mb4} -#endif -; +BOOST_INLINE_CONSTEXPR character_set utf8mb4_charset{"utf8mb4", detail::next_char_utf8mb4}; /// The ascii character set. -BOOST_INLINE_CONSTEXPR character_set ascii_charset -#ifndef BOOST_MYSQL_DOXYGEN - {"ascii", detail::next_char_ascii}; -#endif +BOOST_INLINE_CONSTEXPR character_set ascii_charset{"ascii", detail::next_char_ascii}; ; /** diff --git a/include/boost/mysql/client_errc.hpp b/include/boost/mysql/client_errc.hpp index c9024f1b4..9212fca51 100644 --- a/include/boost/mysql/client_errc.hpp +++ b/include/boost/mysql/client_errc.hpp @@ -151,7 +151,6 @@ inline error_code make_error_code(client_errc error) } // namespace mysql -#ifndef BOOST_MYSQL_DOXYGEN namespace system { template <> @@ -160,7 +159,6 @@ struct is_error_code_enum<::boost::mysql::client_errc> static constexpr bool value = true; }; } // namespace system -#endif } // namespace boost diff --git a/include/boost/mysql/column_type.hpp b/include/boost/mysql/column_type.hpp index 62b645ee9..acfdf55c2 100644 --- a/include/boost/mysql/column_type.hpp +++ b/include/boost/mysql/column_type.hpp @@ -19,7 +19,7 @@ namespace mysql { * \brief Represents the database type of a MySQL column. * \details This represents a database type, as opposed to \ref field_kind, which represents a * C++ type. - *\n + * * Unless otherwise noted, the names in this enumeration * directly correspond to the names of the types you would use in * a `CREATE TABLE` statement to create a column of this type diff --git a/include/boost/mysql/common_server_errc.hpp b/include/boost/mysql/common_server_errc.hpp index 7a0dc5cc0..9b8db73c3 100644 --- a/include/boost/mysql/common_server_errc.hpp +++ b/include/boost/mysql/common_server_errc.hpp @@ -29,5071 +29,5071 @@ enum class common_server_errc : int { /** - * \brief Common server error. Error number: 1000, symbol: + * \brief Error number: 1000, symbol: * ER_HASHCHK. */ er_hashchk = 1000, /** - * \brief Common server error. Error number: 1001, symbol: + * \brief Error number: 1001, symbol: * ER_NISAMCHK. */ er_nisamchk = 1001, /** - * \brief Common server error. Error number: 1002, symbol: + * \brief Error number: 1002, symbol: * ER_NO. */ er_no = 1002, /** - * \brief Common server error. Error number: 1003, symbol: + * \brief Error number: 1003, symbol: * ER_YES. */ er_yes = 1003, /** - * \brief Common server error. Error number: 1004, symbol: + * \brief Error number: 1004, symbol: * ER_CANT_CREATE_FILE. */ er_cant_create_file = 1004, /** - * \brief Common server error. Error number: 1005, symbol: + * \brief Error number: 1005, symbol: * ER_CANT_CREATE_TABLE. */ er_cant_create_table = 1005, /** - * \brief Common server error. Error number: 1006, symbol: + * \brief Error number: 1006, symbol: * ER_CANT_CREATE_DB. */ er_cant_create_db = 1006, /** - * \brief Common server error. Error number: 1007, symbol: + * \brief Error number: 1007, symbol: * ER_DB_CREATE_EXISTS. */ er_db_create_exists = 1007, /** - * \brief Common server error. Error number: 1008, symbol: + * \brief Error number: 1008, symbol: * ER_DB_DROP_EXISTS. */ er_db_drop_exists = 1008, /** - * \brief Common server error. Error number: 1009, symbol: + * \brief Error number: 1009, symbol: * ER_DB_DROP_DELETE. */ er_db_drop_delete = 1009, /** - * \brief Common server error. Error number: 1010, symbol: + * \brief Error number: 1010, symbol: * ER_DB_DROP_RMDIR. */ er_db_drop_rmdir = 1010, /** - * \brief Common server error. Error number: 1011, symbol: + * \brief Error number: 1011, symbol: * ER_CANT_DELETE_FILE. */ er_cant_delete_file = 1011, /** - * \brief Common server error. Error number: 1012, symbol: + * \brief Error number: 1012, symbol: * ER_CANT_FIND_SYSTEM_REC. */ er_cant_find_system_rec = 1012, /** - * \brief Common server error. Error number: 1013, symbol: + * \brief Error number: 1013, symbol: * ER_CANT_GET_STAT. */ er_cant_get_stat = 1013, /** - * \brief Common server error. Error number: 1014, symbol: + * \brief Error number: 1014, symbol: * ER_CANT_GET_WD. */ er_cant_get_wd = 1014, /** - * \brief Common server error. Error number: 1015, symbol: + * \brief Error number: 1015, symbol: * ER_CANT_LOCK. */ er_cant_lock = 1015, /** - * \brief Common server error. Error number: 1016, symbol: + * \brief Error number: 1016, symbol: * ER_CANT_OPEN_FILE. */ er_cant_open_file = 1016, /** - * \brief Common server error. Error number: 1017, symbol: + * \brief Error number: 1017, symbol: * ER_FILE_NOT_FOUND. */ er_file_not_found = 1017, /** - * \brief Common server error. Error number: 1018, symbol: + * \brief Error number: 1018, symbol: * ER_CANT_READ_DIR. */ er_cant_read_dir = 1018, /** - * \brief Common server error. Error number: 1019, symbol: + * \brief Error number: 1019, symbol: * ER_CANT_SET_WD. */ er_cant_set_wd = 1019, /** - * \brief Common server error. Error number: 1020, symbol: + * \brief Error number: 1020, symbol: * ER_CHECKREAD. */ er_checkread = 1020, /** - * \brief Common server error. Error number: 1021, symbol: + * \brief Error number: 1021, symbol: * ER_DISK_FULL. */ er_disk_full = 1021, /** - * \brief Common server error. Error number: 1022, symbol: + * \brief Error number: 1022, symbol: * ER_DUP_KEY. */ er_dup_key = 1022, /** - * \brief Common server error. Error number: 1023, symbol: + * \brief Error number: 1023, symbol: * ER_ERROR_ON_CLOSE. */ er_error_on_close = 1023, /** - * \brief Common server error. Error number: 1024, symbol: + * \brief Error number: 1024, symbol: * ER_ERROR_ON_READ. */ er_error_on_read = 1024, /** - * \brief Common server error. Error number: 1025, symbol: + * \brief Error number: 1025, symbol: * ER_ERROR_ON_RENAME. */ er_error_on_rename = 1025, /** - * \brief Common server error. Error number: 1026, symbol: + * \brief Error number: 1026, symbol: * ER_ERROR_ON_WRITE. */ er_error_on_write = 1026, /** - * \brief Common server error. Error number: 1027, symbol: + * \brief Error number: 1027, symbol: * ER_FILE_USED. */ er_file_used = 1027, /** - * \brief Common server error. Error number: 1028, symbol: + * \brief Error number: 1028, symbol: * ER_FILSORT_ABORT. */ er_filsort_abort = 1028, /** - * \brief Common server error. Error number: 1029, symbol: + * \brief Error number: 1029, symbol: * ER_FORM_NOT_FOUND. */ er_form_not_found = 1029, /** - * \brief Common server error. Error number: 1030, symbol: + * \brief Error number: 1030, symbol: * ER_GET_ERRNO. */ er_get_errno = 1030, /** - * \brief Common server error. Error number: 1031, symbol: + * \brief Error number: 1031, symbol: * ER_ILLEGAL_HA. */ er_illegal_ha = 1031, /** - * \brief Common server error. Error number: 1032, symbol: + * \brief Error number: 1032, symbol: * ER_KEY_NOT_FOUND. */ er_key_not_found = 1032, /** - * \brief Common server error. Error number: 1033, symbol: + * \brief Error number: 1033, symbol: * ER_NOT_FORM_FILE. */ er_not_form_file = 1033, /** - * \brief Common server error. Error number: 1034, symbol: + * \brief Error number: 1034, symbol: * ER_NOT_KEYFILE. */ er_not_keyfile = 1034, /** - * \brief Common server error. Error number: 1035, symbol: + * \brief Error number: 1035, symbol: * ER_OLD_KEYFILE. */ er_old_keyfile = 1035, /** - * \brief Common server error. Error number: 1036, symbol: + * \brief Error number: 1036, symbol: * ER_OPEN_AS_READONLY. */ er_open_as_readonly = 1036, /** - * \brief Common server error. Error number: 1037, symbol: + * \brief Error number: 1037, symbol: * ER_OUTOFMEMORY. */ er_outofmemory = 1037, /** - * \brief Common server error. Error number: 1038, symbol: + * \brief Error number: 1038, symbol: * ER_OUT_OF_SORTMEMORY. */ er_out_of_sortmemory = 1038, /** - * \brief Common server error. Error number: 1039, symbol: + * \brief Error number: 1039, symbol: * ER_UNEXPECTED_EOF. */ er_unexpected_eof = 1039, /** - * \brief Common server error. Error number: 1040, symbol: + * \brief Error number: 1040, symbol: * ER_CON_COUNT_ERROR. */ er_con_count_error = 1040, /** - * \brief Common server error. Error number: 1041, symbol: + * \brief Error number: 1041, symbol: * ER_OUT_OF_RESOURCES. */ er_out_of_resources = 1041, /** - * \brief Common server error. Error number: 1042, symbol: + * \brief Error number: 1042, symbol: * ER_BAD_HOST_ERROR. */ er_bad_host_error = 1042, /** - * \brief Common server error. Error number: 1043, symbol: + * \brief Error number: 1043, symbol: * ER_HANDSHAKE_ERROR. */ er_handshake_error = 1043, /** - * \brief Common server error. Error number: 1044, symbol: + * \brief Error number: 1044, symbol: * ER_DBACCESS_DENIED_ERROR. */ er_dbaccess_denied_error = 1044, /** - * \brief Common server error. Error number: 1045, symbol: + * \brief Error number: 1045, symbol: * ER_ACCESS_DENIED_ERROR. */ er_access_denied_error = 1045, /** - * \brief Common server error. Error number: 1046, symbol: + * \brief Error number: 1046, symbol: * ER_NO_DB_ERROR. */ er_no_db_error = 1046, /** - * \brief Common server error. Error number: 1047, symbol: + * \brief Error number: 1047, symbol: * ER_UNKNOWN_COM_ERROR. */ er_unknown_com_error = 1047, /** - * \brief Common server error. Error number: 1048, symbol: + * \brief Error number: 1048, symbol: * ER_BAD_NULL_ERROR. */ er_bad_null_error = 1048, /** - * \brief Common server error. Error number: 1049, symbol: + * \brief Error number: 1049, symbol: * ER_BAD_DB_ERROR. */ er_bad_db_error = 1049, /** - * \brief Common server error. Error number: 1050, symbol: + * \brief Error number: 1050, symbol: * ER_TABLE_EXISTS_ERROR. */ er_table_exists_error = 1050, /** - * \brief Common server error. Error number: 1051, symbol: + * \brief Error number: 1051, symbol: * ER_BAD_TABLE_ERROR. */ er_bad_table_error = 1051, /** - * \brief Common server error. Error number: 1052, symbol: + * \brief Error number: 1052, symbol: * ER_NON_UNIQ_ERROR. */ er_non_uniq_error = 1052, /** - * \brief Common server error. Error number: 1053, symbol: + * \brief Error number: 1053, symbol: * ER_SERVER_SHUTDOWN. */ er_server_shutdown = 1053, /** - * \brief Common server error. Error number: 1054, symbol: + * \brief Error number: 1054, symbol: * ER_BAD_FIELD_ERROR. */ er_bad_field_error = 1054, /** - * \brief Common server error. Error number: 1055, symbol: + * \brief Error number: 1055, symbol: * ER_WRONG_FIELD_WITH_GROUP. */ er_wrong_field_with_group = 1055, /** - * \brief Common server error. Error number: 1056, symbol: + * \brief Error number: 1056, symbol: * ER_WRONG_GROUP_FIELD. */ er_wrong_group_field = 1056, /** - * \brief Common server error. Error number: 1057, symbol: + * \brief Error number: 1057, symbol: * ER_WRONG_SUM_SELECT. */ er_wrong_sum_select = 1057, /** - * \brief Common server error. Error number: 1058, symbol: + * \brief Error number: 1058, symbol: * ER_WRONG_VALUE_COUNT. */ er_wrong_value_count = 1058, /** - * \brief Common server error. Error number: 1059, symbol: + * \brief Error number: 1059, symbol: * ER_TOO_LONG_IDENT. */ er_too_long_ident = 1059, /** - * \brief Common server error. Error number: 1060, symbol: + * \brief Error number: 1060, symbol: * ER_DUP_FIELDNAME. */ er_dup_fieldname = 1060, /** - * \brief Common server error. Error number: 1061, symbol: + * \brief Error number: 1061, symbol: * ER_DUP_KEYNAME. */ er_dup_keyname = 1061, /** - * \brief Common server error. Error number: 1062, symbol: + * \brief Error number: 1062, symbol: * ER_DUP_ENTRY. */ er_dup_entry = 1062, /** - * \brief Common server error. Error number: 1063, symbol: + * \brief Error number: 1063, symbol: * ER_WRONG_FIELD_SPEC. */ er_wrong_field_spec = 1063, /** - * \brief Common server error. Error number: 1064, symbol: + * \brief Error number: 1064, symbol: * ER_PARSE_ERROR. */ er_parse_error = 1064, /** - * \brief Common server error. Error number: 1065, symbol: + * \brief Error number: 1065, symbol: * ER_EMPTY_QUERY. */ er_empty_query = 1065, /** - * \brief Common server error. Error number: 1066, symbol: + * \brief Error number: 1066, symbol: * ER_NONUNIQ_TABLE. */ er_nonuniq_table = 1066, /** - * \brief Common server error. Error number: 1067, symbol: + * \brief Error number: 1067, symbol: * ER_INVALID_DEFAULT. */ er_invalid_default = 1067, /** - * \brief Common server error. Error number: 1068, symbol: + * \brief Error number: 1068, symbol: * ER_MULTIPLE_PRI_KEY. */ er_multiple_pri_key = 1068, /** - * \brief Common server error. Error number: 1069, symbol: + * \brief Error number: 1069, symbol: * ER_TOO_MANY_KEYS. */ er_too_many_keys = 1069, /** - * \brief Common server error. Error number: 1070, symbol: + * \brief Error number: 1070, symbol: * ER_TOO_MANY_KEY_PARTS. */ er_too_many_key_parts = 1070, /** - * \brief Common server error. Error number: 1071, symbol: + * \brief Error number: 1071, symbol: * ER_TOO_LONG_KEY. */ er_too_long_key = 1071, /** - * \brief Common server error. Error number: 1072, symbol: + * \brief Error number: 1072, symbol: * ER_KEY_COLUMN_DOES_NOT_EXITS. */ er_key_column_does_not_exits = 1072, /** - * \brief Common server error. Error number: 1073, symbol: + * \brief Error number: 1073, symbol: * ER_BLOB_USED_AS_KEY. */ er_blob_used_as_key = 1073, /** - * \brief Common server error. Error number: 1074, symbol: + * \brief Error number: 1074, symbol: * ER_TOO_BIG_FIELDLENGTH. */ er_too_big_fieldlength = 1074, /** - * \brief Common server error. Error number: 1075, symbol: + * \brief Error number: 1075, symbol: * ER_WRONG_AUTO_KEY. */ er_wrong_auto_key = 1075, /** - * \brief Common server error. Error number: 1077, symbol: + * \brief Error number: 1077, symbol: * ER_NORMAL_SHUTDOWN. */ er_normal_shutdown = 1077, /** - * \brief Common server error. Error number: 1078, symbol: + * \brief Error number: 1078, symbol: * ER_GOT_SIGNAL. */ er_got_signal = 1078, /** - * \brief Common server error. Error number: 1079, symbol: + * \brief Error number: 1079, symbol: * ER_SHUTDOWN_COMPLETE. */ er_shutdown_complete = 1079, /** - * \brief Common server error. Error number: 1080, symbol: + * \brief Error number: 1080, symbol: * ER_FORCING_CLOSE. */ er_forcing_close = 1080, /** - * \brief Common server error. Error number: 1081, symbol: + * \brief Error number: 1081, symbol: * ER_IPSOCK_ERROR. */ er_ipsock_error = 1081, /** - * \brief Common server error. Error number: 1082, symbol: + * \brief Error number: 1082, symbol: * ER_NO_SUCH_INDEX. */ er_no_such_index = 1082, /** - * \brief Common server error. Error number: 1083, symbol: + * \brief Error number: 1083, symbol: * ER_WRONG_FIELD_TERMINATORS. */ er_wrong_field_terminators = 1083, /** - * \brief Common server error. Error number: 1084, symbol: + * \brief Error number: 1084, symbol: * ER_BLOBS_AND_NO_TERMINATED. */ er_blobs_and_no_terminated = 1084, /** - * \brief Common server error. Error number: 1085, symbol: + * \brief Error number: 1085, symbol: * ER_TEXTFILE_NOT_READABLE. */ er_textfile_not_readable = 1085, /** - * \brief Common server error. Error number: 1086, symbol: + * \brief Error number: 1086, symbol: * ER_FILE_EXISTS_ERROR. */ er_file_exists_error = 1086, /** - * \brief Common server error. Error number: 1087, symbol: + * \brief Error number: 1087, symbol: * ER_LOAD_INFO. */ er_load_info = 1087, /** - * \brief Common server error. Error number: 1088, symbol: + * \brief Error number: 1088, symbol: * ER_ALTER_INFO. */ er_alter_info = 1088, /** - * \brief Common server error. Error number: 1089, symbol: + * \brief Error number: 1089, symbol: * ER_WRONG_SUB_KEY. */ er_wrong_sub_key = 1089, /** - * \brief Common server error. Error number: 1090, symbol: + * \brief Error number: 1090, symbol: * ER_CANT_REMOVE_ALL_FIELDS. */ er_cant_remove_all_fields = 1090, /** - * \brief Common server error. Error number: 1091, symbol: + * \brief Error number: 1091, symbol: * ER_CANT_DROP_FIELD_OR_KEY. */ er_cant_drop_field_or_key = 1091, /** - * \brief Common server error. Error number: 1092, symbol: + * \brief Error number: 1092, symbol: * ER_INSERT_INFO. */ er_insert_info = 1092, /** - * \brief Common server error. Error number: 1093, symbol: + * \brief Error number: 1093, symbol: * ER_UPDATE_TABLE_USED. */ er_update_table_used = 1093, /** - * \brief Common server error. Error number: 1094, symbol: + * \brief Error number: 1094, symbol: * ER_NO_SUCH_THREAD. */ er_no_such_thread = 1094, /** - * \brief Common server error. Error number: 1095, symbol: + * \brief Error number: 1095, symbol: * ER_KILL_DENIED_ERROR. */ er_kill_denied_error = 1095, /** - * \brief Common server error. Error number: 1096, symbol: + * \brief Error number: 1096, symbol: * ER_NO_TABLES_USED. */ er_no_tables_used = 1096, /** - * \brief Common server error. Error number: 1097, symbol: + * \brief Error number: 1097, symbol: * ER_TOO_BIG_SET. */ er_too_big_set = 1097, /** - * \brief Common server error. Error number: 1098, symbol: + * \brief Error number: 1098, symbol: * ER_NO_UNIQUE_LOGFILE. */ er_no_unique_logfile = 1098, /** - * \brief Common server error. Error number: 1099, symbol: + * \brief Error number: 1099, symbol: * ER_TABLE_NOT_LOCKED_FOR_WRITE. */ er_table_not_locked_for_write = 1099, /** - * \brief Common server error. Error number: 1100, symbol: + * \brief Error number: 1100, symbol: * ER_TABLE_NOT_LOCKED. */ er_table_not_locked = 1100, /** - * \brief Common server error. Error number: 1102, symbol: + * \brief Error number: 1102, symbol: * ER_WRONG_DB_NAME. */ er_wrong_db_name = 1102, /** - * \brief Common server error. Error number: 1103, symbol: + * \brief Error number: 1103, symbol: * ER_WRONG_TABLE_NAME. */ er_wrong_table_name = 1103, /** - * \brief Common server error. Error number: 1104, symbol: + * \brief Error number: 1104, symbol: * ER_TOO_BIG_SELECT. */ er_too_big_select = 1104, /** - * \brief Common server error. Error number: 1105, symbol: + * \brief Error number: 1105, symbol: * ER_UNKNOWN_ERROR. */ er_unknown_error = 1105, /** - * \brief Common server error. Error number: 1106, symbol: + * \brief Error number: 1106, symbol: * ER_UNKNOWN_PROCEDURE. */ er_unknown_procedure = 1106, /** - * \brief Common server error. Error number: 1107, symbol: + * \brief Error number: 1107, symbol: * ER_WRONG_PARAMCOUNT_TO_PROCEDURE. */ er_wrong_paramcount_to_procedure = 1107, /** - * \brief Common server error. Error number: 1108, symbol: + * \brief Error number: 1108, symbol: * ER_WRONG_PARAMETERS_TO_PROCEDURE. */ er_wrong_parameters_to_procedure = 1108, /** - * \brief Common server error. Error number: 1109, symbol: + * \brief Error number: 1109, symbol: * ER_UNKNOWN_TABLE. */ er_unknown_table = 1109, /** - * \brief Common server error. Error number: 1110, symbol: + * \brief Error number: 1110, symbol: * ER_FIELD_SPECIFIED_TWICE. */ er_field_specified_twice = 1110, /** - * \brief Common server error. Error number: 1111, symbol: + * \brief Error number: 1111, symbol: * ER_INVALID_GROUP_FUNC_USE. */ er_invalid_group_func_use = 1111, /** - * \brief Common server error. Error number: 1112, symbol: + * \brief Error number: 1112, symbol: * ER_UNSUPPORTED_EXTENSION. */ er_unsupported_extension = 1112, /** - * \brief Common server error. Error number: 1113, symbol: + * \brief Error number: 1113, symbol: * ER_TABLE_MUST_HAVE_COLUMNS. */ er_table_must_have_columns = 1113, /** - * \brief Common server error. Error number: 1114, symbol: + * \brief Error number: 1114, symbol: * ER_RECORD_FILE_FULL. */ er_record_file_full = 1114, /** - * \brief Common server error. Error number: 1115, symbol: + * \brief Error number: 1115, symbol: * ER_UNKNOWN_CHARACTER_SET. */ er_unknown_character_set = 1115, /** - * \brief Common server error. Error number: 1116, symbol: + * \brief Error number: 1116, symbol: * ER_TOO_MANY_TABLES. */ er_too_many_tables = 1116, /** - * \brief Common server error. Error number: 1117, symbol: + * \brief Error number: 1117, symbol: * ER_TOO_MANY_FIELDS. */ er_too_many_fields = 1117, /** - * \brief Common server error. Error number: 1118, symbol: + * \brief Error number: 1118, symbol: * ER_TOO_BIG_ROWSIZE. */ er_too_big_rowsize = 1118, /** - * \brief Common server error. Error number: 1119, symbol: + * \brief Error number: 1119, symbol: * ER_STACK_OVERRUN. */ er_stack_overrun = 1119, /** - * \brief Common server error. Error number: 1121, symbol: + * \brief Error number: 1121, symbol: * ER_NULL_COLUMN_IN_INDEX. */ er_null_column_in_index = 1121, /** - * \brief Common server error. Error number: 1122, symbol: + * \brief Error number: 1122, symbol: * ER_CANT_FIND_UDF. */ er_cant_find_udf = 1122, /** - * \brief Common server error. Error number: 1123, symbol: + * \brief Error number: 1123, symbol: * ER_CANT_INITIALIZE_UDF. */ er_cant_initialize_udf = 1123, /** - * \brief Common server error. Error number: 1124, symbol: + * \brief Error number: 1124, symbol: * ER_UDF_NO_PATHS. */ er_udf_no_paths = 1124, /** - * \brief Common server error. Error number: 1125, symbol: + * \brief Error number: 1125, symbol: * ER_UDF_EXISTS. */ er_udf_exists = 1125, /** - * \brief Common server error. Error number: 1126, symbol: + * \brief Error number: 1126, symbol: * ER_CANT_OPEN_LIBRARY. */ er_cant_open_library = 1126, /** - * \brief Common server error. Error number: 1127, symbol: + * \brief Error number: 1127, symbol: * ER_CANT_FIND_DL_ENTRY. */ er_cant_find_dl_entry = 1127, /** - * \brief Common server error. Error number: 1128, symbol: + * \brief Error number: 1128, symbol: * ER_FUNCTION_NOT_DEFINED. */ er_function_not_defined = 1128, /** - * \brief Common server error. Error number: 1129, symbol: + * \brief Error number: 1129, symbol: * ER_HOST_IS_BLOCKED. */ er_host_is_blocked = 1129, /** - * \brief Common server error. Error number: 1130, symbol: + * \brief Error number: 1130, symbol: * ER_HOST_NOT_PRIVILEGED. */ er_host_not_privileged = 1130, /** - * \brief Common server error. Error number: 1131, symbol: + * \brief Error number: 1131, symbol: * ER_PASSWORD_ANONYMOUS_USER. */ er_password_anonymous_user = 1131, /** - * \brief Common server error. Error number: 1132, symbol: + * \brief Error number: 1132, symbol: * ER_PASSWORD_NOT_ALLOWED. */ er_password_not_allowed = 1132, /** - * \brief Common server error. Error number: 1133, symbol: + * \brief Error number: 1133, symbol: * ER_PASSWORD_NO_MATCH. */ er_password_no_match = 1133, /** - * \brief Common server error. Error number: 1134, symbol: + * \brief Error number: 1134, symbol: * ER_UPDATE_INFO. */ er_update_info = 1134, /** - * \brief Common server error. Error number: 1135, symbol: + * \brief Error number: 1135, symbol: * ER_CANT_CREATE_THREAD. */ er_cant_create_thread = 1135, /** - * \brief Common server error. Error number: 1136, symbol: + * \brief Error number: 1136, symbol: * ER_WRONG_VALUE_COUNT_ON_ROW. */ er_wrong_value_count_on_row = 1136, /** - * \brief Common server error. Error number: 1137, symbol: + * \brief Error number: 1137, symbol: * ER_CANT_REOPEN_TABLE. */ er_cant_reopen_table = 1137, /** - * \brief Common server error. Error number: 1138, symbol: + * \brief Error number: 1138, symbol: * ER_INVALID_USE_OF_NULL. */ er_invalid_use_of_null = 1138, /** - * \brief Common server error. Error number: 1139, symbol: + * \brief Error number: 1139, symbol: * ER_REGEXP_ERROR. */ er_regexp_error = 1139, /** - * \brief Common server error. Error number: 1140, symbol: + * \brief Error number: 1140, symbol: * ER_MIX_OF_GROUP_FUNC_AND_FIELDS. */ er_mix_of_group_func_and_fields = 1140, /** - * \brief Common server error. Error number: 1141, symbol: + * \brief Error number: 1141, symbol: * ER_NONEXISTING_GRANT. */ er_nonexisting_grant = 1141, /** - * \brief Common server error. Error number: 1142, symbol: + * \brief Error number: 1142, symbol: * ER_TABLEACCESS_DENIED_ERROR. */ er_tableaccess_denied_error = 1142, /** - * \brief Common server error. Error number: 1143, symbol: + * \brief Error number: 1143, symbol: * ER_COLUMNACCESS_DENIED_ERROR. */ er_columnaccess_denied_error = 1143, /** - * \brief Common server error. Error number: 1144, symbol: + * \brief Error number: 1144, symbol: * ER_ILLEGAL_GRANT_FOR_TABLE. */ er_illegal_grant_for_table = 1144, /** - * \brief Common server error. Error number: 1145, symbol: + * \brief Error number: 1145, symbol: * ER_GRANT_WRONG_HOST_OR_USER. */ er_grant_wrong_host_or_user = 1145, /** - * \brief Common server error. Error number: 1146, symbol: + * \brief Error number: 1146, symbol: * ER_NO_SUCH_TABLE. */ er_no_such_table = 1146, /** - * \brief Common server error. Error number: 1147, symbol: + * \brief Error number: 1147, symbol: * ER_NONEXISTING_TABLE_GRANT. */ er_nonexisting_table_grant = 1147, /** - * \brief Common server error. Error number: 1148, symbol: + * \brief Error number: 1148, symbol: * ER_NOT_ALLOWED_COMMAND. */ er_not_allowed_command = 1148, /** - * \brief Common server error. Error number: 1149, symbol: + * \brief Error number: 1149, symbol: * ER_SYNTAX_ERROR. */ er_syntax_error = 1149, /** - * \brief Common server error. Error number: 1152, symbol: + * \brief Error number: 1152, symbol: * ER_ABORTING_CONNECTION. */ er_aborting_connection = 1152, /** - * \brief Common server error. Error number: 1153, symbol: + * \brief Error number: 1153, symbol: * ER_NET_PACKET_TOO_LARGE. */ er_net_packet_too_large = 1153, /** - * \brief Common server error. Error number: 1154, symbol: + * \brief Error number: 1154, symbol: * ER_NET_READ_ERROR_FROM_PIPE. */ er_net_read_error_from_pipe = 1154, /** - * \brief Common server error. Error number: 1155, symbol: + * \brief Error number: 1155, symbol: * ER_NET_FCNTL_ERROR. */ er_net_fcntl_error = 1155, /** - * \brief Common server error. Error number: 1156, symbol: + * \brief Error number: 1156, symbol: * ER_NET_PACKETS_OUT_OF_ORDER. */ er_net_packets_out_of_order = 1156, /** - * \brief Common server error. Error number: 1157, symbol: + * \brief Error number: 1157, symbol: * ER_NET_UNCOMPRESS_ERROR. */ er_net_uncompress_error = 1157, /** - * \brief Common server error. Error number: 1158, symbol: + * \brief Error number: 1158, symbol: * ER_NET_READ_ERROR. */ er_net_read_error = 1158, /** - * \brief Common server error. Error number: 1159, symbol: + * \brief Error number: 1159, symbol: * ER_NET_READ_INTERRUPTED. */ er_net_read_interrupted = 1159, /** - * \brief Common server error. Error number: 1160, symbol: + * \brief Error number: 1160, symbol: * ER_NET_ERROR_ON_WRITE. */ er_net_error_on_write = 1160, /** - * \brief Common server error. Error number: 1161, symbol: + * \brief Error number: 1161, symbol: * ER_NET_WRITE_INTERRUPTED. */ er_net_write_interrupted = 1161, /** - * \brief Common server error. Error number: 1162, symbol: + * \brief Error number: 1162, symbol: * ER_TOO_LONG_STRING. */ er_too_long_string = 1162, /** - * \brief Common server error. Error number: 1163, symbol: + * \brief Error number: 1163, symbol: * ER_TABLE_CANT_HANDLE_BLOB. */ er_table_cant_handle_blob = 1163, /** - * \brief Common server error. Error number: 1164, symbol: + * \brief Error number: 1164, symbol: * ER_TABLE_CANT_HANDLE_AUTO_INCREMENT. */ er_table_cant_handle_auto_increment = 1164, /** - * \brief Common server error. Error number: 1166, symbol: + * \brief Error number: 1166, symbol: * ER_WRONG_COLUMN_NAME. */ er_wrong_column_name = 1166, /** - * \brief Common server error. Error number: 1167, symbol: + * \brief Error number: 1167, symbol: * ER_WRONG_KEY_COLUMN. */ er_wrong_key_column = 1167, /** - * \brief Common server error. Error number: 1168, symbol: + * \brief Error number: 1168, symbol: * ER_WRONG_MRG_TABLE. */ er_wrong_mrg_table = 1168, /** - * \brief Common server error. Error number: 1169, symbol: + * \brief Error number: 1169, symbol: * ER_DUP_UNIQUE. */ er_dup_unique = 1169, /** - * \brief Common server error. Error number: 1170, symbol: + * \brief Error number: 1170, symbol: * ER_BLOB_KEY_WITHOUT_LENGTH. */ er_blob_key_without_length = 1170, /** - * \brief Common server error. Error number: 1171, symbol: + * \brief Error number: 1171, symbol: * ER_PRIMARY_CANT_HAVE_NULL. */ er_primary_cant_have_null = 1171, /** - * \brief Common server error. Error number: 1172, symbol: + * \brief Error number: 1172, symbol: * ER_TOO_MANY_ROWS. */ er_too_many_rows = 1172, /** - * \brief Common server error. Error number: 1173, symbol: + * \brief Error number: 1173, symbol: * ER_REQUIRES_PRIMARY_KEY. */ er_requires_primary_key = 1173, /** - * \brief Common server error. Error number: 1174, symbol: + * \brief Error number: 1174, symbol: * ER_NO_RAID_COMPILED. */ er_no_raid_compiled = 1174, /** - * \brief Common server error. Error number: 1175, symbol: + * \brief Error number: 1175, symbol: * ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE. */ er_update_without_key_in_safe_mode = 1175, /** - * \brief Common server error. Error number: 1177, symbol: + * \brief Error number: 1177, symbol: * ER_CHECK_NO_SUCH_TABLE. */ er_check_no_such_table = 1177, /** - * \brief Common server error. Error number: 1178, symbol: + * \brief Error number: 1178, symbol: * ER_CHECK_NOT_IMPLEMENTED. */ er_check_not_implemented = 1178, /** - * \brief Common server error. Error number: 1179, symbol: + * \brief Error number: 1179, symbol: * ER_CANT_DO_THIS_DURING_AN_TRANSACTION. */ er_cant_do_this_during_an_transaction = 1179, /** - * \brief Common server error. Error number: 1180, symbol: + * \brief Error number: 1180, symbol: * ER_ERROR_DURING_COMMIT. */ er_error_during_commit = 1180, /** - * \brief Common server error. Error number: 1181, symbol: + * \brief Error number: 1181, symbol: * ER_ERROR_DURING_ROLLBACK. */ er_error_during_rollback = 1181, /** - * \brief Common server error. Error number: 1182, symbol: + * \brief Error number: 1182, symbol: * ER_ERROR_DURING_FLUSH_LOGS. */ er_error_during_flush_logs = 1182, /** - * \brief Common server error. Error number: 1183, symbol: + * \brief Error number: 1183, symbol: * ER_ERROR_DURING_CHECKPOINT. */ er_error_during_checkpoint = 1183, /** - * \brief Common server error. Error number: 1184, symbol: + * \brief Error number: 1184, symbol: * ER_NEW_ABORTING_CONNECTION. */ er_new_aborting_connection = 1184, /** - * \brief Common server error. Error number: 1186, symbol: + * \brief Error number: 1186, symbol: * ER_FLUSH_MASTER_BINLOG_CLOSED. */ er_flush_master_binlog_closed = 1186, /** - * \brief Common server error. Error number: 1187, symbol: + * \brief Error number: 1187, symbol: * ER_INDEX_REBUILD. */ er_index_rebuild = 1187, /** - * \brief Common server error. Error number: 1188, symbol: + * \brief Error number: 1188, symbol: * ER_MASTER. */ er_master = 1188, /** - * \brief Common server error. Error number: 1189, symbol: + * \brief Error number: 1189, symbol: * ER_MASTER_NET_READ. */ er_master_net_read = 1189, /** - * \brief Common server error. Error number: 1190, symbol: + * \brief Error number: 1190, symbol: * ER_MASTER_NET_WRITE. */ er_master_net_write = 1190, /** - * \brief Common server error. Error number: 1191, symbol: + * \brief Error number: 1191, symbol: * ER_FT_MATCHING_KEY_NOT_FOUND. */ er_ft_matching_key_not_found = 1191, /** - * \brief Common server error. Error number: 1192, symbol: + * \brief Error number: 1192, symbol: * ER_LOCK_OR_ACTIVE_TRANSACTION. */ er_lock_or_active_transaction = 1192, /** - * \brief Common server error. Error number: 1193, symbol: + * \brief Error number: 1193, symbol: * ER_UNKNOWN_SYSTEM_VARIABLE. */ er_unknown_system_variable = 1193, /** - * \brief Common server error. Error number: 1194, symbol: + * \brief Error number: 1194, symbol: * ER_CRASHED_ON_USAGE. */ er_crashed_on_usage = 1194, /** - * \brief Common server error. Error number: 1195, symbol: + * \brief Error number: 1195, symbol: * ER_CRASHED_ON_REPAIR. */ er_crashed_on_repair = 1195, /** - * \brief Common server error. Error number: 1196, symbol: + * \brief Error number: 1196, symbol: * ER_WARNING_NOT_COMPLETE_ROLLBACK. */ er_warning_not_complete_rollback = 1196, /** - * \brief Common server error. Error number: 1197, symbol: + * \brief Error number: 1197, symbol: * ER_TRANS_CACHE_FULL. */ er_trans_cache_full = 1197, /** - * \brief Common server error. Error number: 1198, symbol: + * \brief Error number: 1198, symbol: * ER_SLAVE_MUST_STOP. */ er_slave_must_stop = 1198, /** - * \brief Common server error. Error number: 1199, symbol: + * \brief Error number: 1199, symbol: * ER_SLAVE_NOT_RUNNING. */ er_slave_not_running = 1199, /** - * \brief Common server error. Error number: 1200, symbol: + * \brief Error number: 1200, symbol: * ER_BAD_SLAVE. */ er_bad_slave = 1200, /** - * \brief Common server error. Error number: 1201, symbol: + * \brief Error number: 1201, symbol: * ER_MASTER_INFO. */ er_master_info = 1201, /** - * \brief Common server error. Error number: 1202, symbol: + * \brief Error number: 1202, symbol: * ER_SLAVE_THREAD. */ er_slave_thread = 1202, /** - * \brief Common server error. Error number: 1203, symbol: + * \brief Error number: 1203, symbol: * ER_TOO_MANY_USER_CONNECTIONS. */ er_too_many_user_connections = 1203, /** - * \brief Common server error. Error number: 1204, symbol: + * \brief Error number: 1204, symbol: * ER_SET_CONSTANTS_ONLY. */ er_set_constants_only = 1204, /** - * \brief Common server error. Error number: 1205, symbol: + * \brief Error number: 1205, symbol: * ER_LOCK_WAIT_TIMEOUT. */ er_lock_wait_timeout = 1205, /** - * \brief Common server error. Error number: 1206, symbol: + * \brief Error number: 1206, symbol: * ER_LOCK_TABLE_FULL. */ er_lock_table_full = 1206, /** - * \brief Common server error. Error number: 1207, symbol: + * \brief Error number: 1207, symbol: * ER_READ_ONLY_TRANSACTION. */ er_read_only_transaction = 1207, /** - * \brief Common server error. Error number: 1208, symbol: + * \brief Error number: 1208, symbol: * ER_DROP_DB_WITH_READ_LOCK. */ er_drop_db_with_read_lock = 1208, /** - * \brief Common server error. Error number: 1209, symbol: + * \brief Error number: 1209, symbol: * ER_CREATE_DB_WITH_READ_LOCK. */ er_create_db_with_read_lock = 1209, /** - * \brief Common server error. Error number: 1210, symbol: + * \brief Error number: 1210, symbol: * ER_WRONG_ARGUMENTS. */ er_wrong_arguments = 1210, /** - * \brief Common server error. Error number: 1211, symbol: + * \brief Error number: 1211, symbol: * ER_NO_PERMISSION_TO_CREATE_USER. */ er_no_permission_to_create_user = 1211, /** - * \brief Common server error. Error number: 1212, symbol: + * \brief Error number: 1212, symbol: * ER_UNION_TABLES_IN_DIFFERENT_DIR. */ er_union_tables_in_different_dir = 1212, /** - * \brief Common server error. Error number: 1213, symbol: + * \brief Error number: 1213, symbol: * ER_LOCK_DEADLOCK. */ er_lock_deadlock = 1213, /** - * \brief Common server error. Error number: 1214, symbol: + * \brief Error number: 1214, symbol: * ER_TABLE_CANT_HANDLE_FT. */ er_table_cant_handle_ft = 1214, /** - * \brief Common server error. Error number: 1215, symbol: + * \brief Error number: 1215, symbol: * ER_CANNOT_ADD_FOREIGN. */ er_cannot_add_foreign = 1215, /** - * \brief Common server error. Error number: 1216, symbol: + * \brief Error number: 1216, symbol: * ER_NO_REFERENCED_ROW. */ er_no_referenced_row = 1216, /** - * \brief Common server error. Error number: 1217, symbol: + * \brief Error number: 1217, symbol: * ER_ROW_IS_REFERENCED. */ er_row_is_referenced = 1217, /** - * \brief Common server error. Error number: 1218, symbol: + * \brief Error number: 1218, symbol: * ER_CONNECT_TO_MASTER. */ er_connect_to_master = 1218, /** - * \brief Common server error. Error number: 1219, symbol: + * \brief Error number: 1219, symbol: * ER_QUERY_ON_MASTER. */ er_query_on_master = 1219, /** - * \brief Common server error. Error number: 1220, symbol: + * \brief Error number: 1220, symbol: * ER_ERROR_WHEN_EXECUTING_COMMAND. */ er_error_when_executing_command = 1220, /** - * \brief Common server error. Error number: 1221, symbol: + * \brief Error number: 1221, symbol: * ER_WRONG_USAGE. */ er_wrong_usage = 1221, /** - * \brief Common server error. Error number: 1222, symbol: + * \brief Error number: 1222, symbol: * ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT. */ er_wrong_number_of_columns_in_select = 1222, /** - * \brief Common server error. Error number: 1223, symbol: + * \brief Error number: 1223, symbol: * ER_CANT_UPDATE_WITH_READLOCK. */ er_cant_update_with_readlock = 1223, /** - * \brief Common server error. Error number: 1224, symbol: + * \brief Error number: 1224, symbol: * ER_MIXING_NOT_ALLOWED. */ er_mixing_not_allowed = 1224, /** - * \brief Common server error. Error number: 1225, symbol: + * \brief Error number: 1225, symbol: * ER_DUP_ARGUMENT. */ er_dup_argument = 1225, /** - * \brief Common server error. Error number: 1226, symbol: + * \brief Error number: 1226, symbol: * ER_USER_LIMIT_REACHED. */ er_user_limit_reached = 1226, /** - * \brief Common server error. Error number: 1227, symbol: + * \brief Error number: 1227, symbol: * ER_SPECIFIC_ACCESS_DENIED_ERROR. */ er_specific_access_denied_error = 1227, /** - * \brief Common server error. Error number: 1228, symbol: + * \brief Error number: 1228, symbol: * ER_LOCAL_VARIABLE. */ er_local_variable = 1228, /** - * \brief Common server error. Error number: 1229, symbol: + * \brief Error number: 1229, symbol: * ER_GLOBAL_VARIABLE. */ er_global_variable = 1229, /** - * \brief Common server error. Error number: 1230, symbol: + * \brief Error number: 1230, symbol: * ER_NO_DEFAULT. */ er_no_default = 1230, /** - * \brief Common server error. Error number: 1231, symbol: + * \brief Error number: 1231, symbol: * ER_WRONG_VALUE_FOR_VAR. */ er_wrong_value_for_var = 1231, /** - * \brief Common server error. Error number: 1232, symbol: + * \brief Error number: 1232, symbol: * ER_WRONG_TYPE_FOR_VAR. */ er_wrong_type_for_var = 1232, /** - * \brief Common server error. Error number: 1233, symbol: + * \brief Error number: 1233, symbol: * ER_VAR_CANT_BE_READ. */ er_var_cant_be_read = 1233, /** - * \brief Common server error. Error number: 1234, symbol: + * \brief Error number: 1234, symbol: * ER_CANT_USE_OPTION_HERE. */ er_cant_use_option_here = 1234, /** - * \brief Common server error. Error number: 1235, symbol: + * \brief Error number: 1235, symbol: * ER_NOT_SUPPORTED_YET. */ er_not_supported_yet = 1235, /** - * \brief Common server error. Error number: 1236, symbol: + * \brief Error number: 1236, symbol: * ER_MASTER_FATAL_ERROR_READING_BINLOG. */ er_master_fatal_error_reading_binlog = 1236, /** - * \brief Common server error. Error number: 1237, symbol: + * \brief Error number: 1237, symbol: * ER_SLAVE_IGNORED_TABLE. */ er_slave_ignored_table = 1237, /** - * \brief Common server error. Error number: 1238, symbol: + * \brief Error number: 1238, symbol: * ER_INCORRECT_GLOBAL_LOCAL_VAR. */ er_incorrect_global_local_var = 1238, /** - * \brief Common server error. Error number: 1239, symbol: + * \brief Error number: 1239, symbol: * ER_WRONG_FK_DEF. */ er_wrong_fk_def = 1239, /** - * \brief Common server error. Error number: 1240, symbol: + * \brief Error number: 1240, symbol: * ER_KEY_REF_DO_NOT_MATCH_TABLE_REF. */ er_key_ref_do_not_match_table_ref = 1240, /** - * \brief Common server error. Error number: 1241, symbol: + * \brief Error number: 1241, symbol: * ER_OPERAND_COLUMNS. */ er_operand_columns = 1241, /** - * \brief Common server error. Error number: 1242, symbol: + * \brief Error number: 1242, symbol: * ER_SUBQUERY_NO_1_ROW. */ er_subquery_no_1_row = 1242, /** - * \brief Common server error. Error number: 1243, symbol: + * \brief Error number: 1243, symbol: * ER_UNKNOWN_STMT_HANDLER. */ er_unknown_stmt_handler = 1243, /** - * \brief Common server error. Error number: 1244, symbol: + * \brief Error number: 1244, symbol: * ER_CORRUPT_HELP_DB. */ er_corrupt_help_db = 1244, /** - * \brief Common server error. Error number: 1245, symbol: + * \brief Error number: 1245, symbol: * ER_CYCLIC_REFERENCE. */ er_cyclic_reference = 1245, /** - * \brief Common server error. Error number: 1246, symbol: + * \brief Error number: 1246, symbol: * ER_AUTO_CONVERT. */ er_auto_convert = 1246, /** - * \brief Common server error. Error number: 1247, symbol: + * \brief Error number: 1247, symbol: * ER_ILLEGAL_REFERENCE. */ er_illegal_reference = 1247, /** - * \brief Common server error. Error number: 1248, symbol: + * \brief Error number: 1248, symbol: * ER_DERIVED_MUST_HAVE_ALIAS. */ er_derived_must_have_alias = 1248, /** - * \brief Common server error. Error number: 1249, symbol: + * \brief Error number: 1249, symbol: * ER_SELECT_REDUCED. */ er_select_reduced = 1249, /** - * \brief Common server error. Error number: 1250, symbol: + * \brief Error number: 1250, symbol: * ER_TABLENAME_NOT_ALLOWED_HERE. */ er_tablename_not_allowed_here = 1250, /** - * \brief Common server error. Error number: 1251, symbol: + * \brief Error number: 1251, symbol: * ER_NOT_SUPPORTED_AUTH_MODE. */ er_not_supported_auth_mode = 1251, /** - * \brief Common server error. Error number: 1252, symbol: + * \brief Error number: 1252, symbol: * ER_SPATIAL_CANT_HAVE_NULL. */ er_spatial_cant_have_null = 1252, /** - * \brief Common server error. Error number: 1253, symbol: + * \brief Error number: 1253, symbol: * ER_COLLATION_CHARSET_MISMATCH. */ er_collation_charset_mismatch = 1253, /** - * \brief Common server error. Error number: 1254, symbol: + * \brief Error number: 1254, symbol: * ER_SLAVE_WAS_RUNNING. */ er_slave_was_running = 1254, /** - * \brief Common server error. Error number: 1255, symbol: + * \brief Error number: 1255, symbol: * ER_SLAVE_WAS_NOT_RUNNING. */ er_slave_was_not_running = 1255, /** - * \brief Common server error. Error number: 1256, symbol: + * \brief Error number: 1256, symbol: * ER_TOO_BIG_FOR_UNCOMPRESS. */ er_too_big_for_uncompress = 1256, /** - * \brief Common server error. Error number: 1257, symbol: + * \brief Error number: 1257, symbol: * ER_ZLIB_Z_MEM_ERROR. */ er_zlib_z_mem_error = 1257, /** - * \brief Common server error. Error number: 1258, symbol: + * \brief Error number: 1258, symbol: * ER_ZLIB_Z_BUF_ERROR. */ er_zlib_z_buf_error = 1258, /** - * \brief Common server error. Error number: 1259, symbol: + * \brief Error number: 1259, symbol: * ER_ZLIB_Z_DATA_ERROR. */ er_zlib_z_data_error = 1259, /** - * \brief Common server error. Error number: 1260, symbol: + * \brief Error number: 1260, symbol: * ER_CUT_VALUE_GROUP_CONCAT. */ er_cut_value_group_concat = 1260, /** - * \brief Common server error. Error number: 1261, symbol: + * \brief Error number: 1261, symbol: * ER_WARN_TOO_FEW_RECORDS. */ er_warn_too_few_records = 1261, /** - * \brief Common server error. Error number: 1262, symbol: + * \brief Error number: 1262, symbol: * ER_WARN_TOO_MANY_RECORDS. */ er_warn_too_many_records = 1262, /** - * \brief Common server error. Error number: 1263, symbol: + * \brief Error number: 1263, symbol: * ER_WARN_NULL_TO_NOTNULL. */ er_warn_null_to_notnull = 1263, /** - * \brief Common server error. Error number: 1264, symbol: + * \brief Error number: 1264, symbol: * ER_WARN_DATA_OUT_OF_RANGE. */ er_warn_data_out_of_range = 1264, /** - * \brief Common server error. Error number: 1265, symbol: + * \brief Error number: 1265, symbol: * WARN_DATA_TRUNCATED. */ warn_data_truncated = 1265, /** - * \brief Common server error. Error number: 1266, symbol: + * \brief Error number: 1266, symbol: * ER_WARN_USING_OTHER_HANDLER. */ er_warn_using_other_handler = 1266, /** - * \brief Common server error. Error number: 1267, symbol: + * \brief Error number: 1267, symbol: * ER_CANT_AGGREGATE_2COLLATIONS. */ er_cant_aggregate_2collations = 1267, /** - * \brief Common server error. Error number: 1268, symbol: + * \brief Error number: 1268, symbol: * ER_DROP_USER. */ er_drop_user = 1268, /** - * \brief Common server error. Error number: 1269, symbol: + * \brief Error number: 1269, symbol: * ER_REVOKE_GRANTS. */ er_revoke_grants = 1269, /** - * \brief Common server error. Error number: 1270, symbol: + * \brief Error number: 1270, symbol: * ER_CANT_AGGREGATE_3COLLATIONS. */ er_cant_aggregate_3collations = 1270, /** - * \brief Common server error. Error number: 1271, symbol: + * \brief Error number: 1271, symbol: * ER_CANT_AGGREGATE_NCOLLATIONS. */ er_cant_aggregate_ncollations = 1271, /** - * \brief Common server error. Error number: 1272, symbol: + * \brief Error number: 1272, symbol: * ER_VARIABLE_IS_NOT_STRUCT. */ er_variable_is_not_struct = 1272, /** - * \brief Common server error. Error number: 1273, symbol: + * \brief Error number: 1273, symbol: * ER_UNKNOWN_COLLATION. */ er_unknown_collation = 1273, /** - * \brief Common server error. Error number: 1274, symbol: + * \brief Error number: 1274, symbol: * ER_SLAVE_IGNORED_SSL_PARAMS. */ er_slave_ignored_ssl_params = 1274, /** - * \brief Common server error. Error number: 1275, symbol: + * \brief Error number: 1275, symbol: * ER_SERVER_IS_IN_SECURE_AUTH_MODE. */ er_server_is_in_secure_auth_mode = 1275, /** - * \brief Common server error. Error number: 1276, symbol: + * \brief Error number: 1276, symbol: * ER_WARN_FIELD_RESOLVED. */ er_warn_field_resolved = 1276, /** - * \brief Common server error. Error number: 1277, symbol: + * \brief Error number: 1277, symbol: * ER_BAD_SLAVE_UNTIL_COND. */ er_bad_slave_until_cond = 1277, /** - * \brief Common server error. Error number: 1278, symbol: + * \brief Error number: 1278, symbol: * ER_MISSING_SKIP_SLAVE. */ er_missing_skip_slave = 1278, /** - * \brief Common server error. Error number: 1279, symbol: + * \brief Error number: 1279, symbol: * ER_UNTIL_COND_IGNORED. */ er_until_cond_ignored = 1279, /** - * \brief Common server error. Error number: 1280, symbol: + * \brief Error number: 1280, symbol: * ER_WRONG_NAME_FOR_INDEX. */ er_wrong_name_for_index = 1280, /** - * \brief Common server error. Error number: 1281, symbol: + * \brief Error number: 1281, symbol: * ER_WRONG_NAME_FOR_CATALOG. */ er_wrong_name_for_catalog = 1281, /** - * \brief Common server error. Error number: 1282, symbol: + * \brief Error number: 1282, symbol: * ER_WARN_QC_RESIZE. */ er_warn_qc_resize = 1282, /** - * \brief Common server error. Error number: 1283, symbol: + * \brief Error number: 1283, symbol: * ER_BAD_FT_COLUMN. */ er_bad_ft_column = 1283, /** - * \brief Common server error. Error number: 1284, symbol: + * \brief Error number: 1284, symbol: * ER_UNKNOWN_KEY_CACHE. */ er_unknown_key_cache = 1284, /** - * \brief Common server error. Error number: 1285, symbol: + * \brief Error number: 1285, symbol: * ER_WARN_HOSTNAME_WONT_WORK. */ er_warn_hostname_wont_work = 1285, /** - * \brief Common server error. Error number: 1286, symbol: + * \brief Error number: 1286, symbol: * ER_UNKNOWN_STORAGE_ENGINE. */ er_unknown_storage_engine = 1286, /** - * \brief Common server error. Error number: 1287, symbol: + * \brief Error number: 1287, symbol: * ER_WARN_DEPRECATED_SYNTAX. */ er_warn_deprecated_syntax = 1287, /** - * \brief Common server error. Error number: 1288, symbol: + * \brief Error number: 1288, symbol: * ER_NON_UPDATABLE_TABLE. */ er_non_updatable_table = 1288, /** - * \brief Common server error. Error number: 1289, symbol: + * \brief Error number: 1289, symbol: * ER_FEATURE_DISABLED. */ er_feature_disabled = 1289, /** - * \brief Common server error. Error number: 1290, symbol: + * \brief Error number: 1290, symbol: * ER_OPTION_PREVENTS_STATEMENT. */ er_option_prevents_statement = 1290, /** - * \brief Common server error. Error number: 1291, symbol: + * \brief Error number: 1291, symbol: * ER_DUPLICATED_VALUE_IN_TYPE. */ er_duplicated_value_in_type = 1291, /** - * \brief Common server error. Error number: 1292, symbol: + * \brief Error number: 1292, symbol: * ER_TRUNCATED_WRONG_VALUE. */ er_truncated_wrong_value = 1292, /** - * \brief Common server error. Error number: 1293, symbol: + * \brief Error number: 1293, symbol: * ER_TOO_MUCH_AUTO_TIMESTAMP_COLS. */ er_too_much_auto_timestamp_cols = 1293, /** - * \brief Common server error. Error number: 1294, symbol: + * \brief Error number: 1294, symbol: * ER_INVALID_ON_UPDATE. */ er_invalid_on_update = 1294, /** - * \brief Common server error. Error number: 1295, symbol: + * \brief Error number: 1295, symbol: * ER_UNSUPPORTED_PS. */ er_unsupported_ps = 1295, /** - * \brief Common server error. Error number: 1296, symbol: + * \brief Error number: 1296, symbol: * ER_GET_ERRMSG. */ er_get_errmsg = 1296, /** - * \brief Common server error. Error number: 1297, symbol: + * \brief Error number: 1297, symbol: * ER_GET_TEMPORARY_ERRMSG. */ er_get_temporary_errmsg = 1297, /** - * \brief Common server error. Error number: 1298, symbol: + * \brief Error number: 1298, symbol: * ER_UNKNOWN_TIME_ZONE. */ er_unknown_time_zone = 1298, /** - * \brief Common server error. Error number: 1299, symbol: + * \brief Error number: 1299, symbol: * ER_WARN_INVALID_TIMESTAMP. */ er_warn_invalid_timestamp = 1299, /** - * \brief Common server error. Error number: 1300, symbol: + * \brief Error number: 1300, symbol: * ER_INVALID_CHARACTER_STRING. */ er_invalid_character_string = 1300, /** - * \brief Common server error. Error number: 1301, symbol: + * \brief Error number: 1301, symbol: * ER_WARN_ALLOWED_PACKET_OVERFLOWED. */ er_warn_allowed_packet_overflowed = 1301, /** - * \brief Common server error. Error number: 1302, symbol: + * \brief Error number: 1302, symbol: * ER_CONFLICTING_DECLARATIONS. */ er_conflicting_declarations = 1302, /** - * \brief Common server error. Error number: 1303, symbol: + * \brief Error number: 1303, symbol: * ER_SP_NO_RECURSIVE_CREATE. */ er_sp_no_recursive_create = 1303, /** - * \brief Common server error. Error number: 1304, symbol: + * \brief Error number: 1304, symbol: * ER_SP_ALREADY_EXISTS. */ er_sp_already_exists = 1304, /** - * \brief Common server error. Error number: 1305, symbol: + * \brief Error number: 1305, symbol: * ER_SP_DOES_NOT_EXIST. */ er_sp_does_not_exist = 1305, /** - * \brief Common server error. Error number: 1306, symbol: + * \brief Error number: 1306, symbol: * ER_SP_DROP_FAILED. */ er_sp_drop_failed = 1306, /** - * \brief Common server error. Error number: 1307, symbol: + * \brief Error number: 1307, symbol: * ER_SP_STORE_FAILED. */ er_sp_store_failed = 1307, /** - * \brief Common server error. Error number: 1308, symbol: + * \brief Error number: 1308, symbol: * ER_SP_LILABEL_MISMATCH. */ er_sp_lilabel_mismatch = 1308, /** - * \brief Common server error. Error number: 1309, symbol: + * \brief Error number: 1309, symbol: * ER_SP_LABEL_REDEFINE. */ er_sp_label_redefine = 1309, /** - * \brief Common server error. Error number: 1310, symbol: + * \brief Error number: 1310, symbol: * ER_SP_LABEL_MISMATCH. */ er_sp_label_mismatch = 1310, /** - * \brief Common server error. Error number: 1311, symbol: + * \brief Error number: 1311, symbol: * ER_SP_UNINIT_VAR. */ er_sp_uninit_var = 1311, /** - * \brief Common server error. Error number: 1312, symbol: + * \brief Error number: 1312, symbol: * ER_SP_BADSELECT. */ er_sp_badselect = 1312, /** - * \brief Common server error. Error number: 1313, symbol: + * \brief Error number: 1313, symbol: * ER_SP_BADRETURN. */ er_sp_badreturn = 1313, /** - * \brief Common server error. Error number: 1314, symbol: + * \brief Error number: 1314, symbol: * ER_SP_BADSTATEMENT. */ er_sp_badstatement = 1314, /** - * \brief Common server error. Error number: 1315, symbol: + * \brief Error number: 1315, symbol: * ER_UPDATE_LOG_DEPRECATED_IGNORED. */ er_update_log_deprecated_ignored = 1315, /** - * \brief Common server error. Error number: 1316, symbol: + * \brief Error number: 1316, symbol: * ER_UPDATE_LOG_DEPRECATED_TRANSLATED. */ er_update_log_deprecated_translated = 1316, /** - * \brief Common server error. Error number: 1317, symbol: + * \brief Error number: 1317, symbol: * ER_QUERY_INTERRUPTED. */ er_query_interrupted = 1317, /** - * \brief Common server error. Error number: 1318, symbol: + * \brief Error number: 1318, symbol: * ER_SP_WRONG_NO_OF_ARGS. */ er_sp_wrong_no_of_args = 1318, /** - * \brief Common server error. Error number: 1319, symbol: + * \brief Error number: 1319, symbol: * ER_SP_COND_MISMATCH. */ er_sp_cond_mismatch = 1319, /** - * \brief Common server error. Error number: 1320, symbol: + * \brief Error number: 1320, symbol: * ER_SP_NORETURN. */ er_sp_noreturn = 1320, /** - * \brief Common server error. Error number: 1321, symbol: + * \brief Error number: 1321, symbol: * ER_SP_NORETURNEND. */ er_sp_noreturnend = 1321, /** - * \brief Common server error. Error number: 1322, symbol: + * \brief Error number: 1322, symbol: * ER_SP_BAD_CURSOR_QUERY. */ er_sp_bad_cursor_query = 1322, /** - * \brief Common server error. Error number: 1323, symbol: + * \brief Error number: 1323, symbol: * ER_SP_BAD_CURSOR_SELECT. */ er_sp_bad_cursor_select = 1323, /** - * \brief Common server error. Error number: 1324, symbol: + * \brief Error number: 1324, symbol: * ER_SP_CURSOR_MISMATCH. */ er_sp_cursor_mismatch = 1324, /** - * \brief Common server error. Error number: 1325, symbol: + * \brief Error number: 1325, symbol: * ER_SP_CURSOR_ALREADY_OPEN. */ er_sp_cursor_already_open = 1325, /** - * \brief Common server error. Error number: 1326, symbol: + * \brief Error number: 1326, symbol: * ER_SP_CURSOR_NOT_OPEN. */ er_sp_cursor_not_open = 1326, /** - * \brief Common server error. Error number: 1327, symbol: + * \brief Error number: 1327, symbol: * ER_SP_UNDECLARED_VAR. */ er_sp_undeclared_var = 1327, /** - * \brief Common server error. Error number: 1328, symbol: + * \brief Error number: 1328, symbol: * ER_SP_WRONG_NO_OF_FETCH_ARGS. */ er_sp_wrong_no_of_fetch_args = 1328, /** - * \brief Common server error. Error number: 1329, symbol: + * \brief Error number: 1329, symbol: * ER_SP_FETCH_NO_DATA. */ er_sp_fetch_no_data = 1329, /** - * \brief Common server error. Error number: 1330, symbol: + * \brief Error number: 1330, symbol: * ER_SP_DUP_PARAM. */ er_sp_dup_param = 1330, /** - * \brief Common server error. Error number: 1331, symbol: + * \brief Error number: 1331, symbol: * ER_SP_DUP_VAR. */ er_sp_dup_var = 1331, /** - * \brief Common server error. Error number: 1332, symbol: + * \brief Error number: 1332, symbol: * ER_SP_DUP_COND. */ er_sp_dup_cond = 1332, /** - * \brief Common server error. Error number: 1333, symbol: + * \brief Error number: 1333, symbol: * ER_SP_DUP_CURS. */ er_sp_dup_curs = 1333, /** - * \brief Common server error. Error number: 1334, symbol: + * \brief Error number: 1334, symbol: * ER_SP_CANT_ALTER. */ er_sp_cant_alter = 1334, /** - * \brief Common server error. Error number: 1335, symbol: + * \brief Error number: 1335, symbol: * ER_SP_SUBSELECT_NYI. */ er_sp_subselect_nyi = 1335, /** - * \brief Common server error. Error number: 1336, symbol: + * \brief Error number: 1336, symbol: * ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG. */ er_stmt_not_allowed_in_sf_or_trg = 1336, /** - * \brief Common server error. Error number: 1337, symbol: + * \brief Error number: 1337, symbol: * ER_SP_VARCOND_AFTER_CURSHNDLR. */ er_sp_varcond_after_curshndlr = 1337, /** - * \brief Common server error. Error number: 1338, symbol: + * \brief Error number: 1338, symbol: * ER_SP_CURSOR_AFTER_HANDLER. */ er_sp_cursor_after_handler = 1338, /** - * \brief Common server error. Error number: 1339, symbol: + * \brief Error number: 1339, symbol: * ER_SP_CASE_NOT_FOUND. */ er_sp_case_not_found = 1339, /** - * \brief Common server error. Error number: 1340, symbol: + * \brief Error number: 1340, symbol: * ER_FPARSER_TOO_BIG_FILE. */ er_fparser_too_big_file = 1340, /** - * \brief Common server error. Error number: 1341, symbol: + * \brief Error number: 1341, symbol: * ER_FPARSER_BAD_HEADER. */ er_fparser_bad_header = 1341, /** - * \brief Common server error. Error number: 1342, symbol: + * \brief Error number: 1342, symbol: * ER_FPARSER_EOF_IN_COMMENT. */ er_fparser_eof_in_comment = 1342, /** - * \brief Common server error. Error number: 1343, symbol: + * \brief Error number: 1343, symbol: * ER_FPARSER_ERROR_IN_PARAMETER. */ er_fparser_error_in_parameter = 1343, /** - * \brief Common server error. Error number: 1344, symbol: + * \brief Error number: 1344, symbol: * ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER. */ er_fparser_eof_in_unknown_parameter = 1344, /** - * \brief Common server error. Error number: 1345, symbol: + * \brief Error number: 1345, symbol: * ER_VIEW_NO_EXPLAIN. */ er_view_no_explain = 1345, /** - * \brief Common server error. Error number: 1346, symbol: + * \brief Error number: 1346, symbol: * ER_FRM_UNKNOWN_TYPE. */ er_frm_unknown_type = 1346, /** - * \brief Common server error. Error number: 1347, symbol: + * \brief Error number: 1347, symbol: * ER_WRONG_OBJECT. */ er_wrong_object = 1347, /** - * \brief Common server error. Error number: 1348, symbol: + * \brief Error number: 1348, symbol: * ER_NONUPDATEABLE_COLUMN. */ er_nonupdateable_column = 1348, /** - * \brief Common server error. Error number: 1350, symbol: + * \brief Error number: 1350, symbol: * ER_VIEW_SELECT_CLAUSE. */ er_view_select_clause = 1350, /** - * \brief Common server error. Error number: 1351, symbol: + * \brief Error number: 1351, symbol: * ER_VIEW_SELECT_VARIABLE. */ er_view_select_variable = 1351, /** - * \brief Common server error. Error number: 1352, symbol: + * \brief Error number: 1352, symbol: * ER_VIEW_SELECT_TMPTABLE. */ er_view_select_tmptable = 1352, /** - * \brief Common server error. Error number: 1353, symbol: + * \brief Error number: 1353, symbol: * ER_VIEW_WRONG_LIST. */ er_view_wrong_list = 1353, /** - * \brief Common server error. Error number: 1354, symbol: + * \brief Error number: 1354, symbol: * ER_WARN_VIEW_MERGE. */ er_warn_view_merge = 1354, /** - * \brief Common server error. Error number: 1355, symbol: + * \brief Error number: 1355, symbol: * ER_WARN_VIEW_WITHOUT_KEY. */ er_warn_view_without_key = 1355, /** - * \brief Common server error. Error number: 1356, symbol: + * \brief Error number: 1356, symbol: * ER_VIEW_INVALID. */ er_view_invalid = 1356, /** - * \brief Common server error. Error number: 1357, symbol: + * \brief Error number: 1357, symbol: * ER_SP_NO_DROP_SP. */ er_sp_no_drop_sp = 1357, /** - * \brief Common server error. Error number: 1358, symbol: + * \brief Error number: 1358, symbol: * ER_SP_GOTO_IN_HNDLR. */ er_sp_goto_in_hndlr = 1358, /** - * \brief Common server error. Error number: 1359, symbol: + * \brief Error number: 1359, symbol: * ER_TRG_ALREADY_EXISTS. */ er_trg_already_exists = 1359, /** - * \brief Common server error. Error number: 1360, symbol: + * \brief Error number: 1360, symbol: * ER_TRG_DOES_NOT_EXIST. */ er_trg_does_not_exist = 1360, /** - * \brief Common server error. Error number: 1361, symbol: + * \brief Error number: 1361, symbol: * ER_TRG_ON_VIEW_OR_TEMP_TABLE. */ er_trg_on_view_or_temp_table = 1361, /** - * \brief Common server error. Error number: 1362, symbol: + * \brief Error number: 1362, symbol: * ER_TRG_CANT_CHANGE_ROW. */ er_trg_cant_change_row = 1362, /** - * \brief Common server error. Error number: 1363, symbol: + * \brief Error number: 1363, symbol: * ER_TRG_NO_SUCH_ROW_IN_TRG. */ er_trg_no_such_row_in_trg = 1363, /** - * \brief Common server error. Error number: 1364, symbol: + * \brief Error number: 1364, symbol: * ER_NO_DEFAULT_FOR_FIELD. */ er_no_default_for_field = 1364, /** - * \brief Common server error. Error number: 1365, symbol: + * \brief Error number: 1365, symbol: * ER_DIVISION_BY_ZERO. */ er_division_by_zero = 1365, /** - * \brief Common server error. Error number: 1366, symbol: + * \brief Error number: 1366, symbol: * ER_TRUNCATED_WRONG_VALUE_FOR_FIELD. */ er_truncated_wrong_value_for_field = 1366, /** - * \brief Common server error. Error number: 1367, symbol: + * \brief Error number: 1367, symbol: * ER_ILLEGAL_VALUE_FOR_TYPE. */ er_illegal_value_for_type = 1367, /** - * \brief Common server error. Error number: 1368, symbol: + * \brief Error number: 1368, symbol: * ER_VIEW_NONUPD_CHECK. */ er_view_nonupd_check = 1368, /** - * \brief Common server error. Error number: 1369, symbol: + * \brief Error number: 1369, symbol: * ER_VIEW_CHECK_FAILED. */ er_view_check_failed = 1369, /** - * \brief Common server error. Error number: 1370, symbol: + * \brief Error number: 1370, symbol: * ER_PROCACCESS_DENIED_ERROR. */ er_procaccess_denied_error = 1370, /** - * \brief Common server error. Error number: 1371, symbol: + * \brief Error number: 1371, symbol: * ER_RELAY_LOG_FAIL. */ er_relay_log_fail = 1371, /** - * \brief Common server error. Error number: 1372, symbol: + * \brief Error number: 1372, symbol: * ER_PASSWD_LENGTH. */ er_passwd_length = 1372, /** - * \brief Common server error. Error number: 1373, symbol: + * \brief Error number: 1373, symbol: * ER_UNKNOWN_TARGET_BINLOG. */ er_unknown_target_binlog = 1373, /** - * \brief Common server error. Error number: 1374, symbol: + * \brief Error number: 1374, symbol: * ER_IO_ERR_LOG_INDEX_READ. */ er_io_err_log_index_read = 1374, /** - * \brief Common server error. Error number: 1375, symbol: + * \brief Error number: 1375, symbol: * ER_BINLOG_PURGE_PROHIBITED. */ er_binlog_purge_prohibited = 1375, /** - * \brief Common server error. Error number: 1376, symbol: + * \brief Error number: 1376, symbol: * ER_FSEEK_FAIL. */ er_fseek_fail = 1376, /** - * \brief Common server error. Error number: 1377, symbol: + * \brief Error number: 1377, symbol: * ER_BINLOG_PURGE_FATAL_ERR. */ er_binlog_purge_fatal_err = 1377, /** - * \brief Common server error. Error number: 1378, symbol: + * \brief Error number: 1378, symbol: * ER_LOG_IN_USE. */ er_log_in_use = 1378, /** - * \brief Common server error. Error number: 1379, symbol: + * \brief Error number: 1379, symbol: * ER_LOG_PURGE_UNKNOWN_ERR. */ er_log_purge_unknown_err = 1379, /** - * \brief Common server error. Error number: 1380, symbol: + * \brief Error number: 1380, symbol: * ER_RELAY_LOG_INIT. */ er_relay_log_init = 1380, /** - * \brief Common server error. Error number: 1381, symbol: + * \brief Error number: 1381, symbol: * ER_NO_BINARY_LOGGING. */ er_no_binary_logging = 1381, /** - * \brief Common server error. Error number: 1382, symbol: + * \brief Error number: 1382, symbol: * ER_RESERVED_SYNTAX. */ er_reserved_syntax = 1382, /** - * \brief Common server error. Error number: 1383, symbol: + * \brief Error number: 1383, symbol: * ER_WSAS_FAILED. */ er_wsas_failed = 1383, /** - * \brief Common server error. Error number: 1384, symbol: + * \brief Error number: 1384, symbol: * ER_DIFF_GROUPS_PROC. */ er_diff_groups_proc = 1384, /** - * \brief Common server error. Error number: 1385, symbol: + * \brief Error number: 1385, symbol: * ER_NO_GROUP_FOR_PROC. */ er_no_group_for_proc = 1385, /** - * \brief Common server error. Error number: 1386, symbol: + * \brief Error number: 1386, symbol: * ER_ORDER_WITH_PROC. */ er_order_with_proc = 1386, /** - * \brief Common server error. Error number: 1387, symbol: + * \brief Error number: 1387, symbol: * ER_LOGGING_PROHIBIT_CHANGING_OF. */ er_logging_prohibit_changing_of = 1387, /** - * \brief Common server error. Error number: 1388, symbol: + * \brief Error number: 1388, symbol: * ER_NO_FILE_MAPPING. */ er_no_file_mapping = 1388, /** - * \brief Common server error. Error number: 1389, symbol: + * \brief Error number: 1389, symbol: * ER_WRONG_MAGIC. */ er_wrong_magic = 1389, /** - * \brief Common server error. Error number: 1390, symbol: + * \brief Error number: 1390, symbol: * ER_PS_MANY_PARAM. */ er_ps_many_param = 1390, /** - * \brief Common server error. Error number: 1391, symbol: + * \brief Error number: 1391, symbol: * ER_KEY_PART_0. */ er_key_part_0 = 1391, /** - * \brief Common server error. Error number: 1392, symbol: + * \brief Error number: 1392, symbol: * ER_VIEW_CHECKSUM. */ er_view_checksum = 1392, /** - * \brief Common server error. Error number: 1393, symbol: + * \brief Error number: 1393, symbol: * ER_VIEW_MULTIUPDATE. */ er_view_multiupdate = 1393, /** - * \brief Common server error. Error number: 1394, symbol: + * \brief Error number: 1394, symbol: * ER_VIEW_NO_INSERT_FIELD_LIST. */ er_view_no_insert_field_list = 1394, /** - * \brief Common server error. Error number: 1395, symbol: + * \brief Error number: 1395, symbol: * ER_VIEW_DELETE_MERGE_VIEW. */ er_view_delete_merge_view = 1395, /** - * \brief Common server error. Error number: 1396, symbol: + * \brief Error number: 1396, symbol: * ER_CANNOT_USER. */ er_cannot_user = 1396, /** - * \brief Common server error. Error number: 1397, symbol: + * \brief Error number: 1397, symbol: * ER_XAER_NOTA. */ er_xaer_nota = 1397, /** - * \brief Common server error. Error number: 1398, symbol: + * \brief Error number: 1398, symbol: * ER_XAER_INVAL. */ er_xaer_inval = 1398, /** - * \brief Common server error. Error number: 1399, symbol: + * \brief Error number: 1399, symbol: * ER_XAER_RMFAIL. */ er_xaer_rmfail = 1399, /** - * \brief Common server error. Error number: 1400, symbol: + * \brief Error number: 1400, symbol: * ER_XAER_OUTSIDE. */ er_xaer_outside = 1400, /** - * \brief Common server error. Error number: 1401, symbol: + * \brief Error number: 1401, symbol: * ER_XAER_RMERR. */ er_xaer_rmerr = 1401, /** - * \brief Common server error. Error number: 1402, symbol: + * \brief Error number: 1402, symbol: * ER_XA_RBROLLBACK. */ er_xa_rbrollback = 1402, /** - * \brief Common server error. Error number: 1403, symbol: + * \brief Error number: 1403, symbol: * ER_NONEXISTING_PROC_GRANT. */ er_nonexisting_proc_grant = 1403, /** - * \brief Common server error. Error number: 1404, symbol: + * \brief Error number: 1404, symbol: * ER_PROC_AUTO_GRANT_FAIL. */ er_proc_auto_grant_fail = 1404, /** - * \brief Common server error. Error number: 1405, symbol: + * \brief Error number: 1405, symbol: * ER_PROC_AUTO_REVOKE_FAIL. */ er_proc_auto_revoke_fail = 1405, /** - * \brief Common server error. Error number: 1406, symbol: + * \brief Error number: 1406, symbol: * ER_DATA_TOO_LONG. */ er_data_too_long = 1406, /** - * \brief Common server error. Error number: 1407, symbol: + * \brief Error number: 1407, symbol: * ER_SP_BAD_SQLSTATE. */ er_sp_bad_sqlstate = 1407, /** - * \brief Common server error. Error number: 1408, symbol: + * \brief Error number: 1408, symbol: * ER_STARTUP. */ er_startup = 1408, /** - * \brief Common server error. Error number: 1409, symbol: + * \brief Error number: 1409, symbol: * ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR. */ er_load_from_fixed_size_rows_to_var = 1409, /** - * \brief Common server error. Error number: 1410, symbol: + * \brief Error number: 1410, symbol: * ER_CANT_CREATE_USER_WITH_GRANT. */ er_cant_create_user_with_grant = 1410, /** - * \brief Common server error. Error number: 1411, symbol: + * \brief Error number: 1411, symbol: * ER_WRONG_VALUE_FOR_TYPE. */ er_wrong_value_for_type = 1411, /** - * \brief Common server error. Error number: 1412, symbol: + * \brief Error number: 1412, symbol: * ER_TABLE_DEF_CHANGED. */ er_table_def_changed = 1412, /** - * \brief Common server error. Error number: 1413, symbol: + * \brief Error number: 1413, symbol: * ER_SP_DUP_HANDLER. */ er_sp_dup_handler = 1413, /** - * \brief Common server error. Error number: 1414, symbol: + * \brief Error number: 1414, symbol: * ER_SP_NOT_VAR_ARG. */ er_sp_not_var_arg = 1414, /** - * \brief Common server error. Error number: 1415, symbol: + * \brief Error number: 1415, symbol: * ER_SP_NO_RETSET. */ er_sp_no_retset = 1415, /** - * \brief Common server error. Error number: 1416, symbol: + * \brief Error number: 1416, symbol: * ER_CANT_CREATE_GEOMETRY_OBJECT. */ er_cant_create_geometry_object = 1416, /** - * \brief Common server error. Error number: 1417, symbol: + * \brief Error number: 1417, symbol: * ER_FAILED_ROUTINE_BREAK_BINLOG. */ er_failed_routine_break_binlog = 1417, /** - * \brief Common server error. Error number: 1418, symbol: + * \brief Error number: 1418, symbol: * ER_BINLOG_UNSAFE_ROUTINE. */ er_binlog_unsafe_routine = 1418, /** - * \brief Common server error. Error number: 1419, symbol: + * \brief Error number: 1419, symbol: * ER_BINLOG_CREATE_ROUTINE_NEED_SUPER. */ er_binlog_create_routine_need_super = 1419, /** - * \brief Common server error. Error number: 1420, symbol: + * \brief Error number: 1420, symbol: * ER_EXEC_STMT_WITH_OPEN_CURSOR. */ er_exec_stmt_with_open_cursor = 1420, /** - * \brief Common server error. Error number: 1421, symbol: + * \brief Error number: 1421, symbol: * ER_STMT_HAS_NO_OPEN_CURSOR. */ er_stmt_has_no_open_cursor = 1421, /** - * \brief Common server error. Error number: 1422, symbol: + * \brief Error number: 1422, symbol: * ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG. */ er_commit_not_allowed_in_sf_or_trg = 1422, /** - * \brief Common server error. Error number: 1423, symbol: + * \brief Error number: 1423, symbol: * ER_NO_DEFAULT_FOR_VIEW_FIELD. */ er_no_default_for_view_field = 1423, /** - * \brief Common server error. Error number: 1424, symbol: + * \brief Error number: 1424, symbol: * ER_SP_NO_RECURSION. */ er_sp_no_recursion = 1424, /** - * \brief Common server error. Error number: 1425, symbol: + * \brief Error number: 1425, symbol: * ER_TOO_BIG_SCALE. */ er_too_big_scale = 1425, /** - * \brief Common server error. Error number: 1426, symbol: + * \brief Error number: 1426, symbol: * ER_TOO_BIG_PRECISION. */ er_too_big_precision = 1426, /** - * \brief Common server error. Error number: 1427, symbol: + * \brief Error number: 1427, symbol: * ER_M_BIGGER_THAN_D. */ er_m_bigger_than_d = 1427, /** - * \brief Common server error. Error number: 1428, symbol: + * \brief Error number: 1428, symbol: * ER_WRONG_LOCK_OF_SYSTEM_TABLE. */ er_wrong_lock_of_system_table = 1428, /** - * \brief Common server error. Error number: 1429, symbol: + * \brief Error number: 1429, symbol: * ER_CONNECT_TO_FOREIGN_DATA_SOURCE. */ er_connect_to_foreign_data_source = 1429, /** - * \brief Common server error. Error number: 1430, symbol: + * \brief Error number: 1430, symbol: * ER_QUERY_ON_FOREIGN_DATA_SOURCE. */ er_query_on_foreign_data_source = 1430, /** - * \brief Common server error. Error number: 1431, symbol: + * \brief Error number: 1431, symbol: * ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST. */ er_foreign_data_source_doesnt_exist = 1431, /** - * \brief Common server error. Error number: 1432, symbol: + * \brief Error number: 1432, symbol: * ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE. */ er_foreign_data_string_invalid_cant_create = 1432, /** - * \brief Common server error. Error number: 1433, symbol: + * \brief Error number: 1433, symbol: * ER_FOREIGN_DATA_STRING_INVALID. */ er_foreign_data_string_invalid = 1433, /** - * \brief Common server error. Error number: 1434, symbol: + * \brief Error number: 1434, symbol: * ER_CANT_CREATE_FEDERATED_TABLE. */ er_cant_create_federated_table = 1434, /** - * \brief Common server error. Error number: 1435, symbol: + * \brief Error number: 1435, symbol: * ER_TRG_IN_WRONG_SCHEMA. */ er_trg_in_wrong_schema = 1435, /** - * \brief Common server error. Error number: 1436, symbol: + * \brief Error number: 1436, symbol: * ER_STACK_OVERRUN_NEED_MORE. */ er_stack_overrun_need_more = 1436, /** - * \brief Common server error. Error number: 1437, symbol: + * \brief Error number: 1437, symbol: * ER_TOO_LONG_BODY. */ er_too_long_body = 1437, /** - * \brief Common server error. Error number: 1438, symbol: + * \brief Error number: 1438, symbol: * ER_WARN_CANT_DROP_DEFAULT_KEYCACHE. */ er_warn_cant_drop_default_keycache = 1438, /** - * \brief Common server error. Error number: 1439, symbol: + * \brief Error number: 1439, symbol: * ER_TOO_BIG_DISPLAYWIDTH. */ er_too_big_displaywidth = 1439, /** - * \brief Common server error. Error number: 1440, symbol: + * \brief Error number: 1440, symbol: * ER_XAER_DUPID. */ er_xaer_dupid = 1440, /** - * \brief Common server error. Error number: 1441, symbol: + * \brief Error number: 1441, symbol: * ER_DATETIME_FUNCTION_OVERFLOW. */ er_datetime_function_overflow = 1441, /** - * \brief Common server error. Error number: 1442, symbol: + * \brief Error number: 1442, symbol: * ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG. */ er_cant_update_used_table_in_sf_or_trg = 1442, /** - * \brief Common server error. Error number: 1443, symbol: + * \brief Error number: 1443, symbol: * ER_VIEW_PREVENT_UPDATE. */ er_view_prevent_update = 1443, /** - * \brief Common server error. Error number: 1444, symbol: + * \brief Error number: 1444, symbol: * ER_PS_NO_RECURSION. */ er_ps_no_recursion = 1444, /** - * \brief Common server error. Error number: 1445, symbol: + * \brief Error number: 1445, symbol: * ER_SP_CANT_SET_AUTOCOMMIT. */ er_sp_cant_set_autocommit = 1445, /** - * \brief Common server error. Error number: 1446, symbol: + * \brief Error number: 1446, symbol: * ER_MALFORMED_DEFINER. */ er_malformed_definer = 1446, /** - * \brief Common server error. Error number: 1447, symbol: + * \brief Error number: 1447, symbol: * ER_VIEW_FRM_NO_USER. */ er_view_frm_no_user = 1447, /** - * \brief Common server error. Error number: 1448, symbol: + * \brief Error number: 1448, symbol: * ER_VIEW_OTHER_USER. */ er_view_other_user = 1448, /** - * \brief Common server error. Error number: 1449, symbol: + * \brief Error number: 1449, symbol: * ER_NO_SUCH_USER. */ er_no_such_user = 1449, /** - * \brief Common server error. Error number: 1450, symbol: + * \brief Error number: 1450, symbol: * ER_FORBID_SCHEMA_CHANGE. */ er_forbid_schema_change = 1450, /** - * \brief Common server error. Error number: 1451, symbol: + * \brief Error number: 1451, symbol: * ER_ROW_IS_REFERENCED_2. */ er_row_is_referenced_2 = 1451, /** - * \brief Common server error. Error number: 1452, symbol: + * \brief Error number: 1452, symbol: * ER_NO_REFERENCED_ROW_2. */ er_no_referenced_row_2 = 1452, /** - * \brief Common server error. Error number: 1453, symbol: + * \brief Error number: 1453, symbol: * ER_SP_BAD_VAR_SHADOW. */ er_sp_bad_var_shadow = 1453, /** - * \brief Common server error. Error number: 1454, symbol: + * \brief Error number: 1454, symbol: * ER_TRG_NO_DEFINER. */ er_trg_no_definer = 1454, /** - * \brief Common server error. Error number: 1455, symbol: + * \brief Error number: 1455, symbol: * ER_OLD_FILE_FORMAT. */ er_old_file_format = 1455, /** - * \brief Common server error. Error number: 1456, symbol: + * \brief Error number: 1456, symbol: * ER_SP_RECURSION_LIMIT. */ er_sp_recursion_limit = 1456, /** - * \brief Common server error. Error number: 1457, symbol: + * \brief Error number: 1457, symbol: * ER_SP_PROC_TABLE_CORRUPT. */ er_sp_proc_table_corrupt = 1457, /** - * \brief Common server error. Error number: 1458, symbol: + * \brief Error number: 1458, symbol: * ER_SP_WRONG_NAME. */ er_sp_wrong_name = 1458, /** - * \brief Common server error. Error number: 1459, symbol: + * \brief Error number: 1459, symbol: * ER_TABLE_NEEDS_UPGRADE. */ er_table_needs_upgrade = 1459, /** - * \brief Common server error. Error number: 1460, symbol: + * \brief Error number: 1460, symbol: * ER_SP_NO_AGGREGATE. */ er_sp_no_aggregate = 1460, /** - * \brief Common server error. Error number: 1461, symbol: + * \brief Error number: 1461, symbol: * ER_MAX_PREPARED_STMT_COUNT_REACHED. */ er_max_prepared_stmt_count_reached = 1461, /** - * \brief Common server error. Error number: 1462, symbol: + * \brief Error number: 1462, symbol: * ER_VIEW_RECURSIVE. */ er_view_recursive = 1462, /** - * \brief Common server error. Error number: 1463, symbol: + * \brief Error number: 1463, symbol: * ER_NON_GROUPING_FIELD_USED. */ er_non_grouping_field_used = 1463, /** - * \brief Common server error. Error number: 1464, symbol: + * \brief Error number: 1464, symbol: * ER_TABLE_CANT_HANDLE_SPKEYS. */ er_table_cant_handle_spkeys = 1464, /** - * \brief Common server error. Error number: 1465, symbol: + * \brief Error number: 1465, symbol: * ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA. */ er_no_triggers_on_system_schema = 1465, /** - * \brief Common server error. Error number: 1466, symbol: + * \brief Error number: 1466, symbol: * ER_REMOVED_SPACES. */ er_removed_spaces = 1466, /** - * \brief Common server error. Error number: 1467, symbol: + * \brief Error number: 1467, symbol: * ER_AUTOINC_READ_FAILED. */ er_autoinc_read_failed = 1467, /** - * \brief Common server error. Error number: 1468, symbol: + * \brief Error number: 1468, symbol: * ER_USERNAME. */ er_username = 1468, /** - * \brief Common server error. Error number: 1469, symbol: + * \brief Error number: 1469, symbol: * ER_HOSTNAME. */ er_hostname = 1469, /** - * \brief Common server error. Error number: 1470, symbol: + * \brief Error number: 1470, symbol: * ER_WRONG_STRING_LENGTH. */ er_wrong_string_length = 1470, /** - * \brief Common server error. Error number: 1471, symbol: + * \brief Error number: 1471, symbol: * ER_NON_INSERTABLE_TABLE. */ er_non_insertable_table = 1471, /** - * \brief Common server error. Error number: 1472, symbol: + * \brief Error number: 1472, symbol: * ER_ADMIN_WRONG_MRG_TABLE. */ er_admin_wrong_mrg_table = 1472, /** - * \brief Common server error. Error number: 1473, symbol: + * \brief Error number: 1473, symbol: * ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT. */ er_too_high_level_of_nesting_for_select = 1473, /** - * \brief Common server error. Error number: 1474, symbol: + * \brief Error number: 1474, symbol: * ER_NAME_BECOMES_EMPTY. */ er_name_becomes_empty = 1474, /** - * \brief Common server error. Error number: 1475, symbol: + * \brief Error number: 1475, symbol: * ER_AMBIGUOUS_FIELD_TERM. */ er_ambiguous_field_term = 1475, /** - * \brief Common server error. Error number: 1476, symbol: + * \brief Error number: 1476, symbol: * ER_FOREIGN_SERVER_EXISTS. */ er_foreign_server_exists = 1476, /** - * \brief Common server error. Error number: 1477, symbol: + * \brief Error number: 1477, symbol: * ER_FOREIGN_SERVER_DOESNT_EXIST. */ er_foreign_server_doesnt_exist = 1477, /** - * \brief Common server error. Error number: 1478, symbol: + * \brief Error number: 1478, symbol: * ER_ILLEGAL_HA_CREATE_OPTION. */ er_illegal_ha_create_option = 1478, /** - * \brief Common server error. Error number: 1479, symbol: + * \brief Error number: 1479, symbol: * ER_PARTITION_REQUIRES_VALUES_ERROR. */ er_partition_requires_values_error = 1479, /** - * \brief Common server error. Error number: 1480, symbol: + * \brief Error number: 1480, symbol: * ER_PARTITION_WRONG_VALUES_ERROR. */ er_partition_wrong_values_error = 1480, /** - * \brief Common server error. Error number: 1481, symbol: + * \brief Error number: 1481, symbol: * ER_PARTITION_MAXVALUE_ERROR. */ er_partition_maxvalue_error = 1481, /** - * \brief Common server error. Error number: 1482, symbol: + * \brief Error number: 1482, symbol: * ER_PARTITION_SUBPARTITION_ERROR. */ er_partition_subpartition_error = 1482, /** - * \brief Common server error. Error number: 1483, symbol: + * \brief Error number: 1483, symbol: * ER_PARTITION_SUBPART_MIX_ERROR. */ er_partition_subpart_mix_error = 1483, /** - * \brief Common server error. Error number: 1484, symbol: + * \brief Error number: 1484, symbol: * ER_PARTITION_WRONG_NO_PART_ERROR. */ er_partition_wrong_no_part_error = 1484, /** - * \brief Common server error. Error number: 1485, symbol: + * \brief Error number: 1485, symbol: * ER_PARTITION_WRONG_NO_SUBPART_ERROR. */ er_partition_wrong_no_subpart_error = 1485, /** - * \brief Common server error. Error number: 1486, symbol: + * \brief Error number: 1486, symbol: * ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR. */ er_wrong_expr_in_partition_func_error = 1486, /** - * \brief Common server error. Error number: 1488, symbol: + * \brief Error number: 1488, symbol: * ER_FIELD_NOT_FOUND_PART_ERROR. */ er_field_not_found_part_error = 1488, /** - * \brief Common server error. Error number: 1489, symbol: + * \brief Error number: 1489, symbol: * ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR. */ er_list_of_fields_only_in_hash_error = 1489, /** - * \brief Common server error. Error number: 1490, symbol: + * \brief Error number: 1490, symbol: * ER_INCONSISTENT_PARTITION_INFO_ERROR. */ er_inconsistent_partition_info_error = 1490, /** - * \brief Common server error. Error number: 1491, symbol: + * \brief Error number: 1491, symbol: * ER_PARTITION_FUNC_NOT_ALLOWED_ERROR. */ er_partition_func_not_allowed_error = 1491, /** - * \brief Common server error. Error number: 1492, symbol: + * \brief Error number: 1492, symbol: * ER_PARTITIONS_MUST_BE_DEFINED_ERROR. */ er_partitions_must_be_defined_error = 1492, /** - * \brief Common server error. Error number: 1493, symbol: + * \brief Error number: 1493, symbol: * ER_RANGE_NOT_INCREASING_ERROR. */ er_range_not_increasing_error = 1493, /** - * \brief Common server error. Error number: 1494, symbol: + * \brief Error number: 1494, symbol: * ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR. */ er_inconsistent_type_of_functions_error = 1494, /** - * \brief Common server error. Error number: 1495, symbol: + * \brief Error number: 1495, symbol: * ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR. */ er_multiple_def_const_in_list_part_error = 1495, /** - * \brief Common server error. Error number: 1496, symbol: + * \brief Error number: 1496, symbol: * ER_PARTITION_ENTRY_ERROR. */ er_partition_entry_error = 1496, /** - * \brief Common server error. Error number: 1497, symbol: + * \brief Error number: 1497, symbol: * ER_MIX_HANDLER_ERROR. */ er_mix_handler_error = 1497, /** - * \brief Common server error. Error number: 1498, symbol: + * \brief Error number: 1498, symbol: * ER_PARTITION_NOT_DEFINED_ERROR. */ er_partition_not_defined_error = 1498, /** - * \brief Common server error. Error number: 1499, symbol: + * \brief Error number: 1499, symbol: * ER_TOO_MANY_PARTITIONS_ERROR. */ er_too_many_partitions_error = 1499, /** - * \brief Common server error. Error number: 1500, symbol: + * \brief Error number: 1500, symbol: * ER_SUBPARTITION_ERROR. */ er_subpartition_error = 1500, /** - * \brief Common server error. Error number: 1501, symbol: + * \brief Error number: 1501, symbol: * ER_CANT_CREATE_HANDLER_FILE. */ er_cant_create_handler_file = 1501, /** - * \brief Common server error. Error number: 1502, symbol: + * \brief Error number: 1502, symbol: * ER_BLOB_FIELD_IN_PART_FUNC_ERROR. */ er_blob_field_in_part_func_error = 1502, /** - * \brief Common server error. Error number: 1503, symbol: + * \brief Error number: 1503, symbol: * ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF. */ er_unique_key_need_all_fields_in_pf = 1503, /** - * \brief Common server error. Error number: 1504, symbol: + * \brief Error number: 1504, symbol: * ER_NO_PARTS_ERROR. */ er_no_parts_error = 1504, /** - * \brief Common server error. Error number: 1505, symbol: + * \brief Error number: 1505, symbol: * ER_PARTITION_MGMT_ON_NONPARTITIONED. */ er_partition_mgmt_on_nonpartitioned = 1505, /** - * \brief Common server error. Error number: 1507, symbol: + * \brief Error number: 1507, symbol: * ER_DROP_PARTITION_NON_EXISTENT. */ er_drop_partition_non_existent = 1507, /** - * \brief Common server error. Error number: 1508, symbol: + * \brief Error number: 1508, symbol: * ER_DROP_LAST_PARTITION. */ er_drop_last_partition = 1508, /** - * \brief Common server error. Error number: 1509, symbol: + * \brief Error number: 1509, symbol: * ER_COALESCE_ONLY_ON_HASH_PARTITION. */ er_coalesce_only_on_hash_partition = 1509, /** - * \brief Common server error. Error number: 1510, symbol: + * \brief Error number: 1510, symbol: * ER_REORG_HASH_ONLY_ON_SAME_NO. */ er_reorg_hash_only_on_same_no = 1510, /** - * \brief Common server error. Error number: 1511, symbol: + * \brief Error number: 1511, symbol: * ER_REORG_NO_PARAM_ERROR. */ er_reorg_no_param_error = 1511, /** - * \brief Common server error. Error number: 1512, symbol: + * \brief Error number: 1512, symbol: * ER_ONLY_ON_RANGE_LIST_PARTITION. */ er_only_on_range_list_partition = 1512, /** - * \brief Common server error. Error number: 1513, symbol: + * \brief Error number: 1513, symbol: * ER_ADD_PARTITION_SUBPART_ERROR. */ er_add_partition_subpart_error = 1513, /** - * \brief Common server error. Error number: 1514, symbol: + * \brief Error number: 1514, symbol: * ER_ADD_PARTITION_NO_NEW_PARTITION. */ er_add_partition_no_new_partition = 1514, /** - * \brief Common server error. Error number: 1515, symbol: + * \brief Error number: 1515, symbol: * ER_COALESCE_PARTITION_NO_PARTITION. */ er_coalesce_partition_no_partition = 1515, /** - * \brief Common server error. Error number: 1516, symbol: + * \brief Error number: 1516, symbol: * ER_REORG_PARTITION_NOT_EXIST. */ er_reorg_partition_not_exist = 1516, /** - * \brief Common server error. Error number: 1517, symbol: + * \brief Error number: 1517, symbol: * ER_SAME_NAME_PARTITION. */ er_same_name_partition = 1517, /** - * \brief Common server error. Error number: 1518, symbol: + * \brief Error number: 1518, symbol: * ER_NO_BINLOG_ERROR. */ er_no_binlog_error = 1518, /** - * \brief Common server error. Error number: 1519, symbol: + * \brief Error number: 1519, symbol: * ER_CONSECUTIVE_REORG_PARTITIONS. */ er_consecutive_reorg_partitions = 1519, /** - * \brief Common server error. Error number: 1520, symbol: + * \brief Error number: 1520, symbol: * ER_REORG_OUTSIDE_RANGE. */ er_reorg_outside_range = 1520, /** - * \brief Common server error. Error number: 1521, symbol: + * \brief Error number: 1521, symbol: * ER_PARTITION_FUNCTION_FAILURE. */ er_partition_function_failure = 1521, /** - * \brief Common server error. Error number: 1522, symbol: + * \brief Error number: 1522, symbol: * ER_PART_STATE_ERROR. */ er_part_state_error = 1522, /** - * \brief Common server error. Error number: 1523, symbol: + * \brief Error number: 1523, symbol: * ER_LIMITED_PART_RANGE. */ er_limited_part_range = 1523, /** - * \brief Common server error. Error number: 1524, symbol: + * \brief Error number: 1524, symbol: * ER_PLUGIN_IS_NOT_LOADED. */ er_plugin_is_not_loaded = 1524, /** - * \brief Common server error. Error number: 1525, symbol: + * \brief Error number: 1525, symbol: * ER_WRONG_VALUE. */ er_wrong_value = 1525, /** - * \brief Common server error. Error number: 1526, symbol: + * \brief Error number: 1526, symbol: * ER_NO_PARTITION_FOR_GIVEN_VALUE. */ er_no_partition_for_given_value = 1526, /** - * \brief Common server error. Error number: 1527, symbol: + * \brief Error number: 1527, symbol: * ER_FILEGROUP_OPTION_ONLY_ONCE. */ er_filegroup_option_only_once = 1527, /** - * \brief Common server error. Error number: 1528, symbol: + * \brief Error number: 1528, symbol: * ER_CREATE_FILEGROUP_FAILED. */ er_create_filegroup_failed = 1528, /** - * \brief Common server error. Error number: 1529, symbol: + * \brief Error number: 1529, symbol: * ER_DROP_FILEGROUP_FAILED. */ er_drop_filegroup_failed = 1529, /** - * \brief Common server error. Error number: 1530, symbol: + * \brief Error number: 1530, symbol: * ER_TABLESPACE_AUTO_EXTEND_ERROR. */ er_tablespace_auto_extend_error = 1530, /** - * \brief Common server error. Error number: 1531, symbol: + * \brief Error number: 1531, symbol: * ER_WRONG_SIZE_NUMBER. */ er_wrong_size_number = 1531, /** - * \brief Common server error. Error number: 1532, symbol: + * \brief Error number: 1532, symbol: * ER_SIZE_OVERFLOW_ERROR. */ er_size_overflow_error = 1532, /** - * \brief Common server error. Error number: 1533, symbol: + * \brief Error number: 1533, symbol: * ER_ALTER_FILEGROUP_FAILED. */ er_alter_filegroup_failed = 1533, /** - * \brief Common server error. Error number: 1534, symbol: + * \brief Error number: 1534, symbol: * ER_BINLOG_ROW_LOGGING_FAILED. */ er_binlog_row_logging_failed = 1534, /** - * \brief Common server error. Error number: 1535, symbol: + * \brief Error number: 1535, symbol: * ER_BINLOG_ROW_WRONG_TABLE_DEF. */ er_binlog_row_wrong_table_def = 1535, /** - * \brief Common server error. Error number: 1536, symbol: + * \brief Error number: 1536, symbol: * ER_BINLOG_ROW_RBR_TO_SBR. */ er_binlog_row_rbr_to_sbr = 1536, /** - * \brief Common server error. Error number: 1537, symbol: + * \brief Error number: 1537, symbol: * ER_EVENT_ALREADY_EXISTS. */ er_event_already_exists = 1537, /** - * \brief Common server error. Error number: 1538, symbol: + * \brief Error number: 1538, symbol: * ER_EVENT_STORE_FAILED. */ er_event_store_failed = 1538, /** - * \brief Common server error. Error number: 1539, symbol: + * \brief Error number: 1539, symbol: * ER_EVENT_DOES_NOT_EXIST. */ er_event_does_not_exist = 1539, /** - * \brief Common server error. Error number: 1540, symbol: + * \brief Error number: 1540, symbol: * ER_EVENT_CANT_ALTER. */ er_event_cant_alter = 1540, /** - * \brief Common server error. Error number: 1541, symbol: + * \brief Error number: 1541, symbol: * ER_EVENT_DROP_FAILED. */ er_event_drop_failed = 1541, /** - * \brief Common server error. Error number: 1542, symbol: + * \brief Error number: 1542, symbol: * ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG. */ er_event_interval_not_positive_or_too_big = 1542, /** - * \brief Common server error. Error number: 1543, symbol: + * \brief Error number: 1543, symbol: * ER_EVENT_ENDS_BEFORE_STARTS. */ er_event_ends_before_starts = 1543, /** - * \brief Common server error. Error number: 1544, symbol: + * \brief Error number: 1544, symbol: * ER_EVENT_EXEC_TIME_IN_THE_PAST. */ er_event_exec_time_in_the_past = 1544, /** - * \brief Common server error. Error number: 1545, symbol: + * \brief Error number: 1545, symbol: * ER_EVENT_OPEN_TABLE_FAILED. */ er_event_open_table_failed = 1545, /** - * \brief Common server error. Error number: 1546, symbol: + * \brief Error number: 1546, symbol: * ER_EVENT_NEITHER_M_EXPR_NOR_M_AT. */ er_event_neither_m_expr_nor_m_at = 1546, /** - * \brief Common server error. Error number: 1549, symbol: + * \brief Error number: 1549, symbol: * ER_EVENT_CANNOT_DELETE. */ er_event_cannot_delete = 1549, /** - * \brief Common server error. Error number: 1550, symbol: + * \brief Error number: 1550, symbol: * ER_EVENT_COMPILE_ERROR. */ er_event_compile_error = 1550, /** - * \brief Common server error. Error number: 1551, symbol: + * \brief Error number: 1551, symbol: * ER_EVENT_SAME_NAME. */ er_event_same_name = 1551, /** - * \brief Common server error. Error number: 1552, symbol: + * \brief Error number: 1552, symbol: * ER_EVENT_DATA_TOO_LONG. */ er_event_data_too_long = 1552, /** - * \brief Common server error. Error number: 1553, symbol: + * \brief Error number: 1553, symbol: * ER_DROP_INDEX_FK. */ er_drop_index_fk = 1553, /** - * \brief Common server error. Error number: 1554, symbol: + * \brief Error number: 1554, symbol: * ER_WARN_DEPRECATED_SYNTAX_WITH_VER. */ er_warn_deprecated_syntax_with_ver = 1554, /** - * \brief Common server error. Error number: 1555, symbol: + * \brief Error number: 1555, symbol: * ER_CANT_WRITE_LOCK_LOG_TABLE. */ er_cant_write_lock_log_table = 1555, /** - * \brief Common server error. Error number: 1556, symbol: + * \brief Error number: 1556, symbol: * ER_CANT_LOCK_LOG_TABLE. */ er_cant_lock_log_table = 1556, /** - * \brief Common server error. Error number: 1558, symbol: + * \brief Error number: 1558, symbol: * ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE. */ er_col_count_doesnt_match_please_update = 1558, /** - * \brief Common server error. Error number: 1559, symbol: + * \brief Error number: 1559, symbol: * ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR. */ er_temp_table_prevents_switch_out_of_rbr = 1559, /** - * \brief Common server error. Error number: 1560, symbol: + * \brief Error number: 1560, symbol: * ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT. */ er_stored_function_prevents_switch_binlog_format = 1560, /** - * \brief Common server error. Error number: 1562, symbol: + * \brief Error number: 1562, symbol: * ER_PARTITION_NO_TEMPORARY. */ er_partition_no_temporary = 1562, /** - * \brief Common server error. Error number: 1563, symbol: + * \brief Error number: 1563, symbol: * ER_PARTITION_CONST_DOMAIN_ERROR. */ er_partition_const_domain_error = 1563, /** - * \brief Common server error. Error number: 1564, symbol: + * \brief Error number: 1564, symbol: * ER_PARTITION_FUNCTION_IS_NOT_ALLOWED. */ er_partition_function_is_not_allowed = 1564, /** - * \brief Common server error. Error number: 1565, symbol: + * \brief Error number: 1565, symbol: * ER_DDL_LOG_ERROR. */ er_ddl_log_error = 1565, /** - * \brief Common server error. Error number: 1566, symbol: + * \brief Error number: 1566, symbol: * ER_NULL_IN_VALUES_LESS_THAN. */ er_null_in_values_less_than = 1566, /** - * \brief Common server error. Error number: 1567, symbol: + * \brief Error number: 1567, symbol: * ER_WRONG_PARTITION_NAME. */ er_wrong_partition_name = 1567, /** - * \brief Common server error. Error number: 1568, symbol: + * \brief Error number: 1568, symbol: * ER_CANT_CHANGE_TX_CHARACTERISTICS. */ er_cant_change_tx_characteristics = 1568, /** - * \brief Common server error. Error number: 1569, symbol: + * \brief Error number: 1569, symbol: * ER_DUP_ENTRY_AUTOINCREMENT_CASE. */ er_dup_entry_autoincrement_case = 1569, /** - * \brief Common server error. Error number: 1570, symbol: + * \brief Error number: 1570, symbol: * ER_EVENT_MODIFY_QUEUE_ERROR. */ er_event_modify_queue_error = 1570, /** - * \brief Common server error. Error number: 1571, symbol: + * \brief Error number: 1571, symbol: * ER_EVENT_SET_VAR_ERROR. */ er_event_set_var_error = 1571, /** - * \brief Common server error. Error number: 1572, symbol: + * \brief Error number: 1572, symbol: * ER_PARTITION_MERGE_ERROR. */ er_partition_merge_error = 1572, /** - * \brief Common server error. Error number: 1573, symbol: + * \brief Error number: 1573, symbol: * ER_CANT_ACTIVATE_LOG. */ er_cant_activate_log = 1573, /** - * \brief Common server error. Error number: 1574, symbol: + * \brief Error number: 1574, symbol: * ER_RBR_NOT_AVAILABLE. */ er_rbr_not_available = 1574, /** - * \brief Common server error. Error number: 1575, symbol: + * \brief Error number: 1575, symbol: * ER_BASE64_DECODE_ERROR. */ er_base64_decode_error = 1575, /** - * \brief Common server error. Error number: 1576, symbol: + * \brief Error number: 1576, symbol: * ER_EVENT_RECURSION_FORBIDDEN. */ er_event_recursion_forbidden = 1576, /** - * \brief Common server error. Error number: 1577, symbol: + * \brief Error number: 1577, symbol: * ER_EVENTS_DB_ERROR. */ er_events_db_error = 1577, /** - * \brief Common server error. Error number: 1578, symbol: + * \brief Error number: 1578, symbol: * ER_ONLY_INTEGERS_ALLOWED. */ er_only_integers_allowed = 1578, /** - * \brief Common server error. Error number: 1579, symbol: + * \brief Error number: 1579, symbol: * ER_UNSUPORTED_LOG_ENGINE. */ er_unsuported_log_engine = 1579, /** - * \brief Common server error. Error number: 1580, symbol: + * \brief Error number: 1580, symbol: * ER_BAD_LOG_STATEMENT. */ er_bad_log_statement = 1580, /** - * \brief Common server error. Error number: 1581, symbol: + * \brief Error number: 1581, symbol: * ER_CANT_RENAME_LOG_TABLE. */ er_cant_rename_log_table = 1581, /** - * \brief Common server error. Error number: 1582, symbol: + * \brief Error number: 1582, symbol: * ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT. */ er_wrong_paramcount_to_native_fct = 1582, /** - * \brief Common server error. Error number: 1583, symbol: + * \brief Error number: 1583, symbol: * ER_WRONG_PARAMETERS_TO_NATIVE_FCT. */ er_wrong_parameters_to_native_fct = 1583, /** - * \brief Common server error. Error number: 1584, symbol: + * \brief Error number: 1584, symbol: * ER_WRONG_PARAMETERS_TO_STORED_FCT. */ er_wrong_parameters_to_stored_fct = 1584, /** - * \brief Common server error. Error number: 1585, symbol: + * \brief Error number: 1585, symbol: * ER_NATIVE_FCT_NAME_COLLISION. */ er_native_fct_name_collision = 1585, /** - * \brief Common server error. Error number: 1586, symbol: + * \brief Error number: 1586, symbol: * ER_DUP_ENTRY_WITH_KEY_NAME. */ er_dup_entry_with_key_name = 1586, /** - * \brief Common server error. Error number: 1587, symbol: + * \brief Error number: 1587, symbol: * ER_BINLOG_PURGE_EMFILE. */ er_binlog_purge_emfile = 1587, /** - * \brief Common server error. Error number: 1588, symbol: + * \brief Error number: 1588, symbol: * ER_EVENT_CANNOT_CREATE_IN_THE_PAST. */ er_event_cannot_create_in_the_past = 1588, /** - * \brief Common server error. Error number: 1589, symbol: + * \brief Error number: 1589, symbol: * ER_EVENT_CANNOT_ALTER_IN_THE_PAST. */ er_event_cannot_alter_in_the_past = 1589, /** - * \brief Common server error. Error number: 1590, symbol: + * \brief Error number: 1590, symbol: * ER_SLAVE_INCIDENT. */ er_slave_incident = 1590, /** - * \brief Common server error. Error number: 1591, symbol: + * \brief Error number: 1591, symbol: * ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT. */ er_no_partition_for_given_value_silent = 1591, /** - * \brief Common server error. Error number: 1592, symbol: + * \brief Error number: 1592, symbol: * ER_BINLOG_UNSAFE_STATEMENT. */ er_binlog_unsafe_statement = 1592, /** - * \brief Common server error. Error number: 1594, symbol: + * \brief Error number: 1594, symbol: * ER_SLAVE_RELAY_LOG_READ_FAILURE. */ er_slave_relay_log_read_failure = 1594, /** - * \brief Common server error. Error number: 1595, symbol: + * \brief Error number: 1595, symbol: * ER_SLAVE_RELAY_LOG_WRITE_FAILURE. */ er_slave_relay_log_write_failure = 1595, /** - * \brief Common server error. Error number: 1596, symbol: + * \brief Error number: 1596, symbol: * ER_SLAVE_CREATE_EVENT_FAILURE. */ er_slave_create_event_failure = 1596, /** - * \brief Common server error. Error number: 1597, symbol: + * \brief Error number: 1597, symbol: * ER_SLAVE_MASTER_COM_FAILURE. */ er_slave_master_com_failure = 1597, /** - * \brief Common server error. Error number: 1598, symbol: + * \brief Error number: 1598, symbol: * ER_BINLOG_LOGGING_IMPOSSIBLE. */ er_binlog_logging_impossible = 1598, /** - * \brief Common server error. Error number: 1599, symbol: + * \brief Error number: 1599, symbol: * ER_VIEW_NO_CREATION_CTX. */ er_view_no_creation_ctx = 1599, /** - * \brief Common server error. Error number: 1600, symbol: + * \brief Error number: 1600, symbol: * ER_VIEW_INVALID_CREATION_CTX. */ er_view_invalid_creation_ctx = 1600, /** - * \brief Common server error. Error number: 1601, symbol: + * \brief Error number: 1601, symbol: * ER_SR_INVALID_CREATION_CTX. */ er_sr_invalid_creation_ctx = 1601, /** - * \brief Common server error. Error number: 1602, symbol: + * \brief Error number: 1602, symbol: * ER_TRG_CORRUPTED_FILE. */ er_trg_corrupted_file = 1602, /** - * \brief Common server error. Error number: 1603, symbol: + * \brief Error number: 1603, symbol: * ER_TRG_NO_CREATION_CTX. */ er_trg_no_creation_ctx = 1603, /** - * \brief Common server error. Error number: 1604, symbol: + * \brief Error number: 1604, symbol: * ER_TRG_INVALID_CREATION_CTX. */ er_trg_invalid_creation_ctx = 1604, /** - * \brief Common server error. Error number: 1605, symbol: + * \brief Error number: 1605, symbol: * ER_EVENT_INVALID_CREATION_CTX. */ er_event_invalid_creation_ctx = 1605, /** - * \brief Common server error. Error number: 1606, symbol: + * \brief Error number: 1606, symbol: * ER_TRG_CANT_OPEN_TABLE. */ er_trg_cant_open_table = 1606, /** - * \brief Common server error. Error number: 1607, symbol: + * \brief Error number: 1607, symbol: * ER_CANT_CREATE_SROUTINE. */ er_cant_create_sroutine = 1607, /** - * \brief Common server error. Error number: 1609, symbol: + * \brief Error number: 1609, symbol: * ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT. */ er_no_format_description_event_before_binlog_statement = 1609, /** - * \brief Common server error. Error number: 1610, symbol: + * \brief Error number: 1610, symbol: * ER_SLAVE_CORRUPT_EVENT. */ er_slave_corrupt_event = 1610, /** - * \brief Common server error. Error number: 1612, symbol: + * \brief Error number: 1612, symbol: * ER_LOG_PURGE_NO_FILE. */ er_log_purge_no_file = 1612, /** - * \brief Common server error. Error number: 1613, symbol: + * \brief Error number: 1613, symbol: * ER_XA_RBTIMEOUT. */ er_xa_rbtimeout = 1613, /** - * \brief Common server error. Error number: 1614, symbol: + * \brief Error number: 1614, symbol: * ER_XA_RBDEADLOCK. */ er_xa_rbdeadlock = 1614, /** - * \brief Common server error. Error number: 1615, symbol: + * \brief Error number: 1615, symbol: * ER_NEED_REPREPARE. */ er_need_reprepare = 1615, /** - * \brief Common server error. Error number: 1616, symbol: + * \brief Error number: 1616, symbol: * ER_DELAYED_NOT_SUPPORTED. */ er_delayed_not_supported = 1616, /** - * \brief Common server error. Error number: 1617, symbol: + * \brief Error number: 1617, symbol: * WARN_NO_MASTER_INFO. */ warn_no_master_info = 1617, /** - * \brief Common server error. Error number: 1618, symbol: + * \brief Error number: 1618, symbol: * WARN_OPTION_IGNORED. */ warn_option_ignored = 1618, /** - * \brief Common server error. Error number: 1619, symbol: + * \brief Error number: 1619, symbol: * ER_PLUGIN_DELETE_BUILTIN. */ er_plugin_delete_builtin = 1619, /** - * \brief Common server error. Error number: 1620, symbol: + * \brief Error number: 1620, symbol: * WARN_PLUGIN_BUSY. */ warn_plugin_busy = 1620, /** - * \brief Common server error. Error number: 1621, symbol: + * \brief Error number: 1621, symbol: * ER_VARIABLE_IS_READONLY. */ er_variable_is_readonly = 1621, /** - * \brief Common server error. Error number: 1622, symbol: + * \brief Error number: 1622, symbol: * ER_WARN_ENGINE_TRANSACTION_ROLLBACK. */ er_warn_engine_transaction_rollback = 1622, /** - * \brief Common server error. Error number: 1623, symbol: + * \brief Error number: 1623, symbol: * ER_SLAVE_HEARTBEAT_FAILURE. */ er_slave_heartbeat_failure = 1623, /** - * \brief Common server error. Error number: 1624, symbol: + * \brief Error number: 1624, symbol: * ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE. */ er_slave_heartbeat_value_out_of_range = 1624, /** - * \brief Common server error. Error number: 1626, symbol: + * \brief Error number: 1626, symbol: * ER_CONFLICT_FN_PARSE_ERROR. */ er_conflict_fn_parse_error = 1626, /** - * \brief Common server error. Error number: 1627, symbol: + * \brief Error number: 1627, symbol: * ER_EXCEPTIONS_WRITE_ERROR. */ er_exceptions_write_error = 1627, /** - * \brief Common server error. Error number: 1628, symbol: + * \brief Error number: 1628, symbol: * ER_TOO_LONG_TABLE_COMMENT. */ er_too_long_table_comment = 1628, /** - * \brief Common server error. Error number: 1629, symbol: + * \brief Error number: 1629, symbol: * ER_TOO_LONG_FIELD_COMMENT. */ er_too_long_field_comment = 1629, /** - * \brief Common server error. Error number: 1630, symbol: + * \brief Error number: 1630, symbol: * ER_FUNC_INEXISTENT_NAME_COLLISION. */ er_func_inexistent_name_collision = 1630, /** - * \brief Common server error. Error number: 1631, symbol: + * \brief Error number: 1631, symbol: * ER_DATABASE_NAME. */ er_database_name = 1631, /** - * \brief Common server error. Error number: 1632, symbol: + * \brief Error number: 1632, symbol: * ER_TABLE_NAME. */ er_table_name = 1632, /** - * \brief Common server error. Error number: 1633, symbol: + * \brief Error number: 1633, symbol: * ER_PARTITION_NAME. */ er_partition_name = 1633, /** - * \brief Common server error. Error number: 1634, symbol: + * \brief Error number: 1634, symbol: * ER_SUBPARTITION_NAME. */ er_subpartition_name = 1634, /** - * \brief Common server error. Error number: 1635, symbol: + * \brief Error number: 1635, symbol: * ER_TEMPORARY_NAME. */ er_temporary_name = 1635, /** - * \brief Common server error. Error number: 1636, symbol: + * \brief Error number: 1636, symbol: * ER_RENAMED_NAME. */ er_renamed_name = 1636, /** - * \brief Common server error. Error number: 1637, symbol: + * \brief Error number: 1637, symbol: * ER_TOO_MANY_CONCURRENT_TRXS. */ er_too_many_concurrent_trxs = 1637, /** - * \brief Common server error. Error number: 1638, symbol: + * \brief Error number: 1638, symbol: * WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED. */ warn_non_ascii_separator_not_implemented = 1638, /** - * \brief Common server error. Error number: 1639, symbol: + * \brief Error number: 1639, symbol: * ER_DEBUG_SYNC_TIMEOUT. */ er_debug_sync_timeout = 1639, /** - * \brief Common server error. Error number: 1640, symbol: + * \brief Error number: 1640, symbol: * ER_DEBUG_SYNC_HIT_LIMIT. */ er_debug_sync_hit_limit = 1640, /** - * \brief Common server error. Error number: 1641, symbol: + * \brief Error number: 1641, symbol: * ER_DUP_SIGNAL_SET. */ er_dup_signal_set = 1641, /** - * \brief Common server error. Error number: 1642, symbol: + * \brief Error number: 1642, symbol: * ER_SIGNAL_WARN. */ er_signal_warn = 1642, /** - * \brief Common server error. Error number: 1643, symbol: + * \brief Error number: 1643, symbol: * ER_SIGNAL_NOT_FOUND. */ er_signal_not_found = 1643, /** - * \brief Common server error. Error number: 1644, symbol: + * \brief Error number: 1644, symbol: * ER_SIGNAL_EXCEPTION. */ er_signal_exception = 1644, /** - * \brief Common server error. Error number: 1645, symbol: + * \brief Error number: 1645, symbol: * ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER. */ er_resignal_without_active_handler = 1645, /** - * \brief Common server error. Error number: 1646, symbol: + * \brief Error number: 1646, symbol: * ER_SIGNAL_BAD_CONDITION_TYPE. */ er_signal_bad_condition_type = 1646, /** - * \brief Common server error. Error number: 1647, symbol: + * \brief Error number: 1647, symbol: * WARN_COND_ITEM_TRUNCATED. */ warn_cond_item_truncated = 1647, /** - * \brief Common server error. Error number: 1648, symbol: + * \brief Error number: 1648, symbol: * ER_COND_ITEM_TOO_LONG. */ er_cond_item_too_long = 1648, /** - * \brief Common server error. Error number: 1649, symbol: + * \brief Error number: 1649, symbol: * ER_UNKNOWN_LOCALE. */ er_unknown_locale = 1649, /** - * \brief Common server error. Error number: 1650, symbol: + * \brief Error number: 1650, symbol: * ER_SLAVE_IGNORE_SERVER_IDS. */ er_slave_ignore_server_ids = 1650, /** - * \brief Common server error. Error number: 1651, symbol: + * \brief Error number: 1651, symbol: * ER_QUERY_CACHE_DISABLED. */ er_query_cache_disabled = 1651, /** - * \brief Common server error. Error number: 1652, symbol: + * \brief Error number: 1652, symbol: * ER_SAME_NAME_PARTITION_FIELD. */ er_same_name_partition_field = 1652, /** - * \brief Common server error. Error number: 1653, symbol: + * \brief Error number: 1653, symbol: * ER_PARTITION_COLUMN_LIST_ERROR. */ er_partition_column_list_error = 1653, /** - * \brief Common server error. Error number: 1654, symbol: + * \brief Error number: 1654, symbol: * ER_WRONG_TYPE_COLUMN_VALUE_ERROR. */ er_wrong_type_column_value_error = 1654, /** - * \brief Common server error. Error number: 1655, symbol: + * \brief Error number: 1655, symbol: * ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR. */ er_too_many_partition_func_fields_error = 1655, /** - * \brief Common server error. Error number: 1656, symbol: + * \brief Error number: 1656, symbol: * ER_MAXVALUE_IN_VALUES_IN. */ er_maxvalue_in_values_in = 1656, /** - * \brief Common server error. Error number: 1657, symbol: + * \brief Error number: 1657, symbol: * ER_TOO_MANY_VALUES_ERROR. */ er_too_many_values_error = 1657, /** - * \brief Common server error. Error number: 1658, symbol: + * \brief Error number: 1658, symbol: * ER_ROW_SINGLE_PARTITION_FIELD_ERROR. */ er_row_single_partition_field_error = 1658, /** - * \brief Common server error. Error number: 1659, symbol: + * \brief Error number: 1659, symbol: * ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD. */ er_field_type_not_allowed_as_partition_field = 1659, /** - * \brief Common server error. Error number: 1660, symbol: + * \brief Error number: 1660, symbol: * ER_PARTITION_FIELDS_TOO_LONG. */ er_partition_fields_too_long = 1660, /** - * \brief Common server error. Error number: 1661, symbol: + * \brief Error number: 1661, symbol: * ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE. */ er_binlog_row_engine_and_stmt_engine = 1661, /** - * \brief Common server error. Error number: 1662, symbol: + * \brief Error number: 1662, symbol: * ER_BINLOG_ROW_MODE_AND_STMT_ENGINE. */ er_binlog_row_mode_and_stmt_engine = 1662, /** - * \brief Common server error. Error number: 1663, symbol: + * \brief Error number: 1663, symbol: * ER_BINLOG_UNSAFE_AND_STMT_ENGINE. */ er_binlog_unsafe_and_stmt_engine = 1663, /** - * \brief Common server error. Error number: 1664, symbol: + * \brief Error number: 1664, symbol: * ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE. */ er_binlog_row_injection_and_stmt_engine = 1664, /** - * \brief Common server error. Error number: 1665, symbol: + * \brief Error number: 1665, symbol: * ER_BINLOG_STMT_MODE_AND_ROW_ENGINE. */ er_binlog_stmt_mode_and_row_engine = 1665, /** - * \brief Common server error. Error number: 1666, symbol: + * \brief Error number: 1666, symbol: * ER_BINLOG_ROW_INJECTION_AND_STMT_MODE. */ er_binlog_row_injection_and_stmt_mode = 1666, /** - * \brief Common server error. Error number: 1667, symbol: + * \brief Error number: 1667, symbol: * ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE. */ er_binlog_multiple_engines_and_self_logging_engine = 1667, /** - * \brief Common server error. Error number: 1668, symbol: + * \brief Error number: 1668, symbol: * ER_BINLOG_UNSAFE_LIMIT. */ er_binlog_unsafe_limit = 1668, /** - * \brief Common server error. Error number: 1670, symbol: + * \brief Error number: 1670, symbol: * ER_BINLOG_UNSAFE_SYSTEM_TABLE. */ er_binlog_unsafe_system_table = 1670, /** - * \brief Common server error. Error number: 1671, symbol: + * \brief Error number: 1671, symbol: * ER_BINLOG_UNSAFE_AUTOINC_COLUMNS. */ er_binlog_unsafe_autoinc_columns = 1671, /** - * \brief Common server error. Error number: 1672, symbol: + * \brief Error number: 1672, symbol: * ER_BINLOG_UNSAFE_UDF. */ er_binlog_unsafe_udf = 1672, /** - * \brief Common server error. Error number: 1673, symbol: + * \brief Error number: 1673, symbol: * ER_BINLOG_UNSAFE_SYSTEM_VARIABLE. */ er_binlog_unsafe_system_variable = 1673, /** - * \brief Common server error. Error number: 1674, symbol: + * \brief Error number: 1674, symbol: * ER_BINLOG_UNSAFE_SYSTEM_FUNCTION. */ er_binlog_unsafe_system_function = 1674, /** - * \brief Common server error. Error number: 1675, symbol: + * \brief Error number: 1675, symbol: * ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS. */ er_binlog_unsafe_nontrans_after_trans = 1675, /** - * \brief Common server error. Error number: 1676, symbol: + * \brief Error number: 1676, symbol: * ER_MESSAGE_AND_STATEMENT. */ er_message_and_statement = 1676, /** - * \brief Common server error. Error number: 1677, symbol: + * \brief Error number: 1677, symbol: * ER_SLAVE_CONVERSION_FAILED. */ er_slave_conversion_failed = 1677, /** - * \brief Common server error. Error number: 1678, symbol: + * \brief Error number: 1678, symbol: * ER_SLAVE_CANT_CREATE_CONVERSION. */ er_slave_cant_create_conversion = 1678, /** - * \brief Common server error. Error number: 1679, symbol: + * \brief Error number: 1679, symbol: * ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT. */ er_inside_transaction_prevents_switch_binlog_format = 1679, /** - * \brief Common server error. Error number: 1680, symbol: + * \brief Error number: 1680, symbol: * ER_PATH_LENGTH. */ er_path_length = 1680, /** - * \brief Common server error. Error number: 1681, symbol: + * \brief Error number: 1681, symbol: * ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT. */ er_warn_deprecated_syntax_no_replacement = 1681, /** - * \brief Common server error. Error number: 1682, symbol: + * \brief Error number: 1682, symbol: * ER_WRONG_NATIVE_TABLE_STRUCTURE. */ er_wrong_native_table_structure = 1682, /** - * \brief Common server error. Error number: 1683, symbol: + * \brief Error number: 1683, symbol: * ER_WRONG_PERFSCHEMA_USAGE. */ er_wrong_perfschema_usage = 1683, /** - * \brief Common server error. Error number: 1684, symbol: + * \brief Error number: 1684, symbol: * ER_WARN_I_S_SKIPPED_TABLE. */ er_warn_i_s_skipped_table = 1684, /** - * \brief Common server error. Error number: 1685, symbol: + * \brief Error number: 1685, symbol: * ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT. */ er_inside_transaction_prevents_switch_binlog_direct = 1685, /** - * \brief Common server error. Error number: 1686, symbol: + * \brief Error number: 1686, symbol: * ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT. */ er_stored_function_prevents_switch_binlog_direct = 1686, /** - * \brief Common server error. Error number: 1687, symbol: + * \brief Error number: 1687, symbol: * ER_SPATIAL_MUST_HAVE_GEOM_COL. */ er_spatial_must_have_geom_col = 1687, /** - * \brief Common server error. Error number: 1688, symbol: + * \brief Error number: 1688, symbol: * ER_TOO_LONG_INDEX_COMMENT. */ er_too_long_index_comment = 1688, /** - * \brief Common server error. Error number: 1689, symbol: + * \brief Error number: 1689, symbol: * ER_LOCK_ABORTED. */ er_lock_aborted = 1689, /** - * \brief Common server error. Error number: 1690, symbol: + * \brief Error number: 1690, symbol: * ER_DATA_OUT_OF_RANGE. */ er_data_out_of_range = 1690, /** - * \brief Common server error. Error number: 1691, symbol: + * \brief Error number: 1691, symbol: * ER_WRONG_SPVAR_TYPE_IN_LIMIT. */ er_wrong_spvar_type_in_limit = 1691, /** - * \brief Common server error. Error number: 1692, symbol: + * \brief Error number: 1692, symbol: * ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE. */ er_binlog_unsafe_multiple_engines_and_self_logging_engine = 1692, /** - * \brief Common server error. Error number: 1693, symbol: + * \brief Error number: 1693, symbol: * ER_BINLOG_UNSAFE_MIXED_STATEMENT. */ er_binlog_unsafe_mixed_statement = 1693, /** - * \brief Common server error. Error number: 1694, symbol: + * \brief Error number: 1694, symbol: * ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN. */ er_inside_transaction_prevents_switch_sql_log_bin = 1694, /** - * \brief Common server error. Error number: 1695, symbol: + * \brief Error number: 1695, symbol: * ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN. */ er_stored_function_prevents_switch_sql_log_bin = 1695, /** - * \brief Common server error. Error number: 1696, symbol: + * \brief Error number: 1696, symbol: * ER_FAILED_READ_FROM_PAR_FILE. */ er_failed_read_from_par_file = 1696, /** - * \brief Common server error. Error number: 1697, symbol: + * \brief Error number: 1697, symbol: * ER_VALUES_IS_NOT_INT_TYPE_ERROR. */ er_values_is_not_int_type_error = 1697, /** - * \brief Common server error. Error number: 1698, symbol: + * \brief Error number: 1698, symbol: * ER_ACCESS_DENIED_NO_PASSWORD_ERROR. */ er_access_denied_no_password_error = 1698, /** - * \brief Common server error. Error number: 1699, symbol: + * \brief Error number: 1699, symbol: * ER_SET_PASSWORD_AUTH_PLUGIN. */ er_set_password_auth_plugin = 1699, /** - * \brief Common server error. Error number: 1700, symbol: + * \brief Error number: 1700, symbol: * ER_GRANT_PLUGIN_USER_EXISTS. */ er_grant_plugin_user_exists = 1700, /** - * \brief Common server error. Error number: 1701, symbol: + * \brief Error number: 1701, symbol: * ER_TRUNCATE_ILLEGAL_FK. */ er_truncate_illegal_fk = 1701, /** - * \brief Common server error. Error number: 1702, symbol: + * \brief Error number: 1702, symbol: * ER_PLUGIN_IS_PERMANENT. */ er_plugin_is_permanent = 1702, /** - * \brief Common server error. Error number: 1703, symbol: + * \brief Error number: 1703, symbol: * ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN. */ er_slave_heartbeat_value_out_of_range_min = 1703, /** - * \brief Common server error. Error number: 1704, symbol: + * \brief Error number: 1704, symbol: * ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX. */ er_slave_heartbeat_value_out_of_range_max = 1704, /** - * \brief Common server error. Error number: 1705, symbol: + * \brief Error number: 1705, symbol: * ER_STMT_CACHE_FULL. */ er_stmt_cache_full = 1705, /** - * \brief Common server error. Error number: 1706, symbol: + * \brief Error number: 1706, symbol: * ER_MULTI_UPDATE_KEY_CONFLICT. */ er_multi_update_key_conflict = 1706, /** - * \brief Common server error. Error number: 1707, symbol: + * \brief Error number: 1707, symbol: * ER_TABLE_NEEDS_REBUILD. */ er_table_needs_rebuild = 1707, /** - * \brief Common server error. Error number: 1708, symbol: + * \brief Error number: 1708, symbol: * WARN_OPTION_BELOW_LIMIT. */ warn_option_below_limit = 1708, /** - * \brief Common server error. Error number: 1709, symbol: + * \brief Error number: 1709, symbol: * ER_INDEX_COLUMN_TOO_LONG. */ er_index_column_too_long = 1709, /** - * \brief Common server error. Error number: 1710, symbol: + * \brief Error number: 1710, symbol: * ER_ERROR_IN_TRIGGER_BODY. */ er_error_in_trigger_body = 1710, /** - * \brief Common server error. Error number: 1711, symbol: + * \brief Error number: 1711, symbol: * ER_ERROR_IN_UNKNOWN_TRIGGER_BODY. */ er_error_in_unknown_trigger_body = 1711, /** - * \brief Common server error. Error number: 1712, symbol: + * \brief Error number: 1712, symbol: * ER_INDEX_CORRUPT. */ er_index_corrupt = 1712, /** - * \brief Common server error. Error number: 1713, symbol: + * \brief Error number: 1713, symbol: * ER_UNDO_RECORD_TOO_BIG. */ er_undo_record_too_big = 1713, /** - * \brief Common server error. Error number: 1714, symbol: + * \brief Error number: 1714, symbol: * ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT. */ er_binlog_unsafe_insert_ignore_select = 1714, /** - * \brief Common server error. Error number: 1715, symbol: + * \brief Error number: 1715, symbol: * ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE. */ er_binlog_unsafe_insert_select_update = 1715, /** - * \brief Common server error. Error number: 1716, symbol: + * \brief Error number: 1716, symbol: * ER_BINLOG_UNSAFE_REPLACE_SELECT. */ er_binlog_unsafe_replace_select = 1716, /** - * \brief Common server error. Error number: 1717, symbol: + * \brief Error number: 1717, symbol: * ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT. */ er_binlog_unsafe_create_ignore_select = 1717, /** - * \brief Common server error. Error number: 1718, symbol: + * \brief Error number: 1718, symbol: * ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT. */ er_binlog_unsafe_create_replace_select = 1718, /** - * \brief Common server error. Error number: 1719, symbol: + * \brief Error number: 1719, symbol: * ER_BINLOG_UNSAFE_UPDATE_IGNORE. */ er_binlog_unsafe_update_ignore = 1719, /** - * \brief Common server error. Error number: 1722, symbol: + * \brief Error number: 1722, symbol: * ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT. */ er_binlog_unsafe_write_autoinc_select = 1722, /** - * \brief Common server error. Error number: 1723, symbol: + * \brief Error number: 1723, symbol: * ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC. */ er_binlog_unsafe_create_select_autoinc = 1723, /** - * \brief Common server error. Error number: 1724, symbol: + * \brief Error number: 1724, symbol: * ER_BINLOG_UNSAFE_INSERT_TWO_KEYS. */ er_binlog_unsafe_insert_two_keys = 1724, /** - * \brief Common server error. Error number: 1727, symbol: + * \brief Error number: 1727, symbol: * ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST. */ er_binlog_unsafe_autoinc_not_first = 1727, /** - * \brief Common server error. Error number: 1728, symbol: + * \brief Error number: 1728, symbol: * ER_CANNOT_LOAD_FROM_TABLE_V2. */ er_cannot_load_from_table_v2 = 1728, /** - * \brief Common server error. Error number: 1729, symbol: + * \brief Error number: 1729, symbol: * ER_MASTER_DELAY_VALUE_OUT_OF_RANGE. */ er_master_delay_value_out_of_range = 1729, /** - * \brief Common server error. Error number: 1730, symbol: + * \brief Error number: 1730, symbol: * ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT. */ er_only_fd_and_rbr_events_allowed_in_binlog_statement = 1730, /** - * \brief Common server error. Error number: 1731, symbol: + * \brief Error number: 1731, symbol: * ER_PARTITION_EXCHANGE_DIFFERENT_OPTION. */ er_partition_exchange_different_option = 1731, /** - * \brief Common server error. Error number: 1732, symbol: + * \brief Error number: 1732, symbol: * ER_PARTITION_EXCHANGE_PART_TABLE. */ er_partition_exchange_part_table = 1732, /** - * \brief Common server error. Error number: 1733, symbol: + * \brief Error number: 1733, symbol: * ER_PARTITION_EXCHANGE_TEMP_TABLE. */ er_partition_exchange_temp_table = 1733, /** - * \brief Common server error. Error number: 1734, symbol: + * \brief Error number: 1734, symbol: * ER_PARTITION_INSTEAD_OF_SUBPARTITION. */ er_partition_instead_of_subpartition = 1734, /** - * \brief Common server error. Error number: 1735, symbol: + * \brief Error number: 1735, symbol: * ER_UNKNOWN_PARTITION. */ er_unknown_partition = 1735, /** - * \brief Common server error. Error number: 1736, symbol: + * \brief Error number: 1736, symbol: * ER_TABLES_DIFFERENT_METADATA. */ er_tables_different_metadata = 1736, /** - * \brief Common server error. Error number: 1737, symbol: + * \brief Error number: 1737, symbol: * ER_ROW_DOES_NOT_MATCH_PARTITION. */ er_row_does_not_match_partition = 1737, /** - * \brief Common server error. Error number: 1738, symbol: + * \brief Error number: 1738, symbol: * ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX. */ er_binlog_cache_size_greater_than_max = 1738, /** - * \brief Common server error. Error number: 1739, symbol: + * \brief Error number: 1739, symbol: * ER_WARN_INDEX_NOT_APPLICABLE. */ er_warn_index_not_applicable = 1739, /** - * \brief Common server error. Error number: 1740, symbol: + * \brief Error number: 1740, symbol: * ER_PARTITION_EXCHANGE_FOREIGN_KEY. */ er_partition_exchange_foreign_key = 1740, /** - * \brief Common server error. Error number: 1741, symbol: + * \brief Error number: 1741, symbol: * ER_NO_SUCH_KEY_VALUE. */ er_no_such_key_value = 1741, /** - * \brief Common server error. Error number: 1743, symbol: + * \brief Error number: 1743, symbol: * ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE. */ er_network_read_event_checksum_failure = 1743, /** - * \brief Common server error. Error number: 1744, symbol: + * \brief Error number: 1744, symbol: * ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE. */ er_binlog_read_event_checksum_failure = 1744, /** - * \brief Common server error. Error number: 1745, symbol: + * \brief Error number: 1745, symbol: * ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX. */ er_binlog_stmt_cache_size_greater_than_max = 1745, /** - * \brief Common server error. Error number: 1746, symbol: + * \brief Error number: 1746, symbol: * ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT. */ er_cant_update_table_in_create_table_select = 1746, /** - * \brief Common server error. Error number: 1747, symbol: + * \brief Error number: 1747, symbol: * ER_PARTITION_CLAUSE_ON_NONPARTITIONED. */ er_partition_clause_on_nonpartitioned = 1747, /** - * \brief Common server error. Error number: 1748, symbol: + * \brief Error number: 1748, symbol: * ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET. */ er_row_does_not_match_given_partition_set = 1748, /** - * \brief Common server error. Error number: 1750, symbol: + * \brief Error number: 1750, symbol: * ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE. */ er_change_rpl_info_repository_failure = 1750, /** - * \brief Common server error. Error number: 1751, symbol: + * \brief Error number: 1751, symbol: * ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE. */ er_warning_not_complete_rollback_with_created_temp_table = 1751, /** - * \brief Common server error. Error number: 1752, symbol: + * \brief Error number: 1752, symbol: * ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE. */ er_warning_not_complete_rollback_with_dropped_temp_table = 1752, /** - * \brief Common server error. Error number: 1753, symbol: + * \brief Error number: 1753, symbol: * ER_MTS_FEATURE_IS_NOT_SUPPORTED. */ er_mts_feature_is_not_supported = 1753, /** - * \brief Common server error. Error number: 1754, symbol: + * \brief Error number: 1754, symbol: * ER_MTS_UPDATED_DBS_GREATER_MAX. */ er_mts_updated_dbs_greater_max = 1754, /** - * \brief Common server error. Error number: 1755, symbol: + * \brief Error number: 1755, symbol: * ER_MTS_CANT_PARALLEL. */ er_mts_cant_parallel = 1755, /** - * \brief Common server error. Error number: 1756, symbol: + * \brief Error number: 1756, symbol: * ER_MTS_INCONSISTENT_DATA. */ er_mts_inconsistent_data = 1756, /** - * \brief Common server error. Error number: 1757, symbol: + * \brief Error number: 1757, symbol: * ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING. */ er_fulltext_not_supported_with_partitioning = 1757, /** - * \brief Common server error. Error number: 1758, symbol: + * \brief Error number: 1758, symbol: * ER_DA_INVALID_CONDITION_NUMBER. */ er_da_invalid_condition_number = 1758, /** - * \brief Common server error. Error number: 1759, symbol: + * \brief Error number: 1759, symbol: * ER_INSECURE_PLAIN_TEXT. */ er_insecure_plain_text = 1759, /** - * \brief Common server error. Error number: 1760, symbol: + * \brief Error number: 1760, symbol: * ER_INSECURE_CHANGE_MASTER. */ er_insecure_change_master = 1760, /** - * \brief Common server error. Error number: 1761, symbol: + * \brief Error number: 1761, symbol: * ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO. */ er_foreign_duplicate_key_with_child_info = 1761, /** - * \brief Common server error. Error number: 1762, symbol: + * \brief Error number: 1762, symbol: * ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO. */ er_foreign_duplicate_key_without_child_info = 1762, /** - * \brief Common server error. Error number: 1763, symbol: + * \brief Error number: 1763, symbol: * ER_SQLTHREAD_WITH_SECURE_SLAVE. */ er_sqlthread_with_secure_slave = 1763, /** - * \brief Common server error. Error number: 1764, symbol: + * \brief Error number: 1764, symbol: * ER_TABLE_HAS_NO_FT. */ er_table_has_no_ft = 1764, /** - * \brief Common server error. Error number: 1765, symbol: + * \brief Error number: 1765, symbol: * ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER. */ er_variable_not_settable_in_sf_or_trigger = 1765, /** - * \brief Common server error. Error number: 1766, symbol: + * \brief Error number: 1766, symbol: * ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION. */ er_variable_not_settable_in_transaction = 1766, /** - * \brief Common server error. Error number: 1767, symbol: + * \brief Error number: 1767, symbol: * ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST. */ er_gtid_next_is_not_in_gtid_next_list = 1767, /** - * \brief Common server error. Error number: 1769, symbol: + * \brief Error number: 1769, symbol: * ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION. */ er_set_statement_cannot_invoke_function = 1769, /** - * \brief Common server error. Error number: 1770, symbol: + * \brief Error number: 1770, symbol: * ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL. */ er_gtid_next_cant_be_automatic_if_gtid_next_list_is_non_null = 1770, /** - * \brief Common server error. Error number: 1771, symbol: + * \brief Error number: 1771, symbol: * ER_SKIPPING_LOGGED_TRANSACTION. */ er_skipping_logged_transaction = 1771, /** - * \brief Common server error. Error number: 1772, symbol: + * \brief Error number: 1772, symbol: * ER_MALFORMED_GTID_SET_SPECIFICATION. */ er_malformed_gtid_set_specification = 1772, /** - * \brief Common server error. Error number: 1773, symbol: + * \brief Error number: 1773, symbol: * ER_MALFORMED_GTID_SET_ENCODING. */ er_malformed_gtid_set_encoding = 1773, /** - * \brief Common server error. Error number: 1774, symbol: + * \brief Error number: 1774, symbol: * ER_MALFORMED_GTID_SPECIFICATION. */ er_malformed_gtid_specification = 1774, /** - * \brief Common server error. Error number: 1775, symbol: + * \brief Error number: 1775, symbol: * ER_GNO_EXHAUSTED. */ er_gno_exhausted = 1775, /** - * \brief Common server error. Error number: 1776, symbol: + * \brief Error number: 1776, symbol: * ER_BAD_SLAVE_AUTO_POSITION. */ er_bad_slave_auto_position = 1776, /** - * \brief Common server error. Error number: 1778, symbol: + * \brief Error number: 1778, symbol: * ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET. */ er_cant_do_implicit_commit_in_trx_when_gtid_next_is_set = 1778, /** - * \brief Common server error. Error number: 1780, symbol: + * \brief Error number: 1780, symbol: * ER_GTID_MODE_REQUIRES_BINLOG. */ er_gtid_mode_requires_binlog = 1780, /** - * \brief Common server error. Error number: 1781, symbol: + * \brief Error number: 1781, symbol: * ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF. */ er_cant_set_gtid_next_to_gtid_when_gtid_mode_is_off = 1781, /** - * \brief Common server error. Error number: 1782, symbol: + * \brief Error number: 1782, symbol: * ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON. */ er_cant_set_gtid_next_to_anonymous_when_gtid_mode_is_on = 1782, /** - * \brief Common server error. Error number: 1783, symbol: + * \brief Error number: 1783, symbol: * ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF. */ er_cant_set_gtid_next_list_to_non_null_when_gtid_mode_is_off = 1783, /** - * \brief Common server error. Error number: 1785, symbol: + * \brief Error number: 1785, symbol: * ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE. */ er_gtid_unsafe_non_transactional_table = 1785, /** - * \brief Common server error. Error number: 1786, symbol: + * \brief Error number: 1786, symbol: * ER_GTID_UNSAFE_CREATE_SELECT. */ er_gtid_unsafe_create_select = 1786, /** - * \brief Common server error. Error number: 1787, symbol: + * \brief Error number: 1787, symbol: * ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION. */ er_gtid_unsafe_create_drop_temporary_table_in_transaction = 1787, /** - * \brief Common server error. Error number: 1788, symbol: + * \brief Error number: 1788, symbol: * ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME. */ er_gtid_mode_can_only_change_one_step_at_a_time = 1788, /** - * \brief Common server error. Error number: 1789, symbol: + * \brief Error number: 1789, symbol: * ER_MASTER_HAS_PURGED_REQUIRED_GTIDS. */ er_master_has_purged_required_gtids = 1789, /** - * \brief Common server error. Error number: 1790, symbol: + * \brief Error number: 1790, symbol: * ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID. */ er_cant_set_gtid_next_when_owning_gtid = 1790, /** - * \brief Common server error. Error number: 1791, symbol: + * \brief Error number: 1791, symbol: * ER_UNKNOWN_EXPLAIN_FORMAT. */ er_unknown_explain_format = 1791, /** - * \brief Common server error. Error number: 1792, symbol: + * \brief Error number: 1792, symbol: * ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION. */ er_cant_execute_in_read_only_transaction = 1792, /** - * \brief Common server error. Error number: 1793, symbol: + * \brief Error number: 1793, symbol: * ER_TOO_LONG_TABLE_PARTITION_COMMENT. */ er_too_long_table_partition_comment = 1793, /** - * \brief Common server error. Error number: 1794, symbol: + * \brief Error number: 1794, symbol: * ER_SLAVE_CONFIGURATION. */ er_slave_configuration = 1794, /** - * \brief Common server error. Error number: 1795, symbol: + * \brief Error number: 1795, symbol: * ER_INNODB_FT_LIMIT. */ er_innodb_ft_limit = 1795, /** - * \brief Common server error. Error number: 1796, symbol: + * \brief Error number: 1796, symbol: * ER_INNODB_NO_FT_TEMP_TABLE. */ er_innodb_no_ft_temp_table = 1796, /** - * \brief Common server error. Error number: 1797, symbol: + * \brief Error number: 1797, symbol: * ER_INNODB_FT_WRONG_DOCID_COLUMN. */ er_innodb_ft_wrong_docid_column = 1797, /** - * \brief Common server error. Error number: 1798, symbol: + * \brief Error number: 1798, symbol: * ER_INNODB_FT_WRONG_DOCID_INDEX. */ er_innodb_ft_wrong_docid_index = 1798, /** - * \brief Common server error. Error number: 1799, symbol: + * \brief Error number: 1799, symbol: * ER_INNODB_ONLINE_LOG_TOO_BIG. */ er_innodb_online_log_too_big = 1799, /** - * \brief Common server error. Error number: 1800, symbol: + * \brief Error number: 1800, symbol: * ER_UNKNOWN_ALTER_ALGORITHM. */ er_unknown_alter_algorithm = 1800, /** - * \brief Common server error. Error number: 1801, symbol: + * \brief Error number: 1801, symbol: * ER_UNKNOWN_ALTER_LOCK. */ er_unknown_alter_lock = 1801, /** - * \brief Common server error. Error number: 1802, symbol: + * \brief Error number: 1802, symbol: * ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS. */ er_mts_change_master_cant_run_with_gaps = 1802, /** - * \brief Common server error. Error number: 1803, symbol: + * \brief Error number: 1803, symbol: * ER_MTS_RECOVERY_FAILURE. */ er_mts_recovery_failure = 1803, /** - * \brief Common server error. Error number: 1804, symbol: + * \brief Error number: 1804, symbol: * ER_MTS_RESET_WORKERS. */ er_mts_reset_workers = 1804, /** - * \brief Common server error. Error number: 1805, symbol: + * \brief Error number: 1805, symbol: * ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2. */ er_col_count_doesnt_match_corrupted_v2 = 1805, /** - * \brief Common server error. Error number: 1806, symbol: + * \brief Error number: 1806, symbol: * ER_SLAVE_SILENT_RETRY_TRANSACTION. */ er_slave_silent_retry_transaction = 1806, /** - * \brief Common server error. Error number: 1808, symbol: + * \brief Error number: 1808, symbol: * ER_TABLE_SCHEMA_MISMATCH. */ er_table_schema_mismatch = 1808, /** - * \brief Common server error. Error number: 1809, symbol: + * \brief Error number: 1809, symbol: * ER_TABLE_IN_SYSTEM_TABLESPACE. */ er_table_in_system_tablespace = 1809, /** - * \brief Common server error. Error number: 1810, symbol: + * \brief Error number: 1810, symbol: * ER_IO_READ_ERROR. */ er_io_read_error = 1810, /** - * \brief Common server error. Error number: 1811, symbol: + * \brief Error number: 1811, symbol: * ER_IO_WRITE_ERROR. */ er_io_write_error = 1811, /** - * \brief Common server error. Error number: 1812, symbol: + * \brief Error number: 1812, symbol: * ER_TABLESPACE_MISSING. */ er_tablespace_missing = 1812, /** - * \brief Common server error. Error number: 1813, symbol: + * \brief Error number: 1813, symbol: * ER_TABLESPACE_EXISTS. */ er_tablespace_exists = 1813, /** - * \brief Common server error. Error number: 1814, symbol: + * \brief Error number: 1814, symbol: * ER_TABLESPACE_DISCARDED. */ er_tablespace_discarded = 1814, /** - * \brief Common server error. Error number: 1815, symbol: + * \brief Error number: 1815, symbol: * ER_INTERNAL_ERROR. */ er_internal_error = 1815, /** - * \brief Common server error. Error number: 1816, symbol: + * \brief Error number: 1816, symbol: * ER_INNODB_IMPORT_ERROR. */ er_innodb_import_error = 1816, /** - * \brief Common server error. Error number: 1817, symbol: + * \brief Error number: 1817, symbol: * ER_INNODB_INDEX_CORRUPT. */ er_innodb_index_corrupt = 1817, /** - * \brief Common server error. Error number: 1818, symbol: + * \brief Error number: 1818, symbol: * ER_INVALID_YEAR_COLUMN_LENGTH. */ er_invalid_year_column_length = 1818, /** - * \brief Common server error. Error number: 1819, symbol: + * \brief Error number: 1819, symbol: * ER_NOT_VALID_PASSWORD. */ er_not_valid_password = 1819, /** - * \brief Common server error. Error number: 1820, symbol: + * \brief Error number: 1820, symbol: * ER_MUST_CHANGE_PASSWORD. */ er_must_change_password = 1820, /** - * \brief Common server error. Error number: 1821, symbol: + * \brief Error number: 1821, symbol: * ER_FK_NO_INDEX_CHILD. */ er_fk_no_index_child = 1821, /** - * \brief Common server error. Error number: 1822, symbol: + * \brief Error number: 1822, symbol: * ER_FK_NO_INDEX_PARENT. */ er_fk_no_index_parent = 1822, /** - * \brief Common server error. Error number: 1823, symbol: + * \brief Error number: 1823, symbol: * ER_FK_FAIL_ADD_SYSTEM. */ er_fk_fail_add_system = 1823, /** - * \brief Common server error. Error number: 1824, symbol: + * \brief Error number: 1824, symbol: * ER_FK_CANNOT_OPEN_PARENT. */ er_fk_cannot_open_parent = 1824, /** - * \brief Common server error. Error number: 1825, symbol: + * \brief Error number: 1825, symbol: * ER_FK_INCORRECT_OPTION. */ er_fk_incorrect_option = 1825, /** - * \brief Common server error. Error number: 1827, symbol: + * \brief Error number: 1827, symbol: * ER_PASSWORD_FORMAT. */ er_password_format = 1827, /** - * \brief Common server error. Error number: 1828, symbol: + * \brief Error number: 1828, symbol: * ER_FK_COLUMN_CANNOT_DROP. */ er_fk_column_cannot_drop = 1828, /** - * \brief Common server error. Error number: 1829, symbol: + * \brief Error number: 1829, symbol: * ER_FK_COLUMN_CANNOT_DROP_CHILD. */ er_fk_column_cannot_drop_child = 1829, /** - * \brief Common server error. Error number: 1830, symbol: + * \brief Error number: 1830, symbol: * ER_FK_COLUMN_NOT_NULL. */ er_fk_column_not_null = 1830, /** - * \brief Common server error. Error number: 1831, symbol: + * \brief Error number: 1831, symbol: * ER_DUP_INDEX. */ er_dup_index = 1831, /** - * \brief Common server error. Error number: 1832, symbol: + * \brief Error number: 1832, symbol: * ER_FK_COLUMN_CANNOT_CHANGE. */ er_fk_column_cannot_change = 1832, /** - * \brief Common server error. Error number: 1833, symbol: + * \brief Error number: 1833, symbol: * ER_FK_COLUMN_CANNOT_CHANGE_CHILD. */ er_fk_column_cannot_change_child = 1833, /** - * \brief Common server error. Error number: 1835, symbol: + * \brief Error number: 1835, symbol: * ER_MALFORMED_PACKET. */ er_malformed_packet = 1835, /** - * \brief Common server error. Error number: 1836, symbol: + * \brief Error number: 1836, symbol: * ER_READ_ONLY_MODE. */ er_read_only_mode = 1836, /** - * \brief Common server error. Error number: 1838, symbol: + * \brief Error number: 1838, symbol: * ER_VARIABLE_NOT_SETTABLE_IN_SP. */ er_variable_not_settable_in_sp = 1838, /** - * \brief Common server error. Error number: 1839, symbol: + * \brief Error number: 1839, symbol: * ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF. */ er_cant_set_gtid_purged_when_gtid_mode_is_off = 1839, /** - * \brief Common server error. Error number: 1840, symbol: + * \brief Error number: 1840, symbol: * ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY. */ er_cant_set_gtid_purged_when_gtid_executed_is_not_empty = 1840, /** - * \brief Common server error. Error number: 1841, symbol: + * \brief Error number: 1841, symbol: * ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY. */ er_cant_set_gtid_purged_when_owned_gtids_is_not_empty = 1841, /** - * \brief Common server error. Error number: 1842, symbol: + * \brief Error number: 1842, symbol: * ER_GTID_PURGED_WAS_CHANGED. */ er_gtid_purged_was_changed = 1842, /** - * \brief Common server error. Error number: 1843, symbol: + * \brief Error number: 1843, symbol: * ER_GTID_EXECUTED_WAS_CHANGED. */ er_gtid_executed_was_changed = 1843, /** - * \brief Common server error. Error number: 1844, symbol: + * \brief Error number: 1844, symbol: * ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES. */ er_binlog_stmt_mode_and_no_repl_tables = 1844, /** - * \brief Common server error. Error number: 1845, symbol: + * \brief Error number: 1845, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED. */ er_alter_operation_not_supported = 1845, /** - * \brief Common server error. Error number: 1846, symbol: + * \brief Error number: 1846, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON. */ er_alter_operation_not_supported_reason = 1846, /** - * \brief Common server error. Error number: 1847, symbol: + * \brief Error number: 1847, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY. */ er_alter_operation_not_supported_reason_copy = 1847, /** - * \brief Common server error. Error number: 1848, symbol: + * \brief Error number: 1848, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION. */ er_alter_operation_not_supported_reason_partition = 1848, /** - * \brief Common server error. Error number: 1849, symbol: + * \brief Error number: 1849, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME. */ er_alter_operation_not_supported_reason_fk_rename = 1849, /** - * \brief Common server error. Error number: 1850, symbol: + * \brief Error number: 1850, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE. */ er_alter_operation_not_supported_reason_column_type = 1850, /** - * \brief Common server error. Error number: 1851, symbol: + * \brief Error number: 1851, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK. */ er_alter_operation_not_supported_reason_fk_check = 1851, /** - * \brief Common server error. Error number: 1853, symbol: + * \brief Error number: 1853, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK. */ er_alter_operation_not_supported_reason_nopk = 1853, /** - * \brief Common server error. Error number: 1854, symbol: + * \brief Error number: 1854, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC. */ er_alter_operation_not_supported_reason_autoinc = 1854, /** - * \brief Common server error. Error number: 1855, symbol: + * \brief Error number: 1855, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS. */ er_alter_operation_not_supported_reason_hidden_fts = 1855, /** - * \brief Common server error. Error number: 1856, symbol: + * \brief Error number: 1856, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS. */ er_alter_operation_not_supported_reason_change_fts = 1856, /** - * \brief Common server error. Error number: 1857, symbol: + * \brief Error number: 1857, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS. */ er_alter_operation_not_supported_reason_fts = 1857, /** - * \brief Common server error. Error number: 1858, symbol: + * \brief Error number: 1858, symbol: * ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE. */ er_sql_slave_skip_counter_not_settable_in_gtid_mode = 1858, /** - * \brief Common server error. Error number: 1859, symbol: + * \brief Error number: 1859, symbol: * ER_DUP_UNKNOWN_IN_INDEX. */ er_dup_unknown_in_index = 1859, /** - * \brief Common server error. Error number: 1860, symbol: + * \brief Error number: 1860, symbol: * ER_IDENT_CAUSES_TOO_LONG_PATH. */ er_ident_causes_too_long_path = 1860, /** - * \brief Common server error. Error number: 1861, symbol: + * \brief Error number: 1861, symbol: * ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL. */ er_alter_operation_not_supported_reason_not_null = 1861, /** - * \brief Common server error. Error number: 1862, symbol: + * \brief Error number: 1862, symbol: * ER_MUST_CHANGE_PASSWORD_LOGIN. */ er_must_change_password_login = 1862, /** - * \brief Common server error. Error number: 1863, symbol: + * \brief Error number: 1863, symbol: * ER_ROW_IN_WRONG_PARTITION. */ er_row_in_wrong_partition = 1863, /** - * \brief Common server error. Error number: 1864, symbol: + * \brief Error number: 1864, symbol: * ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX. */ er_mts_event_bigger_pending_jobs_size_max = 1864, /** - * \brief Common server error. Error number: 1865, symbol: + * \brief Error number: 1865, symbol: * ER_INNODB_NO_FT_USES_PARSER. */ er_innodb_no_ft_uses_parser = 1865, /** - * \brief Common server error. Error number: 1866, symbol: + * \brief Error number: 1866, symbol: * ER_BINLOG_LOGICAL_CORRUPTION. */ er_binlog_logical_corruption = 1866, /** - * \brief Common server error. Error number: 1867, symbol: + * \brief Error number: 1867, symbol: * ER_WARN_PURGE_LOG_IN_USE. */ er_warn_purge_log_in_use = 1867, /** - * \brief Common server error. Error number: 1868, symbol: + * \brief Error number: 1868, symbol: * ER_WARN_PURGE_LOG_IS_ACTIVE. */ er_warn_purge_log_is_active = 1868, /** - * \brief Common server error. Error number: 1869, symbol: + * \brief Error number: 1869, symbol: * ER_AUTO_INCREMENT_CONFLICT. */ er_auto_increment_conflict = 1869, /** - * \brief Common server error. Error number: 1870, symbol: + * \brief Error number: 1870, symbol: * WARN_ON_BLOCKHOLE_IN_RBR. */ warn_on_blockhole_in_rbr = 1870, /** - * \brief Common server error. Error number: 1871, symbol: + * \brief Error number: 1871, symbol: * ER_SLAVE_MI_INIT_REPOSITORY. */ er_slave_mi_init_repository = 1871, /** - * \brief Common server error. Error number: 1872, symbol: + * \brief Error number: 1872, symbol: * ER_SLAVE_RLI_INIT_REPOSITORY. */ er_slave_rli_init_repository = 1872, /** - * \brief Common server error. Error number: 1873, symbol: + * \brief Error number: 1873, symbol: * ER_ACCESS_DENIED_CHANGE_USER_ERROR. */ er_access_denied_change_user_error = 1873, /** - * \brief Common server error. Error number: 1874, symbol: + * \brief Error number: 1874, symbol: * ER_INNODB_READ_ONLY. */ er_innodb_read_only = 1874, /** - * \brief Common server error. Error number: 1875, symbol: + * \brief Error number: 1875, symbol: * ER_STOP_SLAVE_SQL_THREAD_TIMEOUT. */ er_stop_slave_sql_thread_timeout = 1875, /** - * \brief Common server error. Error number: 1876, symbol: + * \brief Error number: 1876, symbol: * ER_STOP_SLAVE_IO_THREAD_TIMEOUT. */ er_stop_slave_io_thread_timeout = 1876, /** - * \brief Common server error. Error number: 1877, symbol: + * \brief Error number: 1877, symbol: * ER_TABLE_CORRUPT. */ er_table_corrupt = 1877, /** - * \brief Common server error. Error number: 1878, symbol: + * \brief Error number: 1878, symbol: * ER_TEMP_FILE_WRITE_FAILURE. */ er_temp_file_write_failure = 1878, /** - * \brief Common server error. Error number: 1879, symbol: + * \brief Error number: 1879, symbol: * ER_INNODB_FT_AUX_NOT_HEX_ID. */ er_innodb_ft_aux_not_hex_id = 1879, @@ -5111,7 +5111,6 @@ inline error_code make_error_code(common_server_errc error) } // namespace mysql -#ifndef BOOST_MYSQL_DOXYGEN namespace system { template <> @@ -5121,7 +5120,6 @@ struct is_error_code_enum<::boost::mysql::common_server_errc> }; } // namespace system -#endif } // namespace boost diff --git a/include/boost/mysql/connection.hpp b/include/boost/mysql/connection.hpp index c59d9e7a2..5dd6fbede 100644 --- a/include/boost/mysql/connection.hpp +++ b/include/boost/mysql/connection.hpp @@ -56,9 +56,11 @@ class static_execution_state; * executor used by this object is always the same as the underlying stream. * * \par Thread safety - * Distinct objects: safe. \n - * Shared objects: unsafe. \n - * This class is not thread-safe: for a single object, if you + * Distinct objects: safe. + * + * Shared objects: unsafe. + * + * This class is *not thread-safe*: for a single object, if you * call its member functions concurrently from separate threads, you will get a race condition. * * \par Legacy @@ -123,10 +125,8 @@ class connection */ connection& operator=(connection&& rhs) = default; -#ifndef BOOST_MYSQL_DOXYGEN connection(const connection&) = delete; connection& operator=(const connection&) = delete; -#endif /// The executor type associated to this object. using executor_type = typename Stream::executor_type; @@ -160,7 +160,7 @@ class connection * \details * This function can be used to determine whether you are using a SSL * connection or not when using SSL negotiation. - * \n + * * This function always returns `false` if the underlying * stream does not support SSL. This function always returns `false` * for connections that haven't been @@ -185,13 +185,13 @@ class connection * \details * This function is only available if `Stream` satisfies the * `SocketStream` concept. - * \n + * * Connects the underlying stream and performs the handshake * with the server. The underlying stream is closed in case of error. Prefer * this function to \ref connection::handshake. - * \n + * * If using a SSL-capable stream, the SSL handshake will be performed by this function. - * \n + * * `endpoint` should be convertible to `Stream::lowest_layer_type::endpoint_type`. */ template @@ -245,7 +245,7 @@ class connection */ template < typename EndpointType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(CompletionToken, void(error_code)) async_connect( @@ -264,7 +264,7 @@ class connection /// \copydoc async_connect template < typename EndpointType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(CompletionToken, void(error_code)) async_connect( @@ -292,7 +292,7 @@ class connection * Does not connect the underlying stream. * If the `Stream` template parameter fulfills the `SocketConnection` * requirements, use \ref connection::connect instead of this function. - * \n + * * If using a SSL-capable stream, the SSL handshake will be performed by this function. */ void handshake(const handshake_params& params, error_code& ec, diagnostics& diag) @@ -328,7 +328,7 @@ class connection * Otherwise, the final handler is called as if it was submitted using `asio::post`, * and is never be called inline from within this function. */ - template auto async_handshake( const handshake_params& params, @@ -339,7 +339,7 @@ class connection } /// \copydoc async_handshake - template auto async_handshake( const handshake_params& params, @@ -372,7 +372,7 @@ class connection template < BOOST_MYSQL_EXECUTION_REQUEST ExecutionRequest, BOOST_MYSQL_RESULTS_TYPE ResultsType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> auto async_execute( ExecutionRequest&& req, @@ -392,7 +392,7 @@ class connection template < BOOST_MYSQL_EXECUTION_REQUEST ExecutionRequest, BOOST_MYSQL_RESULTS_TYPE ResultsType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> auto async_execute( ExecutionRequest&& req, @@ -434,7 +434,7 @@ class connection template < BOOST_MYSQL_EXECUTION_REQUEST ExecutionRequest, BOOST_MYSQL_EXECUTION_STATE_TYPE ExecutionStateType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> auto async_start_execution( ExecutionRequest&& req, @@ -458,7 +458,7 @@ class connection template < BOOST_MYSQL_EXECUTION_REQUEST ExecutionRequest, BOOST_MYSQL_EXECUTION_STATE_TYPE ExecutionStateType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> auto async_start_execution( ExecutionRequest&& req, @@ -496,7 +496,7 @@ class connection } /// \copydoc any_connection::async_prepare_statement - template auto async_prepare_statement( string_view stmt, @@ -507,7 +507,7 @@ class connection } /// \copydoc async_prepare_statement - template auto async_prepare_statement( string_view stmt, @@ -538,7 +538,7 @@ class connection } /// \copydoc any_connection::async_close_statement - template auto async_close_statement( const statement& stmt, @@ -549,7 +549,7 @@ class connection } /// \copydoc async_close_statement - template auto async_close_statement( const statement& stmt, @@ -578,7 +578,7 @@ class connection } /// \copydoc any_connection::async_read_some_rows(execution_state&,CompletionToken&&) - template auto async_read_some_rows( execution_state& st, @@ -589,7 +589,7 @@ class connection } /// \copydoc async_read_some_rows(execution_state&,CompletionToken&&) - template auto async_read_some_rows( execution_state& st, @@ -609,26 +609,26 @@ class connection * Reads a batch of rows of unspecified size into the storage given by `output`. * At most `output.size()` rows will be read. If the operation represented by `st` * has still rows to read, and `output.size() > 0`, at least one row will be read. - * \n + * * Returns the number of read rows. - * \n + * * If there are no more rows, or `st.should_read_rows() == false`, this function is a no-op and returns * zero. - * \n + * * The number of rows that will be read depends on the connection's buffer size. The bigger the buffer, * the greater the batch size (up to a maximum). You can set the initial buffer size in `connection`'s * constructor, using \ref buffer_params::initial_read_size. The buffer may be * grown bigger by other read operations, if required. - * \n + * * Rows read by this function are owning objects, and don't hold any reference to * the connection's internal buffers (contrary what happens with the dynamic interface's counterpart). - * \n + * * The type `SpanElementType` must be the underlying row type for one of the types in the * `StaticRow` parameter pack (i.e., one of the types in `underlying_row_t...`). * The type must match the resultset that is currently being processed by `st`. For instance, * given `static_execution_state`, when reading rows for the second resultset, `SpanElementType` * must exactly be `underlying_row_t`. If this is not the case, a runtime error will be issued. - * \n + * * This function can report schema mismatches. */ template @@ -648,26 +648,26 @@ class connection * Reads a batch of rows of unspecified size into the storage given by `output`. * At most `output.size()` rows will be read. If the operation represented by `st` * has still rows to read, and `output.size() > 0`, at least one row will be read. - * \n + * * Returns the number of read rows. - * \n + * * If there are no more rows, or `st.should_read_rows() == false`, this function is a no-op and returns * zero. - * \n + * * The number of rows that will be read depends on the connection's buffer size. The bigger the buffer, * the greater the batch size (up to a maximum). You can set the initial buffer size in `connection`'s * constructor, using \ref buffer_params::initial_read_size. The buffer may be * grown bigger by other read operations, if required. - * \n + * * Rows read by this function are owning objects, and don't hold any reference to * the connection's internal buffers (contrary what happens with the dynamic interface's counterpart). - * \n + * * The type `SpanElementType` must be the underlying row type for one of the types in the * `StaticRow` parameter pack (i.e., one of the types in `underlying_row_t...`). * The type must match the resultset that is currently being processed by `st`. For instance, * given `static_execution_state`, when reading rows for the second resultset, `SpanElementType` * must exactly be `underlying_row_t`. If this is not the case, a runtime error will be issued. - * \n + * * This function can report schema mismatches. */ template @@ -686,26 +686,26 @@ class connection * Reads a batch of rows of unspecified size into the storage given by `output`. * At most `output.size()` rows will be read. If the operation represented by `st` * has still rows to read, and `output.size() > 0`, at least one row will be read. - * \n + * * Returns the number of read rows. - * \n + * * If there are no more rows, or `st.should_read_rows() == false`, this function is a no-op and returns * zero. - * \n + * * The number of rows that will be read depends on the connection's buffer size. The bigger the buffer, * the greater the batch size (up to a maximum). You can set the initial buffer size in `connection`'s * constructor, using \ref buffer_params::initial_read_size. The buffer may be * grown bigger by other read operations, if required. - * \n + * * Rows read by this function are owning objects, and don't hold any reference to * the connection's internal buffers (contrary what happens with the dynamic interface's counterpart). - * \n + * * The type `SpanElementType` must be the underlying row type for one of the types in the * `StaticRow` parameter pack (i.e., one of the types in `underlying_row_t...`). * The type must match the resultset that is currently being processed by `st`. For instance, * given `static_execution_state`, when reading rows for the second resultset, `SpanElementType` * must exactly be `underlying_row_t`. If this is not the case, a runtime error will be issued. - * \n + * * This function can report schema mismatches. * * \par Handler signature @@ -728,7 +728,7 @@ class connection template < class SpanElementType, class... StaticRow, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code, std::size_t)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, std::size_t)) CompletionToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(CompletionToken, void(error_code, std::size_t)) async_read_some_rows( @@ -746,26 +746,26 @@ class connection * Reads a batch of rows of unspecified size into the storage given by `output`. * At most `output.size()` rows will be read. If the operation represented by `st` * has still rows to read, and `output.size() > 0`, at least one row will be read. - * \n + * * Returns the number of read rows. - * \n + * * If there are no more rows, or `st.should_read_rows() == false`, this function is a no-op and returns * zero. - * \n + * * The number of rows that will be read depends on the connection's buffer size. The bigger the buffer, * the greater the batch size (up to a maximum). You can set the initial buffer size in `connection`'s * constructor, using \ref buffer_params::initial_read_size. The buffer may be * grown bigger by other read operations, if required. - * \n + * * Rows read by this function are owning objects, and don't hold any reference to * the connection's internal buffers (contrary what happens with the dynamic interface's counterpart). - * \n + * * The type `SpanElementType` must be the underlying row type for one of the types in the * `StaticRow` parameter pack (i.e., one of the types in `underlying_row_t...`). * The type must match the resultset that is currently being processed by `st`. For instance, * given `static_execution_state`, when reading rows for the second resultset, `SpanElementType` * must exactly be `underlying_row_t`. If this is not the case, a runtime error will be issued. - * \n + * * This function can report schema mismatches. * * \par Handler signature @@ -788,7 +788,7 @@ class connection template < class SpanElementType, class... StaticRow, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code, std::size_t)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, std::size_t)) CompletionToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> BOOST_ASIO_INITFN_AUTO_RESULT_TYPE(CompletionToken, void(error_code, std::size_t)) async_read_some_rows( @@ -826,7 +826,7 @@ class connection /// \copydoc any_connection::async_read_resultset_head template < BOOST_MYSQL_EXECUTION_STATE_TYPE ExecutionStateType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> auto async_read_resultset_head( ExecutionStateType& st, @@ -839,7 +839,7 @@ class connection /// \copydoc async_read_resultset_head template < BOOST_MYSQL_EXECUTION_STATE_TYPE ExecutionStateType, - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken BOOST_ASIO_DEFAULT_COMPLETION_TOKEN_TYPE(executor_type)> auto async_read_resultset_head( ExecutionStateType& st, @@ -864,7 +864,7 @@ class connection } /// \copydoc any_connection::async_ping - template auto async_ping(CompletionToken&& token BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) BOOST_MYSQL_RETURN_TYPE(detail::async_ping_t) @@ -873,7 +873,7 @@ class connection } /// \copydoc async_ping - template auto async_ping( diagnostics& diag, @@ -887,32 +887,32 @@ class connection * \brief Resets server-side session state, like variables and prepared statements. * \details * Resets all server-side state for the current session: - * \n + * * \li Rolls back any active transactions and resets autocommit mode. * \li Releases all table locks. * \li Drops all temporary tables. * \li Resets all session system variables to their default values (including the ones set by `SET * NAMES`) and clears all user-defined variables. * \li Closes all prepared statements. - * \n + * * A full reference on the affected session state can be found * here. - * \n + * * This function will not reset the current physical connection and won't cause re-authentication. * It is faster than closing and re-opening a connection. - * \n + * * The connection must be connected and authenticated before calling this function. * This function involves communication with the server, and thus may fail. * * \par Warning on character sets - * This function will restore the connection's character set and collation **to the server's default**, + * This function will restore the connection's character set and collation *to the server's default*, * and not to the one specified during connection establishment. Some servers have `latin1` as their * default character set, which is not usually what you want. Use a `SET NAMES` statement after using * this function to be sure. - * \n + * * You can find the character set that your server will use after reset by running: * \code - * "SELECT @@global.character_set_client, @@global.character_set_results;" + * SELECT @@global.character_set_client, @@global.character_set_results; * \endcode */ void reset_connection(error_code& err, diagnostics& diag) @@ -932,7 +932,7 @@ class connection /** * \copydoc reset_connection * \details - * \n + * * \par Handler signature * The handler signature for this operation is `void(boost::mysql::error_code)`. * @@ -946,7 +946,7 @@ class connection * Otherwise, the final handler is called as if it was submitted using `asio::post`, * and is never be called inline from within this function. */ - template auto async_reset_connection(CompletionToken&& token BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) BOOST_MYSQL_RETURN_TYPE(detail::async_reset_connection_t) @@ -955,7 +955,7 @@ class connection } /// \copydoc async_reset_connection - template auto async_reset_connection( diagnostics& diag, @@ -970,10 +970,10 @@ class connection * \brief Closes the connection to the server. * \details * This function is only available if `Stream` satisfies the `SocketStream` concept. - * \n + * * Sends a quit request, performs the TLS shutdown (if required) * and closes the underlying stream. Prefer this function to \ref connection::quit. - * \n + * */ void close(error_code& err, diagnostics& diag) { @@ -1013,7 +1013,7 @@ class connection * Otherwise, the final handler is called as if it was submitted using `asio::post`, * and is never be called inline from within this function. */ - template auto async_close(CompletionToken&& token BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) BOOST_MYSQL_RETURN_TYPE(detail::async_close_connection_t) @@ -1026,7 +1026,7 @@ class connection } /// \copydoc async_close - template auto async_close( diagnostics& diag, @@ -1046,7 +1046,7 @@ class connection * \details Sends a quit request to the MySQL server. If the connection is using SSL, * this function will also perform the SSL shutdown. You should * close the underlying physical connection after calling this function. - * \n + * * If the `Stream` template parameter fulfills the `SocketConnection` * requirements, use \ref connection::close instead of this function, * as it also takes care of closing the underlying stream. @@ -1081,7 +1081,7 @@ class connection * Otherwise, the final handler is called as if it was submitted using `asio::post`, * and is never be called inline from within this function. */ - template auto async_quit(CompletionToken&& token BOOST_ASIO_DEFAULT_COMPLETION_TOKEN(executor_type)) BOOST_MYSQL_RETURN_TYPE(detail::async_quit_connection_t) @@ -1090,7 +1090,7 @@ class connection } /// \copydoc async_quit - template auto async_quit( diagnostics& diag, @@ -1112,7 +1112,7 @@ class connection struct rebind_executor { /// The connection type when rebound to the specified executor. - using other = connection::type>; + using other = connection>; }; }; diff --git a/include/boost/mysql/connection_pool.hpp b/include/boost/mysql/connection_pool.hpp index ea8c98b95..f9002b79c 100644 --- a/include/boost/mysql/connection_pool.hpp +++ b/include/boost/mysql/connection_pool.hpp @@ -44,7 +44,7 @@ namespace mysql { * automatically. It's safe to destroy the `connection_pool` object before `*this`. * * \par Thread safety - * This object and the \ref any_connection object it may point to are **not thread safe**, + * This object and the \ref any_connection object it may point to are *not thread safe*, * even if the connection pool used to obtain them was constructed with * \ref pool_params::thread_safe set to true. * @@ -56,16 +56,14 @@ namespace mysql { * In other words, individual connections can't be shared between threads. Pools can * be shared only if they're constructed with \ref pool_params::thread_safe set to true. * - * - Distinct objects: safe if the \ref connection_pool that was used to obtain the objects - * was created with \ref pool_params::thread_safe set to true. Otherwise, unsafe. - * - Shared objects: always unsafe. + * \li Distinct objects: safe if the \ref connection_pool that was used to obtain the objects + * was created with \ref pool_params::thread_safe set to true. Otherwise, unsafe. + * \li Shared objects: always unsafe. */ class pooled_connection { -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; friend class detail::basic_pool_impl; -#endif struct impl_t { @@ -81,7 +79,7 @@ class pooled_connection public: /** - * \brief Constructs an invalid pooled connection. + * \brief Default constructor. * \details * The resulting object is invalid (`this->valid() == false`). * @@ -103,6 +101,8 @@ class pooled_connection */ pooled_connection(pooled_connection&& other) noexcept : impl_(std::move(other.impl_)) {} + pooled_connection(const pooled_connection&) = delete; + /** * \brief Move assignment. * \details @@ -131,10 +131,7 @@ class pooled_connection return *this; } -#ifndef BOOST_MYSQL_DOXYGEN - pooled_connection(const pooled_connection&) = delete; pooled_connection& operator=(const pooled_connection&) = delete; -#endif /** * \brief Destructor. @@ -189,16 +186,16 @@ class pooled_connection * \details * Returns a connection to the pool and marks it as idle. This will * skip the \ref any_connection::async_reset_connection call to wipe session state. - * \n + * * This can provide a performance gain, but must be used with care. Failing to wipe * session state can lead to resource leaks (prepared statements not being released), * incorrect results and vulnerabilities (different logical operations interacting due * to leftover state). - * \n + * * Please read the documentation on \ref any_connection::async_reset_connection before * calling this function. If in doubt, don't use it, and leave the destructor return * the connection to the pool for you. - * \n + * * When this function returns, `*this` will own nothing (`this->valid() == false`). * * \par Preconditions @@ -253,7 +250,7 @@ class pooled_connection * Pools are composed of an internal state object, plus a handle to such state. * Each component has different thread-safety rules. * - * Regarding **internal state**, connection pools are **not thread-safe by default**, + * Regarding *internal state*, connection pools are *not thread-safe by default*, * but can be made safe by constructing them with * \ref pool_params::thread_safe set to `true`. * Internal state is also mutated by some functions outside `connection_pool`, like @@ -262,16 +259,16 @@ class pooled_connection * The following actions imply a pool state mutation, and are protected by a strand * when thread-safety is enabled: * - * - Calling \ref connection_pool::async_run. - * - Calling \ref connection_pool::async_get_connection. - * - Cancelling \ref async_get_connection by emitting a cancellation signal. - * - Returning a connection by destroying a \ref pooled_connection or - * calling \ref pooled_connection::return_without_reset. - * - Cancelling the pool by calling \ref connection_pool::cancel, - * emitting a cancellation signal for \ref async_run, or destroying the - * `connection_pool` object. + * \li Calling \ref connection_pool::async_run. + * \li Calling \ref connection_pool::async_get_connection. + * \li Cancelling \ref async_get_connection by emitting a cancellation signal. + * \li Returning a connection by destroying a \ref pooled_connection or + * calling \ref pooled_connection::return_without_reset. + * \li Cancelling the pool by calling \ref connection_pool::cancel, + * emitting a cancellation signal for \ref async_run, or destroying the + * `connection_pool` object. * - * The **handle to the pool state** is **never thread-safe**, even for + * The *handle to the pool state* is *never thread-safe*, even for * pools with thread-safety enabled. Functions like assignments * modify the handle, and cause race conditions if called * concurrently with other functions. Other objects, @@ -280,9 +277,9 @@ class pooled_connection * * In summary: * - * - Distinct objects: safe. \n - * - Shared objects: unsafe. Setting \ref pool_params::thread_safe - * to `true` makes some functions safe. + * \li Distinct objects: safe. + * \li Shared objects: unsafe. Setting \ref pool_params::thread_safe + * to `true` makes some functions safe. * * \par Object lifetimes * Connection pool objects create an internal state object that is referenced @@ -294,9 +291,7 @@ class connection_pool { std::shared_ptr impl_; -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; -#endif struct initiate_run : detail::initiation_base { @@ -369,12 +364,12 @@ class connection_pool * The passed executor becomes the pool executor, available through \ref get_executor. * `ex` is used as follows: * - * - If `params.thread_safe == true`, `ex` is used to build a strand. The strand is used - * to build internal I/O objects, like timers. - * - If `params.thread_safe == false`, `ex` is used directly to build internal I/O objects. - * - If `params.connection_executor` is empty, `ex` is used to build individual connections, - * regardless of the chosen thread-safety mode. Otherwise, `params.connection_executor` - * is used. + * \li If `params.thread_safe == true`, `ex` is used to build a strand. The strand is used + * to build internal I/O objects, like timers. + * \li If `params.thread_safe == false`, `ex` is used directly to build internal I/O objects. + * \li If `params.connection_executor` is empty, `ex` is used to build individual connections, + * regardless of the chosen thread-safety mode. Otherwise, `params.connection_executor` + * is used. * * \par Exception safety * Strong guarantee. Exceptions may be thrown by memory allocations. @@ -400,24 +395,15 @@ class connection_pool * pool_params. */ template < - class ExecutionContext -#ifndef BOOST_MYSQL_DOXYGEN - , + class ExecutionContext, class = typename std::enable_if().get_executor()), - asio::any_io_executor>::value>::type -#endif - > + asio::any_io_executor>::value>::type> connection_pool(ExecutionContext& ctx, pool_params params) : connection_pool(ctx.get_executor(), std::move(params), 0) { } -#ifndef BOOST_MYSQL_DOXYGEN - connection_pool(const connection_pool&) = delete; - connection_pool& operator=(const connection_pool&) = delete; -#endif - /** * \brief Move-constructor. * \details @@ -434,9 +420,9 @@ class connection_pool * * \par Thread-safety * Mutates `other`'s internal state handle. Does not access the pool state. - * This function **can never be called concurrently with other functions - * that read the internal state handle**, even for pools created - * with \ref pool_params::thread_safe set to true. + * This function + * *can never be called concurrently with other functions that read the internal state handle*, + * even for pools created with \ref pool_params::thread_safe set to true. * * The internal pool state is not accessed, so this function can be called * concurrently with functions that only access the pool's internal state, @@ -444,6 +430,8 @@ class connection_pool */ connection_pool(connection_pool&& other) = default; + connection_pool(const connection_pool&) = delete; + /** * \brief Move assignment. * \details @@ -460,9 +448,9 @@ class connection_pool * * \par Thread-safety * Mutates `*this` and `other`'s internal state handle. Does not access the pool state. - * This function **can never be called concurrently with other functions - * that read the internal state handle**, even for pools created - * with \ref pool_params::thread_safe set to true. + * This function + * *can never be called concurrently with other functions that read the internal state handle*, + * even for pools created with \ref pool_params::thread_safe set to true. * * The internal pool state is not accessed, so this function can be called * concurrently with functions that only access the pool's internal state, @@ -470,6 +458,8 @@ class connection_pool */ connection_pool& operator=(connection_pool&& other) = default; + connection_pool& operator=(const connection_pool&) = delete; + /** * \brief Destructor. * \details @@ -477,9 +467,9 @@ class connection_pool * * \par Thread-safety * Mutates the internal state handle. Mutates the pool state. - * This function **can never be called concurrently with other functions - * that read the internal state handle**, even for pools created - * with \ref pool_params::thread_safe set to true. + * This function + * *can never be called concurrently with other functions that read the internal state handle*, + * even for pools created with \ref pool_params::thread_safe set to true. * * The internal pool state is modified as per \ref cancel. * If thread-safety is enabled, it's safe to call the destructor concurrently @@ -577,8 +567,8 @@ class connection_pool * is equivalent to calling \ref connection_pool::cancel. * The following `asio::cancellation_type_t` values are supported: * - * - `asio::cancellation_type_t::terminal` - * - `asio::cancellation_type_t::partial` + * \li `asio::cancellation_type_t::terminal` + * \li `asio::cancellation_type_t::partial` * * Note that `asio::cancellation_type_t::total` is not supported because invoking * `async_run` always has observable side effects. @@ -593,7 +583,7 @@ class connection_pool * concurrently with other functions that don't modify the state handle. */ template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code)) CompletionToken = with_diagnostics_t> auto async_run(CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE(decltype(asio::async_initiate( @@ -635,7 +625,7 @@ class connection_pool * to connect, this feature can help figuring out where the problem is. * * \par Preconditions - * `this->valid() == true` \n + * `this->valid() == true` * * \par Object lifetimes * While the operation is outstanding, the pool's internal data will be kept alive. @@ -667,18 +657,18 @@ class connection_pool * Cancelling `async_get_connection` has no observable side effects. * The following `asio::cancellation_type_t` values are supported: * - * - `asio::cancellation_type_t::terminal` - * - `asio::cancellation_type_t::partial` - * - `asio::cancellation_type_t::total` + * \li `asio::cancellation_type_t::terminal` + * \li `asio::cancellation_type_t::partial` + * \li `asio::cancellation_type_t::total` * * \par Errors - * - \ref client_errc::no_connection_available, if the `async_get_connection` - * operation is cancelled before a connection becomes available. - * - \ref client_errc::pool_not_running, if the `async_get_connection` - * operation is cancelled before async_run is called. - * - \ref client_errc::pool_cancelled, if the pool is cancelled before - * the operation completes, or `async_get_connection` is called - * on a pool that has been cancelled. + * \li \ref client_errc::no_connection_available, if the `async_get_connection` + * operation is cancelled before a connection becomes available. + * \li \ref client_errc::pool_not_running, if the `async_get_connection` + * operation is cancelled before async_run is called. + * \li \ref client_errc::pool_cancelled, if the pool is cancelled before + * the operation completes, or `async_get_connection` is called + * on a pool that has been cancelled. * * \par Thread-safety * Reads the internal state handle. Mutates the pool state. @@ -686,7 +676,7 @@ class connection_pool * concurrently with other functions that don't modify the state handle. */ template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code, ::boost::mysql::pooled_connection)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, pooled_connection)) CompletionToken = with_diagnostics_t> auto async_get_connection(CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE( decltype(async_get_connection_impl(nullptr, std::forward(token))) @@ -697,7 +687,7 @@ class connection_pool /// \copydoc async_get_connection template < - BOOST_ASIO_COMPLETION_TOKEN_FOR(void(::boost::mysql::error_code, ::boost::mysql::pooled_connection)) + BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, pooled_connection)) CompletionToken = with_diagnostics_t> auto async_get_connection(diagnostics& diag, CompletionToken&& token = {}) BOOST_MYSQL_RETURN_TYPE( decltype(async_get_connection_impl(nullptr, std::forward(token))) diff --git a/include/boost/mysql/constant_string_view.hpp b/include/boost/mysql/constant_string_view.hpp index b15d98da2..f320bed9f 100644 --- a/include/boost/mysql/constant_string_view.hpp +++ b/include/boost/mysql/constant_string_view.hpp @@ -33,22 +33,20 @@ class constant_string_view { string_view impl_; -#ifndef BOOST_MYSQL_DOXYGEN constexpr constant_string_view(string_view value, int) noexcept : impl_(value) {} friend constexpr constant_string_view runtime(string_view) noexcept; -#endif public: /** * \brief Consteval constructor. * \details * Constructs a \ref string_view from the passed argument. - * \n + * * This function is `consteval`: it results in a compile-time error * if the passed value is not known at compile-time. You can bypass * this check using the \ref runtime function. This check works only * for C++20 and above. No check is performed for lower C++ standard versions. - * \n + * * This constructor is only considered if a \ref string_view can be constructed * from the passed value. * @@ -87,7 +85,7 @@ class constant_string_view * \details * You can use this function to bypass the `consteval` check performed by \ref constant_string_view * constructor. - * \n + * * Don't use this function unless you know what you are doing. `consteval` checks exist * for the sake of security. Make sure to only pass trusted values to the relevant API. * diff --git a/include/boost/mysql/date.hpp b/include/boost/mysql/date.hpp index 5974cb5f0..842c472da 100644 --- a/include/boost/mysql/date.hpp +++ b/include/boost/mysql/date.hpp @@ -29,11 +29,11 @@ namespace mysql { * \brief Type representing MySQL `DATE` data type. * \details * Represents a Gregorian date broken by its year, month and day components, without a time zone. - * \n + * * This type is close to the protocol and should not be used as a vocabulary type. * Instead, cast it to a `std::chrono::time_point` by calling \ref as_time_point, * \ref get_time_point, \ref as_local_time_point or \ref get_local_time_point. - * \n + * * Dates retrieved from MySQL don't include any time zone information. Determining the time zone * is left to the application. Thus, any time point obtained from this class should be * interpreted as a local time in an unspecified time zone, like `std::chrono::local_time`. @@ -41,10 +41,10 @@ namespace mysql { * `system_clock` time points. These should be interpreted as local times rather * than UTC. Prefer using \ref as_local_time_point or \ref get_local_time_point * if your compiler supports them, as they provide more accurate semantics. - * \n + * * As opposed to `time_point`, this type allows representing MySQL invalid and zero dates. * These values are allowed by MySQL but don't represent real dates. - * \n + * * Note: using `std::chrono` time zone functionality under MSVC may cause memory leaks to be reported. * See this issue for an explanation and * this other issue for a workaround. @@ -108,7 +108,7 @@ class date * \details * Equivalent to constructing a `date` from a `time_point` with the same * `time_since_epoch()` as `tp`. - * \n + * * Requires C++20 calendar types. * * \par Exception safety @@ -206,7 +206,7 @@ class date * The returned object has the same `time_since_epoch()` as `this->get_time_point()`, * but uses the `std::chrono::local_t` pseudo-clock to better represent * the absence of time zone information. - * \n + * * Requires C++20 calendar types. * * \par Preconditions @@ -227,7 +227,7 @@ class date * The returned object has the same `time_since_epoch()` as `this->as_time_point()`, * but uses the `std::chrono::local_t` pseudo-clock to better represent * the absence of time zone information. - * \n + * * Requires C++20 calendar types. * * \par Exception safety diff --git a/include/boost/mysql/datetime.hpp b/include/boost/mysql/datetime.hpp index cbccc4330..0a4515e7c 100644 --- a/include/boost/mysql/datetime.hpp +++ b/include/boost/mysql/datetime.hpp @@ -30,11 +30,11 @@ namespace mysql { * \brief Type representing MySQL `DATETIME` and `TIMESTAMP` data types. * \details Represents a Gregorian date and time broken by its year, month, day, hour, minute, second and * microsecond components, without a time zone. - * \n + * * This type is close to the protocol and should not be used as a vocabulary type. * Instead, cast it to a `std::chrono::time_point` by calling \ref as_time_point, * \ref get_time_point, \ref as_local_time_point or \ref get_local_time_point. - * \n + * * Datetimes retrieved from MySQL don't include any time zone information. Determining the time zone * is left to the application. Thus, any time point obtained from this class should be * interpreted as a local time in an unspecified time zone, like `std::chrono::local_time`. @@ -42,10 +42,10 @@ namespace mysql { * `system_clock` time points. These should be interpreted as local times rather * than UTC. Prefer using \ref as_local_time_point or \ref get_local_time_point * if your compiler supports them, as they provide more accurate semantics. - * \n + * * As opposed to `time_point`, this type allows representing MySQL invalid and zero datetimes. * These values are allowed by MySQL but don't represent real time points. - * \n + * * Note: using `std::chrono` time zone functionality under MSVC may cause memory leaks to be reported. * See this issue for an explanation and * this other issue for a workaround. @@ -123,7 +123,7 @@ class datetime * \details * Equivalent to constructing a `date` from a `time_point` with the same * `time_since_epoch()` as `tp`. - * \n + * * Requires C++20 calendar types. * * \par Exception safety @@ -258,7 +258,7 @@ class datetime * The returned object has the same `time_since_epoch()` as `this->get_time_point()`, * but uses the `std::chrono::local_t` pseudo-clock to better represent * the absence of time zone information. - * \n + * * Requires C++20 calendar types. * * \par Preconditions @@ -279,7 +279,7 @@ class datetime * The returned object has the same `time_since_epoch()` as `this->as_time_point()`, * but uses the `std::chrono::local_t` pseudo-clock to better represent * the absence of time zone information. - * \n + * * Requires C++20 calendar types. * * \par Exception safety diff --git a/include/boost/mysql/detail/config.hpp b/include/boost/mysql/detail/config.hpp index d19fb4534..09be575b1 100644 --- a/include/boost/mysql/detail/config.hpp +++ b/include/boost/mysql/detail/config.hpp @@ -13,7 +13,7 @@ // clang-format off // Concepts -#if defined(__cpp_concepts) && defined(__cpp_lib_concepts) +#if defined(__cpp_concepts) && defined(__cpp_lib_concepts) && !defined(BOOST_MYSQL_DOXYGEN) #define BOOST_MYSQL_HAS_CONCEPTS #endif @@ -44,8 +44,10 @@ #define BOOST_MYSQL_RETURN_TYPE(...) #endif -// Chrono calendar types and functions -#if __cpp_lib_chrono >= 201907L +// Chrono calendar types and functions. +// When generating docs, the standard library may not have support for everything +// in C++20 chrono, but enough for render docs. +#if (__cpp_lib_chrono >= 201907L) || (defined(BOOST_MYSQL_DOXYGEN) && __cplusplus >= 201907L) #define BOOST_MYSQL_HAS_LOCAL_TIME #endif diff --git a/include/boost/mysql/detail/execution_processor/static_results_impl.hpp b/include/boost/mysql/detail/execution_processor/static_results_impl.hpp index 4a95cf50d..f885e15c6 100644 --- a/include/boost/mysql/detail/execution_processor/static_results_impl.hpp +++ b/include/boost/mysql/detail/execution_processor/static_results_impl.hpp @@ -263,10 +263,6 @@ BOOST_INLINE_CONSTEXPR std::array() ); -template -using rows_span_t = boost::span< - const typename std::tuple_element...>>::type>; - template class static_results_impl { @@ -331,7 +327,7 @@ class static_results_impl // User facing template - rows_span_t get_rows() const noexcept + span...>>> get_rows() const noexcept { return std::get(data_.rows); } diff --git a/include/boost/mysql/detail/output_string.hpp b/include/boost/mysql/detail/output_string.hpp index 4e4cf0931..1c08e4c1e 100644 --- a/include/boost/mysql/detail/output_string.hpp +++ b/include/boost/mysql/detail/output_string.hpp @@ -40,18 +40,8 @@ concept output_string = std::movable && requires(T& t, const char* data, std: class output_string_ref { - using append_fn_t = void (*)(void*, const char*, std::size_t); - - append_fn_t append_fn_; - void* container_; - - template - static void do_append(void* container, const char* data, std::size_t size) - { - static_cast(container)->append(data, size); - } - public: + using append_fn_t = void (*)(void*, const char*, std::size_t); output_string_ref(append_fn_t append_fn, void* container) noexcept : append_fn_(append_fn), container_(container) { @@ -68,6 +58,16 @@ class output_string_ref if (data.size() > 0u) append_fn_(container_, data.data(), data.size()); } + +private: + append_fn_t append_fn_; + void* container_; + + template + static void do_append(void* container, const char* data, std::size_t size) + { + static_cast(container)->append(data, size); + } }; } // namespace detail diff --git a/include/boost/mysql/detail/rebind_executor.hpp b/include/boost/mysql/detail/rebind_executor.hpp index 021854480..d798db757 100644 --- a/include/boost/mysql/detail/rebind_executor.hpp +++ b/include/boost/mysql/detail/rebind_executor.hpp @@ -28,6 +28,14 @@ struct rebind_executor, Executor> }; } // namespace detail + +namespace impl_defined { + +template +using rebind_executor = typename detail::rebind_executor::type; + +} + } // namespace mysql } // namespace boost diff --git a/include/boost/mysql/detail/results_iterator.hpp b/include/boost/mysql/detail/results_iterator.hpp index 8ec624133..d901f8b1d 100644 --- a/include/boost/mysql/detail/results_iterator.hpp +++ b/include/boost/mysql/detail/results_iterator.hpp @@ -93,6 +93,11 @@ class results_iterator inline results_iterator operator+(std::ptrdiff_t n, results_iterator it) noexcept { return it + n; } } // namespace detail + +namespace impl_defined { +using results_iterator = detail::results_iterator; // Required by the doc toolchain +} + } // namespace mysql } // namespace boost diff --git a/include/boost/mysql/detail/rows_iterator.hpp b/include/boost/mysql/detail/rows_iterator.hpp index 248e02e78..6f14668ea 100644 --- a/include/boost/mysql/detail/rows_iterator.hpp +++ b/include/boost/mysql/detail/rows_iterator.hpp @@ -106,6 +106,11 @@ class rows_iterator inline rows_iterator operator+(std::ptrdiff_t n, rows_iterator it) noexcept { return it + n; } } // namespace detail + +namespace impl_defined { +using rows_iterator = detail::rows_iterator; // Required by the doc toolchain +} + } // namespace mysql } // namespace boost diff --git a/include/boost/mysql/detail/sequence.hpp b/include/boost/mysql/detail/sequence.hpp index f2405a0bb..2076449ce 100644 --- a/include/boost/mysql/detail/sequence.hpp +++ b/include/boost/mysql/detail/sequence.hpp @@ -46,7 +46,7 @@ struct sequence_range_impl }; template -using sequence_range_type = sequence_range_impl>; +using sequence_range_t = typename sequence_range_impl>::type; template Range&& cast_range(Range&& range) @@ -90,6 +90,15 @@ concept format_fn_for_range = requires(const FormatFn& format_fn, Range&& range, #endif } // namespace detail + +namespace impl_defined { + +// Required by the doc toolchain +template +using sequence_range_t = detail::sequence_range_t; + +} // namespace impl_defined + } // namespace mysql } // namespace boost diff --git a/include/boost/mysql/diagnostics.hpp b/include/boost/mysql/diagnostics.hpp index abeaba655..f89ed062a 100644 --- a/include/boost/mysql/diagnostics.hpp +++ b/include/boost/mysql/diagnostics.hpp @@ -83,7 +83,6 @@ class diagnostics } private: -#ifndef BOOST_MYSQL_DOXYGEN struct { bool is_server{}; @@ -105,7 +104,6 @@ class diagnostics friend bool operator==(const diagnostics& lhs, const diagnostics& rhs) noexcept; friend struct detail::access; -#endif }; /** diff --git a/include/boost/mysql/error_categories.hpp b/include/boost/mysql/error_categories.hpp index 7e4113a32..3546ffe80 100644 --- a/include/boost/mysql/error_categories.hpp +++ b/include/boost/mysql/error_categories.hpp @@ -28,7 +28,7 @@ namespace mysql { * This function is thread-safe. */ BOOST_MYSQL_DECL -const boost::system::error_category& get_client_category() noexcept; +const system::error_category& get_client_category() noexcept; /** * \brief Returns the error_category associated to \ref common_server_errc. @@ -43,7 +43,7 @@ const boost::system::error_category& get_client_category() noexcept; * This function is thread-safe. */ BOOST_MYSQL_DECL -const boost::system::error_category& get_common_server_category() noexcept; +const system::error_category& get_common_server_category() noexcept; /** * \brief Returns the error_category associated to errors specific to MySQL. @@ -58,7 +58,7 @@ const boost::system::error_category& get_common_server_category() noexcept; * This function is thread-safe. */ BOOST_MYSQL_DECL -const boost::system::error_category& get_mysql_server_category() noexcept; +const system::error_category& get_mysql_server_category() noexcept; /** * \brief Returns the error_category associated to errors specific to MariaDB. @@ -73,7 +73,7 @@ const boost::system::error_category& get_mysql_server_category() noexcept; * This function is thread-safe. */ BOOST_MYSQL_DECL -const boost::system::error_category& get_mariadb_server_category() noexcept; +const system::error_category& get_mariadb_server_category() noexcept; } // namespace mysql } // namespace boost diff --git a/include/boost/mysql/escape_string.hpp b/include/boost/mysql/escape_string.hpp index 0d3094268..496371699 100644 --- a/include/boost/mysql/escape_string.hpp +++ b/include/boost/mysql/escape_string.hpp @@ -44,40 +44,40 @@ enum class quoting_context : char * block for composing client-side queries with runtime string values without * incurring in SQL injection vulnerabilities. * If you can, prefer using higher-level functions like \ref format_sql. - * \n + * * Escaping rules are different depending on the context a string is * being used in. `quot_ctx` identifies where the string will appear in - * a query. Possible values are: \n + * a query. Possible values are: + * * \li \ref quoting_context::double_quote : the string is surrounded by * double quotes. * \li \ref quoting_context::single_quote : the string is surrounded by * single quotes. * \li \ref quoting_context::backtick : the string is surrounded by * backticks, as happens when escaping identifiers. - * \n + * * By default, MySQL treats backslash characters as escapes in string values - * (for instance, the string `"\n"` is treated as a newline). This behavior is + * (for instance, the string `"\\n"` is treated as a newline). This behavior is * enabled by default, but can be disabled by enabling the - * `NO_BACKSLASH_ESCAPES` + * NO_BACKSLASH_ESCAPES * SQL mode. When enabled, backslashes no longer have a special meaning, which changes * the escaping rules. `opts.backslash_escapes` should be set to `true` if backslashes represent * escapes (i.e. `NO_BACKSLASH_ESCAPES` is not enabled), and `false` otherwise. - * \n + * * MySQL can be configured to treat double-quoted strings as identifiers instead of values. * This is enabled by activating the - * `ANSI_QUOTES` or - * `ANSI` SQL modes. + * ANSI_QUOTES or + * ANSI SQL modes. * Servers don't report whether this mode is enabled to clients. * This SQL mode is not directly supported by this function. - * \n + * * `opts.charset` should identify the connection's character set (as given by the * `character_set_client` session variable). The character set is used to iterate * over the input string. It must be an ASCII-compatible character set (like \ref utf8mb4_charset). * All character sets allowed by `character_set_client` satisfy this requirement. - * \n + * * You can use \ref any_connection::format_opts to retrieve an `opts` value suitable for your connection. - * \n + * * \par Exception safety * Basic guarantee. Memory allocations may throw. * diff --git a/include/boost/mysql/execution_state.hpp b/include/boost/mysql/execution_state.hpp index 6fa9afac5..cba6efc7e 100644 --- a/include/boost/mysql/execution_state.hpp +++ b/include/boost/mysql/execution_state.hpp @@ -29,7 +29,8 @@ namespace mysql { * More states may be added in the future as more protocol features are implemented. * * \par Thread safety - * Distinct objects: safe. \n + * Distinct objects: safe. + * * Shared objects: unsafe. */ class execution_state @@ -148,6 +149,7 @@ class execution_state /** * \brief Returns the number of rows affected by the SQL statement associated to this resultset. + * \details * Note that this is NOT the number of matched rows. If a row * is matched but not affected, it won't be accounted for here. * @@ -182,9 +184,9 @@ class execution_state /** * \brief Returns additional text information about this resultset. * \details - * The format of this information is documented by MySQL here. - * \n + * The format of this information is documented by MySQL + * here. + * * The returned string always uses ASCII encoding, regardless of the connection's character set. * * \par Exception safety @@ -213,9 +215,7 @@ class execution_state private: detail::execution_state_impl impl_; -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; -#endif }; } // namespace mysql diff --git a/include/boost/mysql/field.hpp b/include/boost/mysql/field.hpp index f95173fcd..ede3ca958 100644 --- a/include/boost/mysql/field.hpp +++ b/include/boost/mysql/field.hpp @@ -35,7 +35,7 @@ namespace mysql { * has value semantics (as opposed to \ref field_view). Instances of this class are not created * by the library. They should be created by the user, when the reference semantics of * \ref field_view are not appropriate. - * \n + * * Like a variant, at any point, a `field` always contains a value of * certain type. You can query the type using \ref kind and the `is_xxx` functions * like \ref is_int64. Use `as_xxx` and `get_xxx` for checked and unchecked value @@ -100,7 +100,7 @@ class field /** * \brief Constructs a `field` holding NULL. * \details - * Caution: `field(NULL)` will __NOT__ match this overload. It will try to construct + * Caution: `field(NULL)` will *NOT* match this overload. It will try to construct * a `string_view` from a NULL C string, causing undefined behavior. * * \par Exception safety @@ -532,7 +532,7 @@ class field * \par Object lifetimes * Invalidates references to `*this` obtained by as_xxx and get_xxx functions, but not * the ones obtained by \ref field::operator field_view(). - *\n + * * `*this` is guaranteed to be valid even after `v` becomes invalid. */ field& operator=(const field_view& v) diff --git a/include/boost/mysql/field_view.hpp b/include/boost/mysql/field_view.hpp index dd42257a2..c8f302a96 100644 --- a/include/boost/mysql/field_view.hpp +++ b/include/boost/mysql/field_view.hpp @@ -35,7 +35,7 @@ namespace mysql { * This is a variant-like class, similar to \ref field, but semi-owning and read-only. Values * of this type are usually created by the library, not directly by the user. It's cheap to * construct and copy, and it's the main library interface when reading values from MySQL. - * \n + * * Like a variant, at any point, a `field_view` always points to a value of * certain type. You can query the type using \ref field_view::kind and the `is_xxx` functions * like \ref field_view::is_int64. Use `as_xxx` and `get_xxx` for checked and unchecked value @@ -44,18 +44,18 @@ namespace mysql { * * \par Object lifetimes * Depending on how it was constructed, `field_view` can have value or reference semantics: - * \n + * * \li If it was created by the library, the `field_view` will have an associated \ref row, * \ref rows or \ref results object holding memory to which the `field_view` points. It will be valid as * long as the memory allocated by that object is valid. * \li If it was created from a \ref field (by calling `operator field_view`), the - * `field_view` acts as a reference to that `field` object, and will be valid as long as the - * `field` is. + * `field_view` acts as a reference to that `field` object, and will be valid + * as long as the `field` is. * \li If it was created from a scalar (null, integral, floating point, date, datetime or time), the * `field_view` has value semnatics and will always be valid. * \li If it was created from a string or blob type, the `field_view` acts as a `string_view` or `blob_view`, * and will be valid as long as the original string/blob is. - * \n + * * Calling any member function on a `field_view` that has been invalidated results in undefined * behavior. */ @@ -75,7 +75,7 @@ class field_view /** * \brief Constructs a `field_view` holding NULL. * \details - * Caution: `field_view(NULL)` will not match this overload. It will try to construct + * Caution: `field_view(NULL)` will *not* match this overload. It will try to construct * a `string_view` from a NULL C string, causing undefined behavior. * * \par Exception safety @@ -606,12 +606,10 @@ class field_view } BOOST_CXX14_CONSTEXPR inline void check_kind(internal_kind expected) const; -#ifndef BOOST_MYSQL_DOXYGEN friend class field; friend struct detail::access; BOOST_MYSQL_DECL friend std::ostream& operator<<(std::ostream& os, const field_view& v); -#endif }; /** diff --git a/include/boost/mysql/format_sql.hpp b/include/boost/mysql/format_sql.hpp index ee4f5f892..cad7e0e0c 100644 --- a/include/boost/mysql/format_sql.hpp +++ b/include/boost/mysql/format_sql.hpp @@ -36,40 +36,41 @@ namespace mysql { * This type can be specialized for custom types to make them formattable. * This makes them satisfy the `Formattable` concept, and thus usable in * \ref format_sql and similar functions. - * \n + * * A `formatter` specialization for a type `T` should have the following form: - * ``` + * \code * template <> * struct formatter * { * const char* parse(const char* begin, const char* end); // parse format specs * void format(const T& value, format_context_base& ctx) const; // perform the actual formatting * }; - * ``` - * \n + * \endcode + * * When a value with a custom formatter is formatted (using \ref format_sql or a similar - * function), the library performs the following actions: \n - * - An instance of `formatter` is default-constructed, where `T` is the type of the - * value being formatted after removing const and references. - * - The `parse` function is invoked on the constructed instance, - * with `[begin, end)` pointing to the format specifier - * that the current replacement field has. If `parse` finds specifiers it understands, it should - * remember them, usually setting some flag in the `formatter` instance. - * `parse` must return an iterator to the first - * unparsed character in the range (or the `end` iterator, if everything was parsed). - * Some examples of what would get passed to `parse`: - * - In `"SELECT {}"`, the range would be empty. - * - In `"SELECT {:abc}"`, the range would be `"abc"`. - * - In `"SELECT {0:i}"`, the range would be `"i"`. - * - If `parse` didn't manage to parse all the passed specifiers (i.e. if it returned an iterator - * different to the passed's end), a \ref client_errc::format_string_invalid_specifier - * is emitted and the format operation finishes. - * - Otherwise, `format` is invoked on the formatter instance, passing the value to be formatted - * and the \ref format_context_base where format operation is running. - * This function should perform the actual formatting, usually calling - * \ref format_sql_to on the passed context. + * function), the library performs the following actions: + * + * \li An instance of `formatter` is default-constructed, where `T` is the type of the + * value being formatted after removing const and references. + * \li The `parse` function is invoked on the constructed instance, + * with `[begin, end)` pointing to the format specifier + * that the current replacement field has. If `parse` finds specifiers it understands, it should + * remember them, usually setting some flag in the `formatter` + * instance. `parse` must return an iterator to the first + * unparsed character in the range (or the `end` iterator, if everything was parsed). + * Some examples of what would get passed to `parse`: + * \li In `"SELECT {}"`, the range would be empty. + * \li In `"SELECT {:abc}"`, the range would be `"abc"`. + * \li In `"SELECT {0:i}"`, the range would be `"i"`. + * \li If `parse` didn't manage to parse all the passed specifiers (i.e. if it returned an iterator + * different to the passed's end), a \ref client_errc::format_string_invalid_specifier + * is emitted and the format operation finishes. + * \li Otherwise, `format` is invoked on the formatter instance, passing the value to be formatted + * and the \ref format_context_base where format operation is running. + * This function should perform the actual formatting, + * usually calling \ref format_sql_to on the passed context. + * * - * \n * Don't specialize `formatter` for built-in types, like `int`, `std::string` or * optionals (formally, any type satisfying `WritableField`), as the specializations will be ignored. */ @@ -96,16 +97,15 @@ struct formatter class formattable_ref { detail::formattable_ref_impl impl_; -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; -#endif + public: /** * \brief Constructor. * \details * Constructs a type-erased formattable reference from a concrete * `Formattable` type. - * \n + * * This constructor participates in overload resolution only if * the passed value meets the `Formattable` concept and * is not a `formattable_ref` or a reference to one. @@ -144,7 +144,6 @@ class formattable_ref */ class format_arg { -#ifndef BOOST_MYSQL_DOXYGEN struct { string_view name; @@ -152,7 +151,6 @@ class format_arg } impl_; friend struct detail::access; -#endif public: /** @@ -175,24 +173,24 @@ class format_arg /** * \brief Base class for concrete format contexts. * \details - * Conceptually, a format context contains: \n + * Conceptually, a format context contains: + * * \li The result string. Output operations append characters to this output string. * `format_context_base` is agnostic to the output string type. * \li \ref format_options required to format values. * \li An error state (\ref error_state) that is set by output operations when they fail. * The error state is propagated to \ref basic_format_context::get. - * \n + * * References to this class are useful when you need to manipulate * a format context without knowing the type of the actual context that will be used, * like when specializing \ref formatter. - * \n + * * This class can't be * instantiated directly - use \ref basic_format_context, instead. * Do not subclass it, either. */ class format_context_base { -#ifndef BOOST_MYSQL_DOXYGEN struct { detail::output_string_ref output; @@ -202,7 +200,6 @@ class format_context_base friend struct detail::access; friend class detail::format_state; -#endif BOOST_MYSQL_DECL void format_arg(detail::formattable_ref_impl arg, string_view format_spec); @@ -229,10 +226,10 @@ class format_context_base * \brief Adds raw SQL to the output string (low level). * \details * Adds raw, unescaped SQL to the output string. Doesn't alter the error state. - * \n + * * By default, the passed SQL should be available at compile-time. * Use \ref runtime if you need to use runtime values. - * \n + * * This is a low level function. In general, prefer \ref format_sql_to, instead. * * \par Exception safety @@ -253,14 +250,15 @@ class format_context_base * value is formatted according to its type, applying the passed format specifiers. * If formatting generates an error (for instance, a string with invalid encoding is passed), * the error state may be set. - * \n + * * This is a low level function. In general, prefer \ref format_sql_to, instead. * * \par Exception safety * Basic guarantee. Memory allocations may throw. * * \par Errors - * The error state may be updated with the following errors: \n + * The error state may be updated with the following errors: + * * \li \ref client_errc::invalid_encoding if a string with byte sequences that can't be decoded * with the current character set is passed. * \li \ref client_errc::unformattable_value if a NaN or infinity `float` or `double` is passed. @@ -283,11 +281,11 @@ class format_context_base * This function can be used by custom formatters to report that they * received a value that can't be formatted. For instance, it's used by * the built-in string formatter when a string with an invalid encoding is supplied. - * \n + * * If the error state is not set before calling this function, the error * state is updated to `ec`. Otherwise, the error is ignored. * This implies that once the error state is set, it can't be reset. - * \n + * * \par Exception safety * No-throw guarantee. */ @@ -320,7 +318,7 @@ class format_context_base * The primary interface for incremental SQL formatting. Contrary to \ref format_context_base, * this type is aware of the output string's actual type. `basic_format_context` owns * an instance of `OutputString`. Format operations will append characters to such string. - * \n + * * Objects of this type are single-use: once the result has been retrieved using \ref get, * they cannot be re-used. This is a move-only type. */ @@ -342,10 +340,8 @@ class basic_format_context : public format_context_base * \par Exception safety * Strong guarantee: exceptions thrown by default-constructing `OutputString` are propagated. */ - explicit basic_format_context(format_options opts) -#ifndef BOOST_MYSQL_DOXYGEN // TODO: remove when https://github.com/boostorg/docca/issues/169 gets done - noexcept(std::is_nothrow_default_constructible::value) -#endif + explicit basic_format_context(format_options opts + ) noexcept(std::is_nothrow_default_constructible::value) : format_context_base(ref(), opts) { } @@ -357,25 +353,19 @@ class basic_format_context : public format_context_base * the output string is cleared. Uses an empty * error code as error state. This constructor allows re-using existing * memory for the output string. - * \n + * * * \par Exception safety * Basic guarantee: exceptions thrown by move-constructing `OutputString` are propagated. */ - basic_format_context(format_options opts, OutputString&& storage) -#ifndef BOOST_MYSQL_DOXYGEN // TODO: remove when https://github.com/boostorg/docca/issues/169 gets done - noexcept(std::is_nothrow_move_constructible::value) -#endif + basic_format_context(format_options opts, OutputString&& storage) noexcept( + std::is_nothrow_move_constructible::value + ) : format_context_base(ref(), opts), output_(std::move(storage)) { output_.clear(); } -#ifndef BOOST_MYSQL_DOXYGEN - basic_format_context(const basic_format_context&) = delete; - basic_format_context& operator=(const basic_format_context&) = delete; -#endif - /** * \brief Move constructor. * \details @@ -386,14 +376,14 @@ class basic_format_context : public format_context_base * \par Exception safety * Basic guarantee: exceptions thrown by move-constructing `OutputString` are propagated. */ - basic_format_context(basic_format_context&& rhs) -#ifndef BOOST_MYSQL_DOXYGEN // TODO: remove when https://github.com/boostorg/docca/issues/169 gets done - noexcept(std::is_nothrow_move_constructible::value) -#endif + basic_format_context(basic_format_context&& rhs + ) noexcept(std::is_nothrow_move_constructible::value) : format_context_base(ref(), rhs), output_(std::move(rhs.output_)) { } + basic_format_context(const basic_format_context&) = delete; + /** * \brief Move assignment. * \details @@ -404,35 +394,32 @@ class basic_format_context : public format_context_base * \par Exception safety * Basic guarantee: exceptions thrown by move-constructing `OutputString` are propagated. */ - basic_format_context& operator=(basic_format_context&& rhs) -#ifndef BOOST_MYSQL_DOXYGEN // TODO: remove when https://github.com/boostorg/docca/issues/169 gets done - noexcept(std::is_nothrow_move_assignable::value) -#endif + basic_format_context& operator=(basic_format_context&& rhs + ) noexcept(std::is_nothrow_move_assignable::value) { output_ = std::move(rhs.output_); assign(rhs); return *this; } + basic_format_context& operator=(const basic_format_context&) = delete; + /** * \brief Retrieves the result of the formatting operation. * \details * After running the relevant formatting operations (using \ref append_raw, * \ref append_value or \ref format_sql_to), call this function to retrieve the * overall result of the operation. - * \n + * * If \ref error_state is a non-empty error code, returns it as an error. * Otherwise, returns the output string, move-constructing it into the `system::result` object. - * \n + * * This function is move-only: once called, `*this` is left in a valid but unspecified state. * * \par Exception safety * Basic guarantee: exceptions thrown by move-constructing `OutputString` are propagated. */ - system::result get() && -#ifndef BOOST_MYSQL_DOXYGEN // TODO: remove when https://github.com/boostorg/docca/issues/169 gets done - noexcept(std::is_nothrow_move_constructible::value) -#endif + system::result get() && noexcept(std::is_nothrow_move_constructible::value) { auto ec = error_state(); if (ec) @@ -453,12 +440,13 @@ using format_context = basic_format_context; * \details * Parses `format_str` as a format string, substituting replacement fields (like `{}`, `{1}` or `{name}`) * by formatted arguments, extracted from `args`. - * \n + * * Formatting is performed as if \ref format_context_base::append_raw and * \ref format_context_base::append_value were called on `ctx`, effectively appending * characters to its output string. - * \n - * Compared to \ref format_sql, this function is more flexible, allowing the following use cases: \n + * + * Compared to \ref format_sql, this function is more flexible, allowing the following use cases: + * * \li Appending characters to an existing context. Can be used to concatenate the output of successive * format operations efficiently. * \li Using string types different to `std::string` (works with any \ref basic_format_context). @@ -498,7 +486,7 @@ void format_sql_to(format_context_base& ctx, constant_string_view format_str, Fo /** * \copydoc format_sql_to * \details - * \n + * * This overload allows using named arguments. */ inline void format_sql_to( @@ -516,10 +504,10 @@ inline void format_sql_to( * Parses `format_str` as a format string, substituting replacement fields (like `{}`, `{1}` or `{name}`) * by formatted arguments, extracted from `args`. `opts` is using to parse the string and format string * arguments. - * \n + * * Formatting is performed as if \ref format_context::append_raw and \ref format_context::append_value * were called on a context created by this function. - * \n + * * * \par Exception safety * Strong guarantee. Memory allocations may throw. `boost::system::system_error` is thrown if an error @@ -548,7 +536,7 @@ std::string format_sql(format_options opts, constant_string_view format_str, For /** * \copydoc format_sql * \details - * \n + * * This overload allows using named arguments. */ BOOST_MYSQL_DECL diff --git a/include/boost/mysql/impl/statement.hpp b/include/boost/mysql/impl/statement.hpp index dec6c5939..cfdf601e2 100644 --- a/include/boost/mysql/impl/statement.hpp +++ b/include/boost/mysql/impl/statement.hpp @@ -23,48 +23,13 @@ #include #include -template -class boost::mysql::bound_statement_tuple -{ - friend class statement; - friend struct detail::access; - - struct impl - { - statement stmt; - WritableFieldTuple params; - } impl_; - - template - bound_statement_tuple(const statement& stmt, TupleType&& t) : impl_{stmt, std::forward(t)} - { - } -}; - -template -class boost::mysql::bound_statement_iterator_range -{ - friend class statement; - friend struct detail::access; - - struct impl - { - statement stmt; - FieldViewFwdIterator first; - FieldViewFwdIterator last; - } impl_; - - bound_statement_iterator_range( - const statement& stmt, - FieldViewFwdIterator first, - FieldViewFwdIterator last - ) - : impl_{stmt, first, last} - { - } -}; - -template +template < + BOOST_MYSQL_WRITABLE_FIELD_TUPLE WritableFieldTuple +#ifndef BOOST_MYSQL_DOXYGEN + , + typename EnableIf +#endif + > boost::mysql::bound_statement_tuple::type> boost::mysql::statement:: bind(WritableFieldTuple&& args) const @@ -76,7 +41,13 @@ boost::mysql::bound_statement_tuple::typ ); } -template +template < + BOOST_MYSQL_FIELD_VIEW_FORWARD_ITERATOR FieldViewFwdIterator +#ifndef BOOST_MYSQL_DOXYGEN + , + typename EnableIf +#endif + > boost::mysql::bound_statement_iterator_range boost::mysql::statement::bind( FieldViewFwdIterator first, FieldViewFwdIterator last diff --git a/include/boost/mysql/is_fatal_error.hpp b/include/boost/mysql/is_fatal_error.hpp index dc5a79dae..66510f902 100644 --- a/include/boost/mysql/is_fatal_error.hpp +++ b/include/boost/mysql/is_fatal_error.hpp @@ -22,7 +22,7 @@ namespace mysql { * the connection may be usable for further operations (if the error was non-fatal) * or not (if the error was fatal). This function determines whether an error * code returned by a connection operation is fatal or not. - * \n + * * To recover from a fatal error code, close and re-establish the connection. * * \par Exception safety diff --git a/include/boost/mysql/metadata.hpp b/include/boost/mysql/metadata.hpp index f2741046c..0fa6dd312 100644 --- a/include/boost/mysql/metadata.hpp +++ b/include/boost/mysql/metadata.hpp @@ -45,7 +45,7 @@ class metadata * No-throw guarantee. * * \par Object lifetimes - * `string_view`s obtained by calling accessor functions on `other` are invalidated. + * `string_view` values obtained by calling accessor functions on `other` are invalidated. */ metadata(metadata&& other) = default; @@ -64,7 +64,7 @@ class metadata * No-throw guarantee. * * \par Object lifetimes - * `string_view`s obtained by calling accessor functions on both `*this` and `other` + * `string_view` values obtained by calling accessor functions on both `*this` and `other` * are invalidated. */ metadata& operator=(metadata&& other) = default; @@ -76,7 +76,7 @@ class metadata * Basic guarantee. Internal allocations may throw. * * \par Object lifetimes - * `string_view`s obtained by calling accessor functions on `*this` + * `string_view` values obtained by calling accessor functions on `*this` * are invalidated. */ metadata& operator=(const metadata& other) = default; @@ -102,8 +102,8 @@ class metadata /** * \brief Returns the name of the virtual table the column belongs to. * \details If the table was aliased, this will be the name of the alias - * (e.g. in `"SELECT * FROM employees emp"`, `table()` will be `"emp"`). - *\n + * (e.g. in `"SELECT id FROM employees emp"`, `table()` will be `"emp"`). + * * This is optional information - it won't be populated unless * the connection executing the query has `meta_mode() == metadata_mode::full`. * @@ -118,9 +118,9 @@ class metadata /** * \brief Returns the name of the physical table the column belongs to. - * \details E.g. in `"SELECT * FROM employees emp"`, + * \details E.g. in `"SELECT id FROM employees emp"`, * `original_table()` will be `"employees"`. - * \n + * * This is optional information - it won't be populated unless * the connection executing the query has `meta_mode() == metadata_mode::full`. * @@ -138,7 +138,7 @@ class metadata * \details If the column was aliased, this will be the name of the alias * (e.g. in `"SELECT id AS employee_id FROM employees"`, * `column_name()` will be `"employee_id"`). - *\n + * * This is optional information - it won't be populated unless * the connection executing the query has `meta_mode() == metadata_mode::full`. * @@ -155,7 +155,7 @@ class metadata * \brief Returns the original (physical) name of the column. * \details E.g. in `"SELECT id AS employee_id FROM employees"`, * `original_column_name()` will be `"id"`. - * \n + * * This is optional information - it won't be populated unless * the connection executing the query has `meta_mode() == metadata_mode::full`. * @@ -170,7 +170,7 @@ class metadata /** * \brief Returns the ID of the collation that fields belonging to this column use. - * \details This is not the collation used when defining the column + * \details This is *not* the collation used when defining the column * in a `CREATE TABLE` statement, but the collation that fields that belong to * this column and are sent to the client have. It usually matches the connection's collation. * @@ -293,9 +293,7 @@ class metadata bool flag_set(std::uint16_t flag) const noexcept { return flags_ & flag; } -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; -#endif }; } // namespace mysql diff --git a/include/boost/mysql/pfr.hpp b/include/boost/mysql/pfr.hpp index f625594d7..bba3362d4 100644 --- a/include/boost/mysql/pfr.hpp +++ b/include/boost/mysql/pfr.hpp @@ -24,12 +24,12 @@ namespace mysql { * When used within the static interface, modifies its behavior * for the marked type so that Boost.PFR is used for reflection, instead of Boost.Describe. * Field matching is performed by position, with the same algorithm used for `std::tuple`. - * \n + * * The underlying row type for this marker is `T`, i.e. * \ref underlying_row_t "underlying_row_t>" is an alias for `T`. - * \n + * * The type `T` must be a PFR-reflectable non-const object type. - * \n + * * This type is only defined if the macro `BOOST_PFR_ENABLED` is defined and set to `1`. */ template @@ -44,12 +44,12 @@ struct pfr_by_position; * When used within the static interface, modifies its behavior * for the marked type so that Boost.PFR is used for reflection, instead of Boost.Describe. * Field matching is performed by name, with the same algorithm used for Boost.Describe structs. - * \n + * * The underlying row type for this marker is `T`, i.e. * \ref underlying_row_t "underlying_row_t>" is an alias for `T`. - * \n + * * The type `T` must be a PFR-reflectable non-const object type. - * \n + * * This type is only defined if the macro `BOOST_PFR_CORE_NAME_ENABLED` is defined and set to `1` * (requires C++20). */ diff --git a/include/boost/mysql/pipeline.hpp b/include/boost/mysql/pipeline.hpp index 0c092dc77..739ee5d28 100644 --- a/include/boost/mysql/pipeline.hpp +++ b/include/boost/mysql/pipeline.hpp @@ -38,7 +38,8 @@ namespace mysql { * \brief (EXPERIMENTAL) A variant-like type holding the response of a single pipeline stage. * \details * This is a variant-like type, similar to `boost::system::result`. At any point in time, - * it can contain: \n + * it can contain: + * * \li A \ref statement. Will happen if the stage was a prepare statement that succeeded. * \li A \ref results. Will happen if the stage was a query or statement execution that succeeded. * \li An \ref error_code, \ref diagnostics pair. Will happen if the stage failed, or if it succeeded but @@ -50,7 +51,6 @@ namespace mysql { */ class stage_response { -#ifndef BOOST_MYSQL_DOXYGEN struct errcode_with_diagnostics { error_code ec; @@ -75,7 +75,6 @@ class stage_response } impl_; friend struct detail::access; -#endif bool has_error() const { return impl_.value.index() == 0u; } @@ -257,7 +256,6 @@ class stage_response */ class pipeline_request { -#ifndef BOOST_MYSQL_DOXYGEN struct impl_t { std::vector buffer_; @@ -265,7 +263,6 @@ class pipeline_request } impl_; friend struct detail::access; -#endif public: /** @@ -287,7 +284,7 @@ class pipeline_request * Strong guarantee. Memory allocations may throw. * * \par Object lifetimes - * query is copied into the request and need not be kept alive after this function returns. + * `query` is copied into the request and need not be kept alive after this function returns. */ BOOST_MYSQL_DECL pipeline_request& add_execute(string_view query); @@ -331,7 +328,7 @@ class pipeline_request * `stmt` bound to any parameters passed in `params`, like \ref any_connection::execute * and \ref statement::bind. For example, `add_execute_range(stmt, params)` has * effects equivalent to `conn.execute(stmt.bind(params.begin(), params.end()))`. - * \n + * * This function can be used instead of \ref add_execute when the number of actual parameters * of a statement is not known at compile time. * @@ -360,7 +357,7 @@ class pipeline_request * Strong guarantee. Memory allocations may throw. * * \par Object lifetimes - * stmt_sql is copied into the request and need not be kept alive after this function returns. + * `stmt_sql` is copied into the request and need not be kept alive after this function returns. */ BOOST_MYSQL_DECL pipeline_request& add_prepare_statement(string_view stmt_sql); diff --git a/include/boost/mysql/pool_params.hpp b/include/boost/mysql/pool_params.hpp index fb6c19640..b564e16d6 100644 --- a/include/boost/mysql/pool_params.hpp +++ b/include/boost/mysql/pool_params.hpp @@ -82,11 +82,11 @@ struct pool_params * \details * When a connection is requested, but all connections are in use, new connections * will be created and connected up to this size. - * \n + * * Defaults to the maximum number of concurrent connections that MySQL * servers allow by default. If you increase this value, increase the server's * max number of connections, too (by setting the `max_connections` global variable). - * \n + * * This value must be `> 0` and `>= initial_size`. */ std::size_t max_size{151}; @@ -97,7 +97,7 @@ struct pool_params * If a non-empty value is provided, all connections created by the pool * will use the passed context when using TLS. This allows setting TLS options * to pool-created connections. - * \n + * * If an empty value is passed (the default) and the connections require TLS, * an internal SSL context with suitable options will be created by the pool. */ @@ -110,9 +110,9 @@ struct pool_params * (using \ref any_connection::async_connect). * If the operation takes longer than this timeout, * the operation will be interrupted, considered as failed and retried later. - * \n + * * Set this timeout to zero to disable it. - * \n + * * This value must not be negative. */ std::chrono::steady_clock::duration connect_timeout{std::chrono::seconds(20)}; @@ -123,7 +123,7 @@ struct pool_params * When session establishment fails, the operation will be retried until * success. This value determines the interval between consecutive connection * attempts. - * \n + * * This value must be greater than zero. */ std::chrono::steady_clock::duration retry_interval{std::chrono::seconds(30)}; @@ -140,8 +140,7 @@ struct pool_params * * This value must not be negative. It should be smaller than the server's * idle timeout (as determined by the - * wait_timeout + * wait_timeout * session variable). Otherwise, the server might close connections * without the pool detecting it. */ @@ -153,9 +152,9 @@ struct pool_params * If pings (as per \ref any_connection::async_ping) or session resets * (as per \ref any_connection::async_reset_connection) take longer than this * timeout, they will be cancelled, and the operation will be considered failed. - * \n + * * Set this timeout to zero to disable it. - * \n + * * This value must not be negative. */ std::chrono::steady_clock::duration ping_timeout{std::chrono::seconds(10)}; diff --git a/include/boost/mysql/results.hpp b/include/boost/mysql/results.hpp index d15f18de1..7327a6bec 100644 --- a/include/boost/mysql/results.hpp +++ b/include/boost/mysql/results.hpp @@ -32,23 +32,20 @@ namespace mysql { * This object can store the results of single and multi resultset queries. * For the former, you use \ref meta, \ref rows, \ref affected_rows and so on. * For the latter, this class is a random-access collection of \ref resultset objects. - * \n + * * \par Thread safety - * Distinct objects: safe. \n - * Shared objects: unsafe. \n + * Distinct objects: safe. + * + * Shared objects: unsafe. */ class results { public: -#ifdef BOOST_MYSQL_DOXYGEN /** * \brief A random access iterator to an element. * \details The exact type of the iterator is unspecified. */ - using iterator = __see_below__; -#else - using iterator = detail::results_iterator; -#endif + using iterator = impl_defined::results_iterator; /// \copydoc iterator using const_iterator = iterator; @@ -165,7 +162,7 @@ class results * \details * The returned collection will have as many \ref metadata objects as columns retrieved by * the SQL query, and in the same order. - * \n + * * For operations returning more than one resultset, returns metadata * for the first resultset. * @@ -258,11 +255,11 @@ class results /** * \brief Returns additional text information about the execution of the SQL statement. * \details - * The format of this information is documented by MySQL here. - * \n + * The format of this information is documented by MySQL + * here. + * * The returned string always uses ASCII encoding, regardless of the connection's character set. - * \n + * * For operations returning more than one resultset, returns the * first resultset's info. * @@ -452,7 +449,7 @@ class results * Relevant for `CALL` operations performed using prepared statements that * bind placeholders to `OUT` or `INOUT` parameters. Returns a row containing a field per * bound output parameter. - * \n + * * If this operation had no output parameters (e.g. it wasn't a `CALL`), returns an empty row. * * \par Preconditions @@ -476,9 +473,7 @@ class results private: detail::results_impl impl_; -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; -#endif }; } // namespace mysql diff --git a/include/boost/mysql/resultset.hpp b/include/boost/mysql/resultset.hpp index da1f8658e..a450c0e36 100644 --- a/include/boost/mysql/resultset.hpp +++ b/include/boost/mysql/resultset.hpp @@ -239,9 +239,9 @@ class resultset /** * \brief Returns additional information for this resultset. * \details - * The format of this information is documented by MySQL here. - * \n + * The format of this information is documented by MySQL + * here. + * * The returned string always uses ASCII encoding, regardless of the connection's character set. * * \par Preconditions diff --git a/include/boost/mysql/resultset_view.hpp b/include/boost/mysql/resultset_view.hpp index 391a8a0b9..235466f5a 100644 --- a/include/boost/mysql/resultset_view.hpp +++ b/include/boost/mysql/resultset_view.hpp @@ -145,9 +145,9 @@ class resultset_view /** * \brief Returns additional information for this resultset. * \details - * The format of this information is documented by MySQL here. - * \n + * The format of this information is documented by MySQL + * here. + * * The returned string always uses ASCII encoding, regardless of the connection's character set. * * \par Preconditions @@ -198,9 +198,7 @@ class resultset_view { } -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; -#endif }; } // namespace mysql diff --git a/include/boost/mysql/row.hpp b/include/boost/mysql/row.hpp index 32a9c6a7a..e54028a82 100644 --- a/include/boost/mysql/row.hpp +++ b/include/boost/mysql/row.hpp @@ -19,6 +19,9 @@ namespace boost { namespace mysql { +namespace impl_defined { +using row_iterator = const field_view*; // Required by the doc toolchain +} /** * \brief An owning, read-only sequence of fields. @@ -38,15 +41,11 @@ class row detail::row_impl impl_; public: -#ifdef BOOST_MYSQL_DOXYGEN /** * \brief A random access iterator to an element. * \details The exact type of the iterator is unspecified. */ - using iterator = __see_below__; -#else - using iterator = const field_view*; -#endif + using iterator = impl_defined::row_iterator; /// \copydoc iterator using const_iterator = iterator; diff --git a/include/boost/mysql/row_view.hpp b/include/boost/mysql/row_view.hpp index 62a49c94a..411420828 100644 --- a/include/boost/mysql/row_view.hpp +++ b/include/boost/mysql/row_view.hpp @@ -21,27 +21,30 @@ namespace boost { namespace mysql { +namespace impl_defined { +using row_view_iterator = const field_view*; +} /** * \brief A non-owning read-only reference to a sequence of fields. * \details * A `row_view` points to memory owned by an external entity (like `string_view` does). The validity * of a `row_view` depends on how it was obtained: - * \n + * * \li If it was constructed from a \ref row object (by calling \ref row::operator row_view()), the * view acts as a reference to the row's allocated memory, and is valid as long as references * to that row elements are valid. * \li If it was obtained by indexing a \ref rows object, the same applies. * \li If it was obtained by indexing a \ref rows_view object, it's valid as long as the * `rows_view` is valid. - * \n + * * Calling any member function on an invalid view results in undefined behavior. - * \n + * * When indexed (by using iterators, \ref row_view::at or \ref row_view::operator[]), it returns * \ref field_view elements that are valid as long as the underlying storage that `*this` points * to is valid. Destroying a `row_view` doesn't invalidate `field_view`s obtained from * it. - * \n Instances of this class are usually created by the library, not by the user. + * Instances of this class are usually created by the library, not by the user. */ class row_view { @@ -53,15 +56,11 @@ class row_view */ row_view() = default; -#ifdef BOOST_MYSQL_DOXYGEN /** * \brief A random access iterator to an element. * \details The exact type of the iterator is unspecified. */ - using iterator = __see_below__; -#else - using iterator = const field_view*; -#endif + using iterator = impl_defined::row_view_iterator; /// \copydoc iterator using const_iterator = iterator; @@ -206,10 +205,8 @@ class row_view const field_view* fields_{}; std::size_t size_{}; -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; friend class row; -#endif }; /** diff --git a/include/boost/mysql/rows.hpp b/include/boost/mysql/rows.hpp index 0a2cc42a7..f5b80dcfc 100644 --- a/include/boost/mysql/rows.hpp +++ b/include/boost/mysql/rows.hpp @@ -29,34 +29,30 @@ namespace mysql { * Models an owning, matrix-like container. Indexing a `rows` object (by using iterators, * \ref rows::at or \ref rows::operator[]) returns a \ref row_view object, representing a * single row. All rows in the collection are the same size (as given by \ref num_columns). - * \n + * * A `rows` object owns a chunk of memory in which it stores its elements. The \ref rows_view * objects obtained on element access point into the `rows`' internal storage. These views (and any * \ref row_view and \ref field_view obtained from the former) behave * like references, and are valid as long as pointers, iterators and references into the `rows` * object remain valid. - * \n + * * Although owning, `rows` is read-only. It's optimized for memory re-use. */ class rows { public: -#ifdef BOOST_MYSQL_DOXYGEN /** * \brief A random access iterator to an element. * \details The exact type of the iterator is unspecified. */ - using iterator = __see_below__; -#else - using iterator = detail::rows_iterator; -#endif + using iterator = impl_defined::rows_iterator; /// \copydoc iterator using const_iterator = iterator; /** * \brief A type that can hold elements in this collection with value semantics. - * \details Note that element accesors (like \ref rows_view::operator[]) return \ref reference + * \details Note that element accessors (like \ref rows_view::operator[]) return \ref reference * objects instead of `value_type` objects. You can use this type if you need an owning class. */ using value_type = row; diff --git a/include/boost/mysql/rows_view.hpp b/include/boost/mysql/rows_view.hpp index e702a96c8..73b42a3aa 100644 --- a/include/boost/mysql/rows_view.hpp +++ b/include/boost/mysql/rows_view.hpp @@ -30,36 +30,32 @@ namespace mysql { * Models a non-owning matrix-like container. Indexing a `rows_view` object (by using iterators, * \ref rows_view::at or \ref rows_view::operator[]) returns a \ref row_view object, representing a * single row. All rows in the collection are the same size (as given by \ref num_columns). - * \n + * * A `rows_view` object points to memory owned by an external entity (like `string_view` does). The * validity of a `rows_view` object depends on how it was obtained: - * \n + * * \li If it was constructed from a \ref rows object (by calling \ref rows::operator rows_view()), * the view acts as a reference to the `rows`' allocated memory, and is valid as long as * references to that `rows` elements are valid. * \li If it was obtained by calling \ref connection::read_some_rows it's valid until the * `connection` performs the next network call or is destroyed. - * \n + * * \ref row_view's and \ref field_view's obtained by using a `rows_view` object are valid as long as * the underlying storage that `*this` points to is valid. Destroying `*this` doesn't invalidate * such references. - * \n + * * Calling any member function on an invalid view results in undefined behavior. - * \n + * * Instances of this class are usually created by the library, not by the user. */ class rows_view { public: -#ifdef BOOST_MYSQL_DOXYGEN /** * \brief A random access iterator to an element. * \details The exact type of the iterator is unspecified. */ - using iterator = __see_below__; -#else - using iterator = detail::rows_iterator; -#endif + using iterator = impl_defined::rows_iterator; /// \copydoc iterator using const_iterator = iterator; @@ -245,10 +241,8 @@ class rows_view BOOST_ASSERT(num_columns == 0 || (num_fields % num_columns == 0)); } -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; friend class rows; -#endif }; } // namespace mysql diff --git a/include/boost/mysql/sequence.hpp b/include/boost/mysql/sequence.hpp index 486b58129..251186e32 100644 --- a/include/boost/mysql/sequence.hpp +++ b/include/boost/mysql/sequence.hpp @@ -32,10 +32,10 @@ namespace mysql { * * \par Type requirements * - * - Expressions `std::begin(range)` and `std::end(range)` should return an input iterator/sentinel - * pair that can be compared for (in)equality. - * - The expression `static_cast(fn)(* std::begin(range), ctx)` - * should be well formed, with `ctx` begin a `format_context_base&`. + * \li Expressions `std::begin(range)` and `std::end(range)` should return an input iterator/sentinel + * pair that can be compared for (in)equality. + * \li The expression `static_cast(fn)( *std::begin(range), ctx )` + * should be well formed, with `ctx` begin a `format_context_base&`. */ template #if defined(BOOST_MYSQL_HAS_CONCEPTS) @@ -66,27 +66,21 @@ struct format_sequence * * Formally, given the input range type `T` (which can be a reference with cv-qualifiers): * - * - If `T` is a C array or a reference to one (as per `std::is_array`), - * and the array elements' type is `U`, yields `std::array, N>`. - * - If `T` is a `std::reference_wrapper` object, or a reference to one, - * yields `U&`. - * - Otherwise, yields `std::remove_cvref_t`. + * \li If `T` is a C array or a reference to one (as per `std::is_array`), + * and the array elements' type is `U`, yields `std::array, N>`. + * \li If `T` is a `std::reference_wrapper` object, or a reference to one, + * yields `U&`. + * \li Otherwise, yields `std::remove_cvref_t`. * * Examples: * - * - `sequence_range_t&>` is `std::vector`. - * - `sequence_range_t>>` is `std::vector&`. - * - `sequence_range_t>>` is `const std::vector&`. - * - `sequence_range_t` is `std::array`. + * \li `sequence_range_t&>` is `std::vector`. + * \li `sequence_range_t>>` is `std::vector&`. + * \li `sequence_range_t>>` is `const std::vector&`. + * \li `sequence_range_t` is `std::array`. */ template -using sequence_range_t = -#ifdef BOOST_MYSQL_DOXYGEN - __see_below__ -#else - typename detail::sequence_range_type::type; -#endif - ; +using sequence_range_t = impl_defined::sequence_range_t; /** * \brief Creates an object that, when formatted, applies a per-element function to a range. @@ -104,14 +98,14 @@ using sequence_range_t = * * Formally: * - * - If `Range` is a (possibly cv-qualified) C array reference (as per `std::is_array`), - * and the array has `N` elements of type `U`, the output range type is - * `std::array, N>`, and the range is created as if `std::to_array` was called. - * - If `Range` is a `std::reference_wrapper< U >` object, or a reference to one, - * the output range type is `U&`. This effectively disables copying the input range. - * The resulting object will be a view type, and the caller is responsible for lifetime management. - * - Otherwise, the output range type is `std::remove_cvref_t`, and it will be - * created by forwarding the passed `range`. + * \li If `Range` is a (possibly cv-qualified) C array reference (as per `std::is_array`), + * and the array has `N` elements of type `U`, the output range type + * is `std::array, N>`, and the range is created as if `std::to_array` was called. + * \li If `Range` is a `std::reference_wrapper< U >` object, or a reference to one, + * the output range type is `U&`. This effectively disables copying the input range. + * The resulting object will be a view type, and the caller is responsible for lifetime management. + * \li Otherwise, the output range type is `std::remove_cvref_t`, and it will be + * created by forwarding the passed `range`. * * `FormatFn` is always decay-copied into the resulting object. * @@ -122,15 +116,15 @@ using sequence_range_t = * The resulting range and format function should be compatible, and any required * copy/move operations should be well defined. Formally: * - * - `std::decay_t` should be a formatter function compatible with - * the elements of the output range. See \ref format_sequence for the formal requirements. - * - If `Range` is a `std::reference_wrapper< U >`, or a reference to one, - * no further requirements are placed on `U`. - * - If `Range` is a lvalue reference to a C array, its elements should be copy-constructible - * (as per `std::to_array` requirements). - * - If `Range` is a rvalue reference to a C array, its elements should be move-constructible - * (as per `std::to_array` requirements). - * - Performing a decay-copy of `FormatFn` should be well defined. + * \li `std::decay_t` should be a formatter function compatible with + * the elements of the output range. See \ref format_sequence for the formal requirements. + * \li If `Range` is a `std::reference_wrapper< U >`, or a reference to one, + * no further requirements are placed on `U`. + * \li If `Range` is a lvalue reference to a C array, its elements should be copy-constructible + * (as per `std::to_array` requirements). + * \li If `Range` is a rvalue reference to a C array, its elements should be move-constructible + * (as per `std::to_array` requirements). + * \li Performing a decay-copy of `FormatFn` should be well defined. * * \par Exception safety * Basic guarantee. Propagates any exception thrown when constructing the output diff --git a/include/boost/mysql/statement.hpp b/include/boost/mysql/statement.hpp index 3c2b85b88..4544791a7 100644 --- a/include/boost/mysql/statement.hpp +++ b/include/boost/mysql/statement.hpp @@ -20,21 +20,9 @@ namespace boost { namespace mysql { -/** - * \brief A statement with bound parameters, represented as a `std::tuple`. - * \details - * This class satisfies `ExecutionRequest`. You can pass instances of this class to \ref connection::execute, - * \ref connection::start_execution or their async counterparts. - */ template class bound_statement_tuple; -/** - * \brief A statement with bound parameters, represented as an iterator range. - * \details - * This class satisfies `ExecutionRequest`. You can pass instances of this class to \ref connection::execute, - * \ref connection::start_execution or their async counterparts. - */ template class bound_statement_iterator_range; @@ -42,13 +30,14 @@ class bound_statement_iterator_range; * \brief Represents a server-side prepared statement. * \details * This is a lightweight class, holding a handle to a server-side prepared statement. - * \n + * * Note that statement's destructor doesn't deallocate the statement from the * server, as this implies a network transfer that may fail. * * \par Thread safety - * Distinct objects: safe. \n - * Shared objects: unsafe. \n + * Distinct objects: safe. + * + * Shared objects: unsafe. */ class statement { @@ -66,7 +55,7 @@ class statement * \brief Returns `true` if the object represents an actual server statement. * \details Calling any function other than assignment on a statement for which * this function returns `false` results in undefined behavior. - * \n + * * Returns `false` for default-constructed statements. * * \par Exception safety @@ -110,26 +99,21 @@ class statement * Creates an object that packages `*this` and the statement actual parameters `params`. * This object can be passed to \ref connection::execute, \ref connection::start_execution * and their async counterparts. - * \n + * * The parameters are copied into a `std::tuple` by using `std::make_tuple`. This function * only participates in overload resolution if `std::make_tuple(FWD(args)...)` yields a * `WritableFieldTuple`. Equivalent to `this->bind(std::make_tuple(std::forward(params)...))`. - * \n + * * This function doesn't involve communication with the server. * * \par Preconditions * `this->valid() == true` - * \n + * * \par Exception safety * Strong guarantee. Only throws if constructing any of the internal tuple elements throws. */ template -#ifdef BOOST_MYSQL_DOXYGEN - bound_statement_tuple> -#else - auto -#endif - bind(T&&... params) const->typename std::enable_if< + auto bind(T&&... params) const -> typename std::enable_if< detail::is_writable_field_tuple(params)...))>::value, bound_statement_tuple(params)...))>>::type { @@ -142,21 +126,25 @@ class statement * Creates an object that packages `*this` and the statement actual parameters `params`. * This object can be passed to \ref connection::execute, \ref connection::start_execution * or their async counterparts. - * \n + * * The `params` tuple is decay-copied into the returned object. - * \n + * * This function doesn't involve communication with the server. * * \par Preconditions * `this->valid() == true` - * \n + * * \par Exception safety * Strong guarantee. Only throws if the decay-copy of the tuple throws. */ template < - BOOST_MYSQL_WRITABLE_FIELD_TUPLE WritableFieldTuple, + BOOST_MYSQL_WRITABLE_FIELD_TUPLE WritableFieldTuple +#ifndef BOOST_MYSQL_DOXYGEN + , typename EnableIf = - typename std::enable_if::value>::type> + typename std::enable_if::value>::type +#endif + > bound_statement_tuple::type> bind(WritableFieldTuple&& params ) const; @@ -167,19 +155,23 @@ class statement * as the iterator range `[params_first, params_last)`. * This object can be passed to \ref connection::execute, \ref connection::start_execution * or their async counterparts. - * \n + * * This function doesn't involve communication with the server. * * \par Preconditions * `this->valid() == true` - * \n + * * \par Exception safety * Strong guarantee. Only throws if copy-constructing iterators throws. */ template < - BOOST_MYSQL_FIELD_VIEW_FORWARD_ITERATOR FieldViewFwdIterator, - typename EnableIf = typename std::enable_if< - detail::is_field_view_forward_iterator::value>::type> + BOOST_MYSQL_FIELD_VIEW_FORWARD_ITERATOR FieldViewFwdIterator +#ifndef BOOST_MYSQL_DOXYGEN + , + typename EnableIf = + typename std::enable_if::value>::type +#endif + > bound_statement_iterator_range bind( FieldViewFwdIterator params_first, FieldViewFwdIterator params_last @@ -195,9 +187,60 @@ class statement { } -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; -#endif +}; + +/** + * \brief A statement with bound parameters, represented as a `std::tuple`. + * \details + * This class satisfies `ExecutionRequest`. You can pass instances of this class to \ref connection::execute, + * \ref connection::start_execution or their async counterparts. + */ +template +class bound_statement_tuple +{ + friend class statement; + friend struct detail::access; + + struct impl + { + statement stmt; + WritableFieldTuple params; + } impl_; + + template + bound_statement_tuple(const statement& stmt, TupleType&& t) : impl_{stmt, std::forward(t)} + { + } +}; + +/** + * \brief A statement with bound parameters, represented as an iterator range. + * \details + * This class satisfies `ExecutionRequest`. You can pass instances of this class to \ref connection::execute, + * \ref connection::start_execution or their async counterparts. + */ +template +class bound_statement_iterator_range +{ + friend class statement; + friend struct detail::access; + + struct impl + { + statement stmt; + FieldViewFwdIterator first; + FieldViewFwdIterator last; + } impl_; + + bound_statement_iterator_range( + const statement& stmt, + FieldViewFwdIterator first, + FieldViewFwdIterator last + ) + : impl_{stmt, first, last} + { + } }; } // namespace mysql diff --git a/include/boost/mysql/static_execution_state.hpp b/include/boost/mysql/static_execution_state.hpp index 26541de00..10329e8c3 100644 --- a/include/boost/mysql/static_execution_state.hpp +++ b/include/boost/mysql/static_execution_state.hpp @@ -29,7 +29,7 @@ namespace mysql { * \ref should_start_op, \ref should_read_rows, \ref should_read_head * and \ref complete. They are mutually exclusive. * More states may be added in the future as more protocol features are implemented. - * \n + * * Note that this class doesn't store rows anyhow. Row template parameters are * used to validate their compatibility with the data that will be returned by the server. * @@ -38,7 +38,8 @@ namespace mysql { * All the passed types must fulfill the `StaticRow` concept. * * \par Thread safety - * Distinct objects: safe. \n + * Distinct objects: safe. + * * Shared objects: unsafe. */ template @@ -160,6 +161,7 @@ class static_execution_state /** * \brief Returns the number of rows affected by the SQL statement associated to this resultset. + * \details * Note that this is NOT the number of matched rows. If a row * is matched but not affected, it won't be accounted for here. * @@ -194,9 +196,9 @@ class static_execution_state /** * \brief Returns additional text information about this resultset. * \details - * The format of this information is documented by MySQL here. - * \n + * The format of this information is documented by MySQL + * here. + * * The returned string always uses ASCII encoding, regardless of the connection's character set. * * \par Exception safety @@ -227,9 +229,7 @@ class static_execution_state static_assert(sizeof...(StaticRow) > 0, "static_execution_state requires one row type, at least"); -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; -#endif }; } // namespace mysql diff --git a/include/boost/mysql/static_results.hpp b/include/boost/mysql/static_results.hpp index 69f8bc1af..165ca8125 100644 --- a/include/boost/mysql/static_results.hpp +++ b/include/boost/mysql/static_results.hpp @@ -35,8 +35,9 @@ namespace mysql { * All the passed types must fulfill the `StaticRow` concept. * * \par Thread safety - * Distinct objects: safe. \n - * Shared objects: unsafe. \n + * Distinct objects: safe. + * + * Shared objects: unsafe. */ template class static_results @@ -131,12 +132,8 @@ class static_results * Constant. */ template -#ifdef BOOST_MYSQL_DOXYGEN - boost::span -#else - detail::rows_span_t -#endif - rows() const noexcept { + span...>>> rows() const noexcept + { static_assert(I < sizeof...(StaticRow), "Index I out of range"); BOOST_ASSERT(has_value()); return impl_.template get_rows(); @@ -254,9 +251,9 @@ class static_results /** * \brief Returns additional text information about the execution of the SQL statement. * \details - * The format of this information is documented by MySQL here. - * \n + * The format of this information is documented by MySQL + * here. + * * The returned string always uses ASCII encoding, regardless of the connection's character set. * * \tparam I Resultset index. For operations returning more than one resultset, you can explicitly @@ -287,9 +284,7 @@ class static_results private: detail::static_results_impl impl_; -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; -#endif }; } // namespace mysql diff --git a/include/boost/mysql/tcp.hpp b/include/boost/mysql/tcp.hpp index 008a75b5e..ee04962ed 100644 --- a/include/boost/mysql/tcp.hpp +++ b/include/boost/mysql/tcp.hpp @@ -23,7 +23,7 @@ namespace mysql { * \ref connection and its helper typedefs, as it's simpler to use * and provides the same level of performance. */ -using tcp_connection = connection; +using tcp_connection = connection; } // namespace mysql } // namespace boost diff --git a/include/boost/mysql/tcp_ssl.hpp b/include/boost/mysql/tcp_ssl.hpp index 5c3bfed21..9d179990a 100644 --- a/include/boost/mysql/tcp_ssl.hpp +++ b/include/boost/mysql/tcp_ssl.hpp @@ -24,7 +24,7 @@ namespace mysql { * \ref connection and its helper typedefs, as it's simpler to use * and provides the same level of performance. */ -using tcp_ssl_connection = connection>; +using tcp_ssl_connection = connection>; } // namespace mysql } // namespace boost diff --git a/include/boost/mysql/underlying_row.hpp b/include/boost/mysql/underlying_row.hpp index f2d376bf0..cde03d55f 100644 --- a/include/boost/mysql/underlying_row.hpp +++ b/include/boost/mysql/underlying_row.hpp @@ -16,12 +16,12 @@ namespace boost { namespace mysql { /** - * \brief Type trait to retrieve the underlying row type. + * \brief Type trait to retrieve the underlying row type (TODO: see this). * \details * Given an input type `T` satisfying the `StaticRow` concept, * this trait is an alias for its underlying row type. It is defined as follows: - * \n - * \li If `T` is a marker type, like \ref pfr_by_name "pfr_by_name< U >", `underlying_row_t` + * + * \li If `T` is a marker type, like \ref pfr_by_name, `underlying_row_t` * is an alias for the marker's inner type `U`. * \li If `T` is not a marker type (e.g. it's a Boost.Describe struct or a `std::tuple`), * `underlying_row_t` is an alias for `T`. @@ -29,13 +29,7 @@ namespace mysql { * For instance, \ref static_results::rows uses this trait to determine its return type. */ template -using underlying_row_t = -#ifdef BOOST_MYSQL_DOXYGEN - __see_below__ -#else - detail::underlying_row_t -#endif - ; +using underlying_row_t = detail::underlying_row_t; } // namespace mysql } // namespace boost diff --git a/include/boost/mysql/unix.hpp b/include/boost/mysql/unix.hpp index e6d36aa05..ab545ef4f 100644 --- a/include/boost/mysql/unix.hpp +++ b/include/boost/mysql/unix.hpp @@ -15,7 +15,7 @@ namespace boost { namespace mysql { -#if defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) || defined(BOOST_MYSQL_DOXYGEN) +#ifdef BOOST_ASIO_HAS_LOCAL_SOCKETS /** * \brief (Legacy) A connection to MySQL over a UNIX domain socket. @@ -25,7 +25,7 @@ namespace mysql { * \ref connection and its helper typedefs, as it's simpler to use * and provides the same level of performance. */ -using unix_connection = connection; +using unix_connection = connection; #endif diff --git a/include/boost/mysql/unix_ssl.hpp b/include/boost/mysql/unix_ssl.hpp index 33f5335a8..6b083a8cf 100644 --- a/include/boost/mysql/unix_ssl.hpp +++ b/include/boost/mysql/unix_ssl.hpp @@ -16,7 +16,7 @@ namespace boost { namespace mysql { -#if defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) || defined(BOOST_MYSQL_DOXYGEN) +#ifdef BOOST_ASIO_HAS_LOCAL_SOCKETS /** * \brief (Legacy) A connection to MySQL over a UNIX domain socket over TLS. @@ -25,7 +25,7 @@ namespace mysql { * New code should not use this class. When using UNIX sockets, we recommend * using plaintext connections. */ -using unix_ssl_connection = connection>; +using unix_ssl_connection = connection>; #endif diff --git a/include/boost/mysql/with_diagnostics.hpp b/include/boost/mysql/with_diagnostics.hpp index e7ef778a4..93f895d4d 100644 --- a/include/boost/mysql/with_diagnostics.hpp +++ b/include/boost/mysql/with_diagnostics.hpp @@ -40,19 +40,17 @@ namespace mysql { * it does not modify the signature, and calls the underlying token's initiation directly. * This has the following implications: * - * - `asio::as_tuple(with_diagnostics(X))` is equivalent to `asio::as_tuple(X)`. - * - `asio::redirect_error(with_diagnostics(X))` is equivalent to `asio::redirect_error(X)`. - * - Tokens like `asio::as_tuple` and `asio::redirect_error` can be used as partial tokens - * when `with_diagnostics` is the default completion token, as is the case for \ref any_connection. + * \li `asio::as_tuple(with_diagnostics(X))` is equivalent to `asio::as_tuple(X)`. + * \li `asio::redirect_error(with_diagnostics(X))` is equivalent to `asio::redirect_error(X)`. + * \li Tokens like `asio::as_tuple` and `asio::redirect_error` can be used as partial tokens + * when `with_diagnostics` is the default completion token, as is the case for \ref any_connection. */ template class with_diagnostics_t { CompletionToken impl_; -#ifndef BOOST_MYSQL_DOXYGEN friend struct detail::access; -#endif public: /** diff --git a/include/boost/mysql/with_params.hpp b/include/boost/mysql/with_params.hpp index d0606e6ac..343af5979 100644 --- a/include/boost/mysql/with_params.hpp +++ b/include/boost/mysql/with_params.hpp @@ -21,12 +21,14 @@ namespace mysql { /** * \brief Type trait that applies the transformation performed by `std::make_tuple` to a single element. * \details - * For example: \n - * - `make_tuple_element_t` yields `int` \n - * - `make_tuple_element_t` yields `int` \n - * - `make_tuple_element_t>` yields `int&` \n - * \n - * Consult the `std::make_tuple` docs + * For example: + * + * \li `make_tuple_element_t` yields `int` + * \li `make_tuple_element_t` yields `int` + * \li `make_tuple_element_t>` yields `int&` + * + * Consult the + * std::make_tuple docs * for more info. */ template @@ -40,38 +42,40 @@ using make_tuple_element_t = typename std::tuple_element<0, decltype(std::make_t * expand such placeholders. Satisfies `ExecutionRequest` and can thus be passed * to \ref any_connection::execute, \ref any_connection::start_execution and its * async counterparts. - * \n + * * When executed, client-side SQL formatting is invoked * to expand the provided query with the supplied parameters. The resulting query is then sent to * the server for execution. Formally, given a `conn` variable of \ref any_connection type, * the query is generated as if the following was called: - * ``` + * + * \code * format_sql( * this->query, * conn.format_opts().value(), * std::get(this->args)... // for i in [0, sizeof...(Formattable)) * ); - * ``` - * \n + * \endcode + * * Objects of this type are usually created using \ref with_params, which * creates `args` by calling `std::make_tuple`. * * \par Object lifetimes * The format string `query` is stored as a view, as a compile-time string should be used in most cases. * When using \ref with_params, `args` will usually contain copies of the passed parameters - * (as per `std::make_tuple`), + * (as per std::make_tuple), * which is safe even when using async functions with deferred completion tokens. * You may disable such copies using `std::ref`, as you would when using `std::make_tuple`. * * \par Errors * When passed to \ref any_connection::execute, \ref any_connection::start_execution or * its async counterparts, in addition to the usual network and server-generated errors, - * `with_params_t` may generate the following errors: \n - * - Any errors generated by \ref format_sql. This includes errors due to invalid format - * strings and unformattable arguments (e.g. invalid UTF-8). - * - \ref client_errc::unknown_character_set if the connection does not know the - * character set it's using when the query is executed (i.e. \ref any_connection::current_character_set - * would return an error. + * `with_params_t` may generate the following errors: + * + * \li Any errors generated by \ref format_sql. This includes errors due to invalid format + * strings and unformattable arguments (e.g. invalid UTF-8). + * \li \ref client_errc::unknown_character_set if the connection does not know the + * character set it's using when the query is executed (i.e. \ref any_connection::current_character_set + * would return an error. */ template struct with_params_t @@ -87,23 +91,23 @@ struct with_params_t * \brief Creates a query with parameters (client-side SQL formatting) that can be executed. * \details * Creates a \ref with_params_t object by packing the supplied arguments into a tuple, - * calling `std::make_tuple`. + * calling std::make_tuple. * As per `std::make_tuple`, parameters will be decay-copied into the resulting object. * This behavior can be disabled by passing `std::reference_wrapper` objects, which are * transformed into references. - * \n + * * This function does not inspect the supplied query string and arguments. * Errors like missing format arguments are detected when the resulting object is executed. * This function does not involve communication with the server. - * \n + * * The passed `args` must either satisfy `Formattable`, or be `std::reference_wrapper` * with `T` satisfying `Formattable`. - * \n + * * See \ref with_params_t for details on how the execution request works. - * \n + * * \par Exception safety * Strong guarantee. Any exception thrown when copying `args` will be propagated. - * \n + * */ template auto with_params(constant_string_view query, FormattableOrRefWrapper&&... args) diff --git a/tools/scripts/server_errors.py b/tools/scripts/server_errors.py index 1baabc434..a6cb02bd8 100755 --- a/tools/scripts/server_errors.py +++ b/tools/scripts/server_errors.py @@ -49,7 +49,7 @@ class ErrorCodes(NamedTuple): COMMON_SERVER_ERRC_ENTRY = ''' /** - * \\brief Common server error. Error number: {number}, symbol: + * \\brief Error number: {number}, symbol: * {symbol_upper}. */ {symbol_lower} = {number}, @@ -92,7 +92,6 @@ class ErrorCodes(NamedTuple): }} // namespace mysql -#ifndef BOOST_MYSQL_DOXYGEN namespace system {{ template <> @@ -102,7 +101,6 @@ class ErrorCodes(NamedTuple): }}; }} // namespace system -#endif }} // namespace boost