├── .gitattributes ├── .gitignore ├── bin └── console ├── patterns ├── client_5.6.php ├── client_5.7.php ├── client_8.0.php ├── client_5.5.php ├── server_5.6.php └── server_5.7.php ├── ecs.yaml ├── composer.json ├── phpunit.xml.dist ├── src ├── ParameterizedMessage.php ├── PatternMatcher.php └── Generator │ └── ExtractListCommand.php ├── readme.md ├── LICENSE └── tests └── PatternMatcherTest.php /.gitattributes: -------------------------------------------------------------------------------- 1 | src/Generator/data_source export-ignore -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | vendor 3 | composer.lock 4 | .phpcs-cache 5 | -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | add(new ExtractListCommand()); 17 | $app->run(); 18 | 19 | -------------------------------------------------------------------------------- /patterns/client_5.6.php: -------------------------------------------------------------------------------- 1 | 2060, 8 | "symbol" => "CR_DUPLICATE_CONNECTION_ATTR", 9 | "template" => "There is an attribute with the same name already", 10 | ], 11 | [ 12 | "code" => 2061, 13 | "symbol" => "CR_AUTH_PLUGIN_ERR", 14 | "template" => "Authentication plugin '{#p1}' reported error: {#p2}", 15 | ], 16 | ]; 17 | 18 | return array_merge($previous, $new); 19 | -------------------------------------------------------------------------------- /ecs.yaml: -------------------------------------------------------------------------------- 1 | imports: 2 | - { resource: 'vendor/symplify/easy-coding-standard/config/set/clean-code.yaml' } 3 | - { resource: 'vendor/symplify/easy-coding-standard/config/set/php71.yaml' } 4 | - { resource: 'vendor/symplify/easy-coding-standard/config/set/common.yaml' } 5 | - { resource: 'vendor/symplify/easy-coding-standard/config/set/psr12.yaml' } 6 | 7 | parameters: 8 | skip: 9 | PhpCsFixer\Fixer\Operator\NotOperatorWithSuccessorSpaceFixer: ~ 10 | PhpCsFixer\Fixer\FunctionNotation\VoidReturnFixer: ~ 11 | PhpCsFixer\Fixer\ClassNotation\OrderedClassElementsFixer: ~ 12 | PhpCsFixer\Fixer\ArrayNotation\TrailingCommaInMultilineArrayFixer: ~ 13 | -------------------------------------------------------------------------------- /patterns/client_5.7.php: -------------------------------------------------------------------------------- 1 | 2062, 8 | "symbol" => "CR_INSECURE_API_ERR", 9 | "template" => "Insecure API function call: '{#p1}' Use instead: '{#p2}'", 10 | ], 11 | [ 12 | "code" => 2049, 13 | "symbol" => "CR_UNUSED_1", 14 | "template" => "Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)", 15 | ], 16 | [ 17 | "code" => 2056, 18 | "symbol" => "CR_STMT_CLOSED", 19 | "template" => "Statement closed indirectly because of a preceding {#p1}() call", 20 | ] 21 | ]; 22 | 23 | return array_merge($previous, $new); 24 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "solodkiy/mysql-error-parser", 3 | "description": "Parsing MySQL error messages to structured format", 4 | "type": "library", 5 | "license": "MIT", 6 | "authors": [ 7 | { 8 | "name": "Alexey Solodkiy", 9 | "email": "alexey@solodkiy.by" 10 | } 11 | ], 12 | "require": { 13 | "php": "~7.1" 14 | }, 15 | "require-dev": { 16 | "ext-dom": "*", 17 | "symfony/console": "^4.3", 18 | "aza/phpgen": "^1.1", 19 | "phpunit/phpunit" : "^7.5", 20 | "symplify/easy-coding-standard": "^6.0" 21 | }, 22 | "autoload": { 23 | "psr-4": {"Solodkiy\\MysqlErrorsParser\\": "src/"} 24 | }, 25 | "archive": { 26 | "exclude": ["/src/Generator/data_source"] 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | tests 17 | 18 | 19 | 20 | 21 | 22 | src 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/ParameterizedMessage.php: -------------------------------------------------------------------------------- 1 | template = $template; 27 | $this->params = $params; 28 | } 29 | 30 | /** 31 | * @return string 32 | */ 33 | public function getTemplate(): string 34 | { 35 | return $this->template; 36 | } 37 | 38 | /** 39 | * @return array 40 | */ 41 | public function getParams(): array 42 | { 43 | return $this->params; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /patterns/client_8.0.php: -------------------------------------------------------------------------------- 1 | 2060, 8 | "symbol" => "CR_DUPLICATE_CONNECTION_ATTR", 9 | "template" => "There is an attribute with the same name already", 10 | ], 11 | [ 12 | "code" => 2063, 13 | "symbol" => "CR_FILE_NAME_TOO_LONG", 14 | "template" => "File name is too long", 15 | ], 16 | [ 17 | "code" => 2064, 18 | "symbol" => "CR_SSL_FIPS_MODE_ERR", 19 | "template" => "Set FIPS mode ON/STRICT failed", 20 | ], 21 | [ 22 | "code" => 2065, 23 | "symbol" => "CR_COMPRESSION_NOT_SUPPORTED", 24 | "template" => "Compression protocol not supported with asynchronous protocol", 25 | ], 26 | [ 27 | "code" => 2066, 28 | "symbol" => "CR_COMPRESSION_WRONGLY_CONFIGURED", 29 | "template" => "Connection failed due to wrongly configured compression algorithm", 30 | ], 31 | ]; 32 | 33 | return array_merge($previous, $new); 34 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | MySQL error parser 2 | ================== 3 | 4 | This lib provides regex patterns for all mysql server errors from version 5.5 to 8.0. 5 | It can be used for extracting detailed information from your mysql errors and future analisys. 6 | 7 | **Usage example** 8 | ```php 9 | $connect = new \mysqli('localhost', 'root', ''); 10 | $result = $connect->query('select * from db.unknown_table'); 11 | if (!$result) { 12 | $parser = new \Solodkiy\MysqlErrorsParser\PatternMatcher(); 13 | $structuredError = $parser->matchError($connect->errno, $connect->error); 14 | var_dump( 15 | $connect->error, 16 | $structuredError->getTemplate(), 17 | $structuredError->getParams() 18 | ); 19 | } 20 | ``` 21 | 22 | **Result** 23 | ``` 24 | string(38) "Table 'db.unknown_table' doesn't exist" 25 | string(34) "Table '{db}.{table}' doesn't exist" 26 | array(2) { 27 | 'db' => string(2) "db" 28 | 'table' => string(13) "unknown_table" 29 | } 30 | ``` 31 | 32 | Install 33 | ------- 34 | ``` 35 | composer require solodkiy/mysql-error-parser 36 | ``` 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Alexey Solodkiy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /src/PatternMatcher.php: -------------------------------------------------------------------------------- 1 | patterns array] 16 | * @var array 17 | */ 18 | private $map; 19 | 20 | /** 21 | * @var bool 22 | */ 23 | private $useSmartParams; 24 | 25 | public function __construct(bool $useSmartParams = false) 26 | { 27 | $this->map = $this->indexList($this->loadData()); 28 | $this->useSmartParams = $useSmartParams; 29 | } 30 | 31 | private function loadData(): array 32 | { 33 | /** @noinspection PhpIncludeInspection */ 34 | $server = require self::SERVER_PATTERNS_LIST_FILE; 35 | /** @noinspection PhpIncludeInspection */ 36 | $client = require self::CLIENT_PATTERNS_LIST_FILE; 37 | 38 | return array_merge($server, $client); 39 | } 40 | 41 | private function indexList(array $list) 42 | { 43 | $result = []; 44 | foreach ($list as $errorPattern) { 45 | $code = $errorPattern['code']; 46 | 47 | if (!array_key_exists($code, $result)) { 48 | $result[$code] = []; 49 | } 50 | $result[$code][] = $errorPattern; 51 | } 52 | return $result; 53 | } 54 | 55 | public function matchError(int $code, string $message): ?ParameterizedMessage 56 | { 57 | if (!array_key_exists($code, $this->map)) { 58 | return null; 59 | } 60 | foreach ($this->map[$code] as &$errorPattern) { 61 | if (!array_key_exists('regex', $errorPattern)) { 62 | $errorPattern['regex'] = $this->compileRegex($errorPattern['template']); 63 | } 64 | $regex = $errorPattern['regex']; 65 | 66 | $isMatched = preg_match($regex, $message, $m); 67 | if ($isMatched) { 68 | $params = $this->extractNamedParams($m); 69 | $template = $errorPattern['template']; 70 | if (!$this->useSmartParams) { 71 | $template = $this->cleanStaticParamsFlag($template); 72 | } 73 | return new ParameterizedMessage($template, $params); 74 | } 75 | } 76 | return null; 77 | } 78 | 79 | private function extractNamedParams(array $matches): array 80 | { 81 | $params = []; 82 | foreach ($matches as $key => $value) { 83 | if (!is_int($key)) { 84 | $params[$key] = $value; 85 | } 86 | } 87 | return $params; 88 | } 89 | 90 | private function compileRegex(string $template): string 91 | { 92 | $parts = preg_split('~({#?[a-z0-9_-]+\})~', $template, -1, PREG_SPLIT_DELIM_CAPTURE); 93 | $result = []; 94 | foreach ($parts as $part) { 95 | if ($part && $part[0] === '{') { 96 | if (preg_match(self::PARAM_REGEX, $part, $m)) { 97 | $paramName = $m[1]; 98 | if (is_numeric($paramName)) { 99 | $paramName = 'p' . $paramName; 100 | } 101 | $result[] = '(?<' . $paramName . '>.*)'; 102 | } else { 103 | $result[] = preg_quote($part, '/'); 104 | } 105 | } else { 106 | $result[] = preg_quote($part, '/'); 107 | } 108 | } 109 | return '~^' . implode('', $result) . '$~'; 110 | } 111 | 112 | private function cleanStaticParamsFlag(string $template): string 113 | { 114 | return str_replace('{#', '{', $template); 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /src/Generator/ExtractListCommand.php: -------------------------------------------------------------------------------- 1 | setName('extract-list') 31 | ->addArgument('file', InputArgument::REQUIRED) 32 | ->addArgument('compare', InputArgument::OPTIONAL) 33 | ->addOption('client', 'c', InputOption::VALUE_NONE); 34 | } 35 | 36 | protected function execute(InputInterface $input, OutputInterface $output) 37 | { 38 | $filePath = $input->getArgument('file'); 39 | if (!is_file($filePath)) { 40 | throw new RuntimeException('Source file ' . $filePath . ' not found'); 41 | } 42 | $comparePath = $input->getArgument('compare'); 43 | if ($comparePath && !is_file($comparePath)) { 44 | throw new RuntimeException('Compare file ' . $comparePath. ' not found'); 45 | } 46 | 47 | $content = file_get_contents($filePath); 48 | $dom = new DOMDocument(); 49 | $dom->loadHTML($content); 50 | $xpath = new DOMXpath($dom); 51 | $nodes = $xpath->query('/html/body/div/ul/li'); 52 | $i = 0; 53 | $errors = []; 54 | 55 | if ($comparePath) { 56 | /** @noinspection PhpIncludeInspection */ 57 | $compare = require $comparePath; 58 | } else { 59 | $compare = []; 60 | } 61 | 62 | foreach ($nodes as $liNode) { 63 | $error = $this->extractError($liNode, $i, $input->getOption('client')); 64 | if (!$error) { 65 | continue; 66 | } 67 | 68 | $cleanTemplate = $this->cleanTemplate($error['template']); 69 | foreach ($compare as $compareItem) { 70 | if ($this->cleanTemplate($compareItem['template']) === $cleanTemplate) { 71 | continue 2; 72 | } 73 | } 74 | 75 | $errors[] = $error; 76 | $i++; 77 | } 78 | 79 | $this->generateFile($errors); 80 | } 81 | 82 | private function cleanTemplate(string $template) 83 | { 84 | return preg_replace('~\{.+\}~', '%s', $template); 85 | } 86 | 87 | private function generateFile(array $errors) 88 | { 89 | $phpGen = new PhpGen(); 90 | echo 'getCode($errors) . "\n"; 91 | } 92 | 93 | private function extractError(DOMElement $liNode, int $nodeNumber, bool $clientError) : ?array 94 | { 95 | $codes = iterator_to_array($liNode->getElementsByTagName('code')); 96 | $codes = array_map(function (DOMElement $element): string { 97 | return $element->nodeValue; 98 | }, $codes); 99 | 100 | if ($clientError) { 101 | if (count($codes) < 2) { 102 | throw new RuntimeException('Failed to parse node #' . $nodeNumber); 103 | } 104 | [$errorNumber, $symbol] = $codes; 105 | $sqlState = null; 106 | } else { 107 | if (count($codes) < 3) { 108 | throw new RuntimeException('Failed to parse node #' . $nodeNumber); 109 | } 110 | [$errorNumber, $symbol, $sqlState] = $codes; 111 | } 112 | 113 | $ps = iterator_to_array($liNode->getElementsByTagName('p')); 114 | $messageBlock = $ps[1] ?? new DOMElement('empty', '', ''); 115 | $template = $this->extractMessageFromBlock($messageBlock); 116 | if (is_null($template)) { 117 | throw new RuntimeException('Failed to extract message template. Node #' . $nodeNumber); 118 | } 119 | if (!$template) { 120 | return null; 121 | } 122 | 123 | if (!is_numeric($errorNumber)) { 124 | return null; 125 | } 126 | 127 | $result = [ 128 | 'code' => intval($errorNumber), 129 | 'symbol' => $symbol, 130 | 'sql_state' => $sqlState, 131 | 'template' => $this->convertPercentTemplateToBracketTemplate($template), 132 | ]; 133 | if (is_null($sqlState)) { 134 | unset($result['sql_state']); 135 | } 136 | 137 | return $result; 138 | } 139 | 140 | private function convertPercentTemplateToBracketTemplate(string $percentTemplate) 141 | { 142 | $paramNumber = 1; 143 | return preg_replace_callback( 144 | '/%([sdufc]|ll?u|ll?d|-?\.\*s)/', // ["%s", "%d", "%lu", "%ld", "lld", "%u", "%llu", "%-.*s", "%.*s", "%f"] 145 | function (array $match) use (&$paramNumber) { 146 | $pattern = $match[1]; 147 | $result = in_array($pattern, ['s', '-.*s', '.*s'], true) ? '{#p' . $paramNumber . '}' : '{p' . $paramNumber . '}'; 148 | $paramNumber++; 149 | return $result; 150 | }, 151 | $percentTemplate 152 | ); 153 | } 154 | 155 | private function extractMessageFromBlock(DOMElement $messageBlock): ?string 156 | { 157 | $nodeValue = trim($messageBlock->nodeValue); 158 | if (strpos($nodeValue, 'Message: ') === 0) { 159 | $message = substr($nodeValue, 9); 160 | return preg_replace('~\n\s+~', ' ', $message); 161 | } 162 | 163 | if ($nodeValue === 'Message:') { 164 | return ''; 165 | } 166 | 167 | return null; 168 | } 169 | } 170 | -------------------------------------------------------------------------------- /tests/PatternMatcherTest.php: -------------------------------------------------------------------------------- 1 | matchError($code, $message); 21 | 22 | $this->assertEquals($expectedResult, $result); 23 | } 24 | 25 | public function matchErrorProvider() 26 | { 27 | return [ 28 | 'static_message' => [ 29 | 1213, 30 | 'Deadlock found when trying to get lock; try restarting transaction', 31 | new ParameterizedMessage( 32 | 'Deadlock found when trying to get lock; try restarting transaction', 33 | [] 34 | ), 35 | ], 36 | '1062' => [ 37 | 1062, 38 | "Duplicate entry '13340' for key 'PRIMARY'", 39 | new ParameterizedMessage( 40 | "Duplicate entry '{entry}' for key '{#key}'", 41 | [ 42 | 'entry' => '13340', 43 | 'key' => 'PRIMARY', 44 | ] 45 | ) 46 | ], 47 | '1264' => [ 48 | 1264, 49 | "Out of range value for column 'apple_review_id' at row 1", 50 | new ParameterizedMessage( 51 | "Out of range value for column '{#column}' at row {row}", 52 | [ 53 | 'column' => 'apple_review_id', 54 | 'row' => '1', 55 | ] 56 | ) 57 | ], 58 | '1101_1' => [ 59 | 1101, 60 | "BLOB/TEXT column 'text' can't have a default value", 61 | new ParameterizedMessage( 62 | "BLOB/TEXT column '{#p1}' can't have a default value", 63 | [ 64 | 'p1' => 'text' 65 | ] 66 | ) 67 | ], 68 | '1101_2' => [ 69 | 1101, 70 | "BLOB, TEXT, GEOMETRY or JSON column 'text' can't have a default value", 71 | new ParameterizedMessage( 72 | "BLOB, TEXT, GEOMETRY or JSON column '{#p1}' can't have a default value", 73 | [ 74 | 'p1' => 'text' 75 | ] 76 | ) 77 | ], 78 | '1292' => [ 79 | 1292, 80 | "Truncated incorrect DOUBLE value: '22 AND bac.is_active=1'", 81 | new ParameterizedMessage( 82 | "Truncated incorrect {#type} value: '{value}'", 83 | [ 84 | 'type' => 'DOUBLE', 85 | 'value' => '22 AND bac.is_active=1' 86 | ] 87 | ) 88 | ], 89 | '1265' => [ 90 | 1265, 91 | "Data truncated for column 'status' at row 1", 92 | new ParameterizedMessage( 93 | "Data truncated for column '{#column}' at row {row}", 94 | [ 95 | 'column' => 'status', 96 | 'row' => '1', 97 | ] 98 | ) 99 | ], 100 | '1146' => [ 101 | 1146, 102 | "Table 'Spotlight.RemoveBets_201906' doesn't exist", 103 | new ParameterizedMessage( 104 | "Table '{#db}.{#table}' doesn't exist", 105 | [ 106 | 'db' => 'Spotlight', 107 | 'table' => 'RemoveBets_201906', 108 | ] 109 | ) 110 | ], 111 | '2002' => [ 112 | 2002, 113 | "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (38)", 114 | new ParameterizedMessage( 115 | "Can't connect to local MySQL server through socket '{#p1}' ({p2})", 116 | [ 117 | 'p1' => '/var/lib/mysql/mysql.sock', 118 | 'p2' => '38', 119 | ] 120 | ) 121 | ], 122 | '3170' => [ 123 | 3170, 124 | "Memory capacity of 8388608 bytes for 'range_optimizer_max_mem_size' exceeded. Range optimization was not done for this query.", 125 | new ParameterizedMessage( 126 | "Memory capacity of {bytes} bytes for '{#param}' exceeded. {#message}", 127 | [ 128 | 'bytes' => '8388608', 129 | 'param' => 'range_optimizer_max_mem_size', 130 | 'message' => 'Range optimization was not done for this query.' 131 | ] 132 | ) 133 | ], 134 | '3719' => [ 135 | 3719, 136 | "'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.", 137 | new ParameterizedMessage( 138 | "'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.", 139 | [] 140 | ) 141 | ], 142 | ]; 143 | } 144 | 145 | public function testMatchErrorWithoutSmartParams() 146 | { 147 | $matcher = new PatternMatcher(false); 148 | $result = $matcher->matchError( 149 | 1146, 150 | "Table 'Spotlight.RemoveBets_201906' doesn't exist", 151 | ); 152 | $expectedTemplate = "Table '{db}.{table}' doesn't exist"; 153 | $this->assertSame($expectedTemplate, $result->getTemplate()); 154 | } 155 | } 156 | -------------------------------------------------------------------------------- /patterns/client_5.5.php: -------------------------------------------------------------------------------- 1 | 2000, 6 | "symbol" => "CR_UNKNOWN_ERROR", 7 | "template" => "Unknown MySQL error", 8 | ], 9 | [ 10 | "code" => 2001, 11 | "symbol" => "CR_SOCKET_CREATE_ERROR", 12 | "template" => "Can't create UNIX socket ({p1})", 13 | ], 14 | [ 15 | "code" => 2002, 16 | "symbol" => "CR_CONNECTION_ERROR", 17 | "template" => "Can't connect to local MySQL server through socket '{#p1}' ({p2})", 18 | ], 19 | [ 20 | "code" => 2003, 21 | "symbol" => "CR_CONN_HOST_ERROR", 22 | "template" => "Can't connect to MySQL server on '{#p1}' ({p2})", 23 | ], 24 | [ 25 | "code" => 2004, 26 | "symbol" => "CR_IPSOCK_ERROR", 27 | "template" => "Can't create TCP/IP socket ({p1})", 28 | ], 29 | [ 30 | "code" => 2005, 31 | "symbol" => "CR_UNKNOWN_HOST", 32 | "template" => "Unknown MySQL server host '{#p1}' ({p2})", 33 | ], 34 | [ 35 | "code" => 2006, 36 | "symbol" => "CR_SERVER_GONE_ERROR", 37 | "template" => "MySQL server has gone away", 38 | ], 39 | [ 40 | "code" => 2007, 41 | "symbol" => "CR_VERSION_ERROR", 42 | "template" => "Protocol mismatch; server version = {p1}, client version = {p2}", 43 | ], 44 | [ 45 | "code" => 2008, 46 | "symbol" => "CR_OUT_OF_MEMORY", 47 | "template" => "MySQL client ran out of memory", 48 | ], 49 | [ 50 | "code" => 2009, 51 | "symbol" => "CR_WRONG_HOST_INFO", 52 | "template" => "Wrong host info", 53 | ], 54 | [ 55 | "code" => 2010, 56 | "symbol" => "CR_LOCALHOST_CONNECTION", 57 | "template" => "Localhost via UNIX socket", 58 | ], 59 | [ 60 | "code" => 2011, 61 | "symbol" => "CR_TCP_CONNECTION", 62 | "template" => "{#p1} via TCP/IP", 63 | ], 64 | [ 65 | "code" => 2012, 66 | "symbol" => "CR_SERVER_HANDSHAKE_ERR", 67 | "template" => "Error in server handshake", 68 | ], 69 | [ 70 | "code" => 2013, 71 | "symbol" => "CR_SERVER_LOST", 72 | "template" => "Lost connection to MySQL server during query", 73 | ], 74 | [ 75 | "code" => 2014, 76 | "symbol" => "CR_COMMANDS_OUT_OF_SYNC", 77 | "template" => "Commands out of sync; you can't run this command now", 78 | ], 79 | [ 80 | "code" => 2015, 81 | "symbol" => "CR_NAMEDPIPE_CONNECTION", 82 | "template" => "Named pipe: {#p1}", 83 | ], 84 | [ 85 | "code" => 2016, 86 | "symbol" => "CR_NAMEDPIPEWAIT_ERROR", 87 | "template" => "Can't wait for named pipe to host: {#p1} pipe: {#p2} ({p3})", 88 | ], 89 | [ 90 | "code" => 2017, 91 | "symbol" => "CR_NAMEDPIPEOPEN_ERROR", 92 | "template" => "Can't open named pipe to host: {#p1} pipe: {#p2} ({p3})", 93 | ], 94 | [ 95 | "code" => 2018, 96 | "symbol" => "CR_NAMEDPIPESETSTATE_ERROR", 97 | "template" => "Can't set state of named pipe to host: {#p1} pipe: {#p2} ({p3})", 98 | ], 99 | [ 100 | "code" => 2019, 101 | "symbol" => "CR_CANT_READ_CHARSET", 102 | "template" => "Can't initialize character set {#p1} (path: {#p2})", 103 | ], 104 | [ 105 | "code" => 2020, 106 | "symbol" => "CR_NET_PACKET_TOO_LARGE", 107 | "template" => "Got packet bigger than 'max_allowed_packet' bytes", 108 | ], 109 | [ 110 | "code" => 2021, 111 | "symbol" => "CR_EMBEDDED_CONNECTION", 112 | "template" => "Embedded server", 113 | ], 114 | [ 115 | "code" => 2022, 116 | "symbol" => "CR_PROBE_SLAVE_STATUS", 117 | "template" => "Error on SHOW SLAVE STATUS:", 118 | ], 119 | [ 120 | "code" => 2023, 121 | "symbol" => "CR_PROBE_SLAVE_HOSTS", 122 | "template" => "Error on SHOW SLAVE HOSTS:", 123 | ], 124 | [ 125 | "code" => 2024, 126 | "symbol" => "CR_PROBE_SLAVE_CONNECT", 127 | "template" => "Error connecting to slave:", 128 | ], 129 | [ 130 | "code" => 2025, 131 | "symbol" => "CR_PROBE_MASTER_CONNECT", 132 | "template" => "Error connecting to master:", 133 | ], 134 | [ 135 | "code" => 2026, 136 | "symbol" => "CR_SSL_CONNECTION_ERROR", 137 | "template" => "SSL connection error: {#p1}", 138 | ], 139 | [ 140 | "code" => 2027, 141 | "symbol" => "CR_MALFORMED_PACKET", 142 | "template" => "Malformed packet", 143 | ], 144 | [ 145 | "code" => 2028, 146 | "symbol" => "CR_WRONG_LICENSE", 147 | "template" => "This client library is licensed only for use with MySQL servers having '{#p1}' license", 148 | ], 149 | [ 150 | "code" => 2029, 151 | "symbol" => "CR_NULL_POINTER", 152 | "template" => "Invalid use of null pointer", 153 | ], 154 | [ 155 | "code" => 2030, 156 | "symbol" => "CR_NO_PREPARE_STMT", 157 | "template" => "Statement not prepared", 158 | ], 159 | [ 160 | "code" => 2031, 161 | "symbol" => "CR_PARAMS_NOT_BOUND", 162 | "template" => "No data supplied for parameters in prepared statement", 163 | ], 164 | [ 165 | "code" => 2032, 166 | "symbol" => "CR_DATA_TRUNCATED", 167 | "template" => "Data truncated", 168 | ], 169 | [ 170 | "code" => 2033, 171 | "symbol" => "CR_NO_PARAMETERS_EXISTS", 172 | "template" => "No parameters exist in the statement", 173 | ], 174 | [ 175 | "code" => 2034, 176 | "symbol" => "CR_INVALID_PARAMETER_NO", 177 | "template" => "Invalid parameter number", 178 | ], 179 | [ 180 | "code" => 2035, 181 | "symbol" => "CR_INVALID_BUFFER_USE", 182 | "template" => "Can't send long data for non-string/non-binary data types (parameter: {p1})", 183 | ], 184 | [ 185 | "code" => 2036, 186 | "symbol" => "CR_UNSUPPORTED_PARAM_TYPE", 187 | "template" => "Using unsupported buffer type: {p1} (parameter: {p2})", 188 | ], 189 | [ 190 | "code" => 2037, 191 | "symbol" => "CR_SHARED_MEMORY_CONNECTION", 192 | "template" => "Shared memory: {#p1}", 193 | ], 194 | [ 195 | "code" => 2038, 196 | "symbol" => "CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR", 197 | "template" => "Can't open shared memory; client could not create request event ({p1})", 198 | ], 199 | [ 200 | "code" => 2039, 201 | "symbol" => "CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR", 202 | "template" => "Can't open shared memory; no answer event received from server ({p1})", 203 | ], 204 | [ 205 | "code" => 2040, 206 | "symbol" => "CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR", 207 | "template" => "Can't open shared memory; server could not allocate file mapping ({p1})", 208 | ], 209 | [ 210 | "code" => 2041, 211 | "symbol" => "CR_SHARED_MEMORY_CONNECT_MAP_ERROR", 212 | "template" => "Can't open shared memory; server could not get pointer to file mapping ({p1})", 213 | ], 214 | [ 215 | "code" => 2042, 216 | "symbol" => "CR_SHARED_MEMORY_FILE_MAP_ERROR", 217 | "template" => "Can't open shared memory; client could not allocate file mapping ({p1})", 218 | ], 219 | [ 220 | "code" => 2043, 221 | "symbol" => "CR_SHARED_MEMORY_MAP_ERROR", 222 | "template" => "Can't open shared memory; client could not get pointer to file mapping ({p1})", 223 | ], 224 | [ 225 | "code" => 2044, 226 | "symbol" => "CR_SHARED_MEMORY_EVENT_ERROR", 227 | "template" => "Can't open shared memory; client could not create {#p1} event ({p2})", 228 | ], 229 | [ 230 | "code" => 2045, 231 | "symbol" => "CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR", 232 | "template" => "Can't open shared memory; no answer from server ({p1})", 233 | ], 234 | [ 235 | "code" => 2046, 236 | "symbol" => "CR_SHARED_MEMORY_CONNECT_SET_ERROR", 237 | "template" => "Can't open shared memory; cannot send request event to server ({p1})", 238 | ], 239 | [ 240 | "code" => 2047, 241 | "symbol" => "CR_CONN_UNKNOW_PROTOCOL", 242 | "template" => "Wrong or unknown protocol", 243 | ], 244 | [ 245 | "code" => 2048, 246 | "symbol" => "CR_INVALID_CONN_HANDLE", 247 | "template" => "Invalid connection handle", 248 | ], 249 | [ 250 | "code" => 2049, 251 | "symbol" => "CR_SECURE_AUTH", 252 | "template" => "Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)", 253 | ], 254 | [ 255 | "code" => 2050, 256 | "symbol" => "CR_FETCH_CANCELED", 257 | "template" => "Row retrieval was canceled by mysql_stmt_close() call", 258 | ], 259 | [ 260 | "code" => 2051, 261 | "symbol" => "CR_NO_DATA", 262 | "template" => "Attempt to read column without prior row fetch", 263 | ], 264 | [ 265 | "code" => 2052, 266 | "symbol" => "CR_NO_STMT_METADATA", 267 | "template" => "Prepared statement contains no metadata", 268 | ], 269 | [ 270 | "code" => 2053, 271 | "symbol" => "CR_NO_RESULT_SET", 272 | "template" => "Attempt to read a row while there is no result set associated with the statement", 273 | ], 274 | [ 275 | "code" => 2054, 276 | "symbol" => "CR_NOT_IMPLEMENTED", 277 | "template" => "This feature is not implemented yet", 278 | ], 279 | [ 280 | "code" => 2055, 281 | "symbol" => "CR_SERVER_LOST_EXTENDED", 282 | "template" => "Lost connection to MySQL server at '{#p1}', system error: {p2}", 283 | ], 284 | [ 285 | "code" => 2056, 286 | "symbol" => "CR_STMT_CLOSED", 287 | "template" => "Statement closed indirectly because of a preceeding {#p1}() call", 288 | ], 289 | [ 290 | "code" => 2057, 291 | "symbol" => "CR_NEW_STMT_METADATA", 292 | "template" => "The number of columns in the result set differs from the number of bound buffers. You must reset the statement, rebind the result set columns, and execute the statement again", 293 | ], 294 | [ 295 | "code" => 2058, 296 | "symbol" => "CR_ALREADY_CONNECTED", 297 | "template" => "This handle is already connected. Use a separate handle for each connection.", 298 | ], 299 | [ 300 | "code" => 2059, 301 | "symbol" => "CR_AUTH_PLUGIN_CANNOT_LOAD", 302 | "template" => "Authentication plugin '{#p1}' cannot be loaded: {#p2}", 303 | ], 304 | ]; 305 | -------------------------------------------------------------------------------- /patterns/server_5.6.php: -------------------------------------------------------------------------------- 1 | 1021, 8 | "symbol" => "ER_DISK_FULL", 9 | "sql_state" => "HY000", 10 | "template" => "Disk full ({#p1}); waiting for someone to free some space... (errno: {p2} - {#p3})", 11 | ], 12 | [ 13 | "code" => 1118, 14 | "symbol" => "ER_TOO_BIG_ROWSIZE", 15 | "sql_state" => "42000", 16 | "template" => "Row size too large. The maximum row size for the used table type, not counting BLOBs, is {p1}. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs", 17 | ], 18 | [ 19 | "code" => 1315, 20 | "symbol" => "ER_UPDATE_LOG_DEPRECATED_IGNORED", 21 | "sql_state" => "42000", 22 | "template" => "The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored.", 23 | ], 24 | [ 25 | "code" => 1316, 26 | "symbol" => "ER_UPDATE_LOG_DEPRECATED_TRANSLATED", 27 | "sql_state" => "42000", 28 | "template" => "The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been translated to SET SQL_LOG_BIN.", 29 | ], 30 | [ 31 | "code" => 1568, 32 | "symbol" => "ER_CANT_CHANGE_TX_CHARACTERISTICS", 33 | "sql_state" => "25001", 34 | "template" => "Transaction characteristics can't be changed while a transaction is in progress", 35 | ], 36 | [ 37 | "code" => 1589, 38 | "symbol" => "ER_EVENT_CANNOT_ALTER_IN_THE_PAST", 39 | "sql_state" => "HY000", 40 | "template" => "Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was not changed. Specify a time in the future.", 41 | ], 42 | [ 43 | "code" => 1721, 44 | "symbol" => "ER_CANT_LOCK_RPL_INFO_TABLE", 45 | "sql_state" => "HY000", 46 | "template" => "You can't use locks with rpl info tables.", 47 | ], 48 | [ 49 | "code" => 1728, 50 | "symbol" => "ER_CANNOT_LOAD_FROM_TABLE_V2", 51 | "sql_state" => "HY000", 52 | "template" => "Cannot load from {#p1}.{#p2}. The table is probably corrupted", 53 | ], 54 | [ 55 | "code" => 1729, 56 | "symbol" => "ER_MASTER_DELAY_VALUE_OUT_OF_RANGE", 57 | "sql_state" => "HY000", 58 | "template" => "The requested value {#p1} for the master delay exceeds the maximum {p2}", 59 | ], 60 | [ 61 | "code" => 1730, 62 | "symbol" => "ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT", 63 | "sql_state" => "HY000", 64 | "template" => "Only Format_description_log_event and row events are allowed in BINLOG statements (but {#p1} was provided)", 65 | ], 66 | [ 67 | "code" => 1731, 68 | "symbol" => "ER_PARTITION_EXCHANGE_DIFFERENT_OPTION", 69 | "sql_state" => "HY000", 70 | "template" => "Non matching attribute '{#p1}' between partition and table", 71 | ], 72 | [ 73 | "code" => 1732, 74 | "symbol" => "ER_PARTITION_EXCHANGE_PART_TABLE", 75 | "sql_state" => "HY000", 76 | "template" => "Table to exchange with partition is partitioned: '{#p1}'", 77 | ], 78 | [ 79 | "code" => 1733, 80 | "symbol" => "ER_PARTITION_EXCHANGE_TEMP_TABLE", 81 | "sql_state" => "HY000", 82 | "template" => "Table to exchange with partition is temporary: '{#p1}'", 83 | ], 84 | [ 85 | "code" => 1734, 86 | "symbol" => "ER_PARTITION_INSTEAD_OF_SUBPARTITION", 87 | "sql_state" => "HY000", 88 | "template" => "Subpartitioned table, use subpartition instead of partition", 89 | ], 90 | [ 91 | "code" => 1735, 92 | "symbol" => "ER_UNKNOWN_PARTITION", 93 | "sql_state" => "HY000", 94 | "template" => "Unknown partition '{#p1}' in table '{#p2}'", 95 | ], 96 | [ 97 | "code" => 1736, 98 | "symbol" => "ER_TABLES_DIFFERENT_METADATA", 99 | "sql_state" => "HY000", 100 | "template" => "Tables have different definitions", 101 | ], 102 | [ 103 | "code" => 1737, 104 | "symbol" => "ER_ROW_DOES_NOT_MATCH_PARTITION", 105 | "sql_state" => "HY000", 106 | "template" => "Found a row that does not match the partition", 107 | ], 108 | [ 109 | "code" => 1738, 110 | "symbol" => "ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX", 111 | "sql_state" => "HY000", 112 | "template" => "Option binlog_cache_size ({p1}) is greater than max_binlog_cache_size ({p2}); setting binlog_cache_size equal to max_binlog_cache_size.", 113 | ], 114 | [ 115 | "code" => 1739, 116 | "symbol" => "ER_WARN_INDEX_NOT_APPLICABLE", 117 | "sql_state" => "HY000", 118 | "template" => "Cannot use {#p1} access on index '{#p2}' due to type or collation conversion on field '{#p3}'", 119 | ], 120 | [ 121 | "code" => 1740, 122 | "symbol" => "ER_PARTITION_EXCHANGE_FOREIGN_KEY", 123 | "sql_state" => "HY000", 124 | "template" => "Table to exchange with partition has foreign key references: '{#p1}'", 125 | ], 126 | [ 127 | "code" => 1741, 128 | "symbol" => "ER_NO_SUCH_KEY_VALUE", 129 | "sql_state" => "HY000", 130 | "template" => "Key value '{#p1}' was not found in table '{#p2}.{#p3}'", 131 | ], 132 | [ 133 | "code" => 1743, 134 | "symbol" => "ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE", 135 | "sql_state" => "HY000", 136 | "template" => "Replication event checksum verification failed while reading from network.", 137 | ], 138 | [ 139 | "code" => 1744, 140 | "symbol" => "ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE", 141 | "sql_state" => "HY000", 142 | "template" => "Replication event checksum verification failed while reading from a log file.", 143 | ], 144 | [ 145 | "code" => 1745, 146 | "symbol" => "ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX", 147 | "sql_state" => "HY000", 148 | "template" => "Option binlog_stmt_cache_size ({p1}) is greater than max_binlog_stmt_cache_size ({p2}); setting binlog_stmt_cache_size equal to max_binlog_stmt_cache_size.", 149 | ], 150 | [ 151 | "code" => 1746, 152 | "symbol" => "ER_NO_SUCH_PARTITION", 153 | "sql_state" => "HY000", 154 | "template" => "partition '{#p1}' doesn't exist", 155 | ], 156 | [ 157 | "code" => 1746, 158 | "symbol" => "ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT", 159 | "sql_state" => "HY000", 160 | "template" => "Can't update table '{#p1}' while '{#p2}' is being created.", 161 | ], 162 | [ 163 | "code" => 1747, 164 | "symbol" => "ER_PARTITION_CLAUSE_ON_NONPARTITIONED", 165 | "sql_state" => "HY000", 166 | "template" => "PARTITION () clause on non partitioned table", 167 | ], 168 | [ 169 | "code" => 1748, 170 | "symbol" => "ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET", 171 | "sql_state" => "HY000", 172 | "template" => "Found a row not matching the given partition set", 173 | ], 174 | [ 175 | "code" => 1749, 176 | "symbol" => "ER_NO_SUCH_PARTITION__UNUSED", 177 | "sql_state" => "HY000", 178 | "template" => "partition '{#p1}' doesn't exist", 179 | ], 180 | [ 181 | "code" => 1750, 182 | "symbol" => "ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE", 183 | "sql_state" => "HY000", 184 | "template" => "Failure while changing the type of replication repository: {#p1}.", 185 | ], 186 | [ 187 | "code" => 1751, 188 | "symbol" => "ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE", 189 | "sql_state" => "HY000", 190 | "template" => "The creation of some temporary tables could not be rolled back.", 191 | ], 192 | [ 193 | "code" => 1752, 194 | "symbol" => "ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE", 195 | "sql_state" => "HY000", 196 | "template" => "Some temporary tables were dropped, but these operations could not be rolled back.", 197 | ], 198 | [ 199 | "code" => 1754, 200 | "symbol" => "ER_MTS_UPDATED_DBS_GREATER_MAX", 201 | "sql_state" => "HY000", 202 | "template" => "The number of modified databases exceeds the maximum {p1}; the database names will not be included in the replication event metadata.", 203 | ], 204 | [ 205 | "code" => 1755, 206 | "symbol" => "ER_MTS_CANT_PARALLEL", 207 | "sql_state" => "HY000", 208 | "template" => "Cannot execute the current event group in the parallel mode. Encountered event {#p1}, relay-log name {#p2}, position {#p3} which prevents execution of this event group in parallel mode. Reason: {#p4}.", 209 | ], 210 | [ 211 | "code" => 1757, 212 | "symbol" => "ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING", 213 | "sql_state" => "HY000", 214 | "template" => "FULLTEXT index is not supported for partitioned tables.", 215 | ], 216 | [ 217 | "code" => 1758, 218 | "symbol" => "ER_DA_INVALID_CONDITION_NUMBER", 219 | "sql_state" => "35000", 220 | "template" => "Invalid condition number", 221 | ], 222 | [ 223 | "code" => 1759, 224 | "symbol" => "ER_INSECURE_PLAIN_TEXT", 225 | "sql_state" => "HY000", 226 | "template" => "Sending passwords in plain text without SSL/TLS is extremely insecure.", 227 | ], 228 | [ 229 | "code" => 1760, 230 | "symbol" => "ER_INSECURE_CHANGE_MASTER", 231 | "sql_state" => "HY000", 232 | "template" => "Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.", 233 | ], 234 | [ 235 | "code" => 1761, 236 | "symbol" => "ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO", 237 | "sql_state" => "23000", 238 | "template" => "Foreign key constraint for table '{#p1}', record '{#p2}' would lead to a duplicate entry in table '{#p3}', key '{#p4}'", 239 | ], 240 | [ 241 | "code" => 1762, 242 | "symbol" => "ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO", 243 | "sql_state" => "23000", 244 | "template" => "Foreign key constraint for table '{#p1}', record '{#p2}' would lead to a duplicate entry in a child table", 245 | ], 246 | [ 247 | "code" => 1763, 248 | "symbol" => "ER_SQLTHREAD_WITH_SECURE_SLAVE", 249 | "sql_state" => "HY000", 250 | "template" => "Setting authentication options is not possible when only the Slave SQL Thread is being started.", 251 | ], 252 | [ 253 | "code" => 1764, 254 | "symbol" => "ER_TABLE_HAS_NO_FT", 255 | "sql_state" => "HY000", 256 | "template" => "The table does not have FULLTEXT index to support this query", 257 | ], 258 | [ 259 | "code" => 1765, 260 | "symbol" => "ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER", 261 | "sql_state" => "HY000", 262 | "template" => "The system variable {#p1} cannot be set in stored functions or triggers.", 263 | ], 264 | [ 265 | "code" => 1766, 266 | "symbol" => "ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION", 267 | "sql_state" => "HY000", 268 | "template" => "The system variable {#p1} cannot be set when there is an ongoing transaction.", 269 | ], 270 | [ 271 | "code" => 1767, 272 | "symbol" => "ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST", 273 | "sql_state" => "HY000", 274 | "template" => "The system variable @@SESSION.GTID_NEXT has the value {#p1}, which is not listed in @@SESSION.GTID_NEXT_LIST.", 275 | ], 276 | [ 277 | "code" => 1768, 278 | "symbol" => "ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION_WHEN_GTID_NEXT_LIST_IS_NULL", 279 | "sql_state" => "HY000", 280 | "template" => "The system variable @@SESSION.GTID_NEXT cannot change inside a transaction.", 281 | ], 282 | [ 283 | "code" => 1769, 284 | "symbol" => "ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION", 285 | "sql_state" => "HY000", 286 | "template" => "The statement 'SET {#p1}' cannot invoke a stored function.", 287 | ], 288 | [ 289 | "code" => 1770, 290 | "symbol" => "ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL", 291 | "sql_state" => "HY000", 292 | "template" => "The system variable @@SESSION.GTID_NEXT cannot be 'AUTOMATIC' when @@SESSION.GTID_NEXT_LIST is non-NULL.", 293 | ], 294 | [ 295 | "code" => 1771, 296 | "symbol" => "ER_SKIPPING_LOGGED_TRANSACTION", 297 | "sql_state" => "HY000", 298 | "template" => "Skipping transaction {#p1} because it has already been executed and logged.", 299 | ], 300 | [ 301 | "code" => 1772, 302 | "symbol" => "ER_MALFORMED_GTID_SET_SPECIFICATION", 303 | "sql_state" => "HY000", 304 | "template" => "Malformed GTID set specification '{#p1}'.", 305 | ], 306 | [ 307 | "code" => 1773, 308 | "symbol" => "ER_MALFORMED_GTID_SET_ENCODING", 309 | "sql_state" => "HY000", 310 | "template" => "Malformed GTID set encoding.", 311 | ], 312 | [ 313 | "code" => 1774, 314 | "symbol" => "ER_MALFORMED_GTID_SPECIFICATION", 315 | "sql_state" => "HY000", 316 | "template" => "Malformed GTID specification '{#p1}'.", 317 | ], 318 | [ 319 | "code" => 1775, 320 | "symbol" => "ER_GNO_EXHAUSTED", 321 | "sql_state" => "HY000", 322 | "template" => "Impossible to generate Global Transaction Identifier: the integer component reached the maximal value. Restart the server with a new server_uuid.", 323 | ], 324 | [ 325 | "code" => 1776, 326 | "symbol" => "ER_BAD_SLAVE_AUTO_POSITION", 327 | "sql_state" => "HY000", 328 | "template" => "Parameters MASTER_LOG_FILE, MASTER_LOG_POS, RELAY_LOG_FILE and RELAY_LOG_POS cannot be set when MASTER_AUTO_POSITION is active.", 329 | ], 330 | [ 331 | "code" => 1777, 332 | "symbol" => "ER_AUTO_POSITION_REQUIRES_GTID_MODE_ON", 333 | "sql_state" => "HY000", 334 | "template" => "CHANGE MASTER TO MASTER_AUTO_POSITION = 1 can only be executed when @@GLOBAL.GTID_MODE = ON.", 335 | ], 336 | [ 337 | "code" => 1778, 338 | "symbol" => "ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET", 339 | "sql_state" => "HY000", 340 | "template" => "Cannot execute statements with implicit commit inside a transaction when @@SESSION.GTID_NEXT != AUTOMATIC.", 341 | ], 342 | [ 343 | "code" => 1779, 344 | "symbol" => "ER_GTID_MODE_2_OR_3_REQUIRES_DISABLE_GTID_UNSAFE_STATEMENTS_ON", 345 | "sql_state" => "HY000", 346 | "template" => "GTID_MODE = ON or GTID_MODE = UPGRADE_STEP_2 requires DISABLE_GTID_UNSAFE_STATEMENTS = 1.", 347 | ], 348 | [ 349 | "code" => 1779, 350 | "symbol" => "ER_GTID_MODE_2_OR_3_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON", 351 | "sql_state" => "HY000", 352 | "template" => "@@GLOBAL.GTID_MODE = ON or UPGRADE_STEP_2 requires @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1.", 353 | ], 354 | [ 355 | "code" => 1780, 356 | "symbol" => "ER_GTID_MODE_REQUIRES_BINLOG", 357 | "sql_state" => "HY000", 358 | "template" => "@@GLOBAL.GTID_MODE = ON or UPGRADE_STEP_1 or UPGRADE_STEP_2 requires --log-bin and --log-slave-updates.", 359 | ], 360 | [ 361 | "code" => 1781, 362 | "symbol" => "ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF", 363 | "sql_state" => "HY000", 364 | "template" => "@@SESSION.GTID_NEXT cannot be set to UUID:NUMBER when @@GLOBAL.GTID_MODE = OFF.", 365 | ], 366 | [ 367 | "code" => 1782, 368 | "symbol" => "ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON", 369 | "sql_state" => "HY000", 370 | "template" => "@@SESSION.GTID_NEXT cannot be set to ANONYMOUS when @@GLOBAL.GTID_MODE = ON.", 371 | ], 372 | [ 373 | "code" => 1783, 374 | "symbol" => "ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF", 375 | "sql_state" => "HY000", 376 | "template" => "@@SESSION.GTID_NEXT_LIST cannot be set to a non-NULL value when @@GLOBAL.GTID_MODE = OFF.", 377 | ], 378 | [ 379 | "code" => 1784, 380 | "symbol" => "ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF", 381 | "sql_state" => "HY000", 382 | "template" => "Found a Gtid_log_event or Previous_gtids_log_event when @@GLOBAL.GTID_MODE = OFF.", 383 | ], 384 | [ 385 | "code" => 1785, 386 | "symbol" => "ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE", 387 | "sql_state" => "HY000", 388 | "template" => "When @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1, updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.", 389 | ], 390 | [ 391 | "code" => 1786, 392 | "symbol" => "ER_GTID_UNSAFE_CREATE_SELECT", 393 | "sql_state" => "HY000", 394 | "template" => "CREATE TABLE ... SELECT is forbidden when @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1.", 395 | ], 396 | [ 397 | "code" => 1787, 398 | "symbol" => "ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION", 399 | "sql_state" => "HY000", 400 | "template" => "When @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1, the statements CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can be executed in a non-transactional context only, and require that AUTOCOMMIT = 1. These statements are also not allowed in a function or trigger because functions and triggers are also considered to be multi-statement transactions.", 401 | ], 402 | [ 403 | "code" => 1788, 404 | "symbol" => "ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME", 405 | "sql_state" => "HY000", 406 | "template" => "The value of @@GLOBAL.GTID_MODE can only change one step at a time: OFF <-> UPGRADE_STEP_1 <-> UPGRADE_STEP_2 <-> ON. Also note that this value must be stepped up or down simultaneously on all servers; see the Manual for instructions.", 407 | ], 408 | [ 409 | "code" => 1789, 410 | "symbol" => "ER_MASTER_HAS_PURGED_REQUIRED_GTIDS", 411 | "sql_state" => "HY000", 412 | "template" => "The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.", 413 | ], 414 | [ 415 | "code" => 1790, 416 | "symbol" => "ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID", 417 | "sql_state" => "HY000", 418 | "template" => "@@SESSION.GTID_NEXT cannot be changed by a client that owns a GTID. The client owns {#p1}. Ownership is released on COMMIT or ROLLBACK.", 419 | ], 420 | [ 421 | "code" => 1791, 422 | "symbol" => "ER_UNKNOWN_EXPLAIN_FORMAT", 423 | "sql_state" => "HY000", 424 | "template" => "Unknown EXPLAIN format name: '{#p1}'", 425 | ], 426 | [ 427 | "code" => 1792, 428 | "symbol" => "ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION", 429 | "sql_state" => "25006", 430 | "template" => "Cannot execute statement in a READ ONLY transaction.", 431 | ], 432 | [ 433 | "code" => 1793, 434 | "symbol" => "ER_TOO_LONG_TABLE_PARTITION_COMMENT", 435 | "sql_state" => "HY000", 436 | "template" => "Comment for table partition '{#p1}' is too long (max = {p2})", 437 | ], 438 | [ 439 | "code" => 1794, 440 | "symbol" => "ER_SLAVE_CONFIGURATION", 441 | "sql_state" => "HY000", 442 | "template" => "Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.", 443 | ], 444 | [ 445 | "code" => 1795, 446 | "symbol" => "ER_INNODB_FT_LIMIT", 447 | "sql_state" => "HY000", 448 | "template" => "InnoDB presently supports one FULLTEXT index creation at a time", 449 | ], 450 | [ 451 | "code" => 1796, 452 | "symbol" => "ER_INNODB_NO_FT_TEMP_TABLE", 453 | "sql_state" => "HY000", 454 | "template" => "Cannot create FULLTEXT index on temporary InnoDB table", 455 | ], 456 | [ 457 | "code" => 1797, 458 | "symbol" => "ER_INNODB_FT_WRONG_DOCID_COLUMN", 459 | "sql_state" => "HY000", 460 | "template" => "Column '{#p1}' is of wrong type for an InnoDB FULLTEXT index", 461 | ], 462 | [ 463 | "code" => 1798, 464 | "symbol" => "ER_INNODB_FT_WRONG_DOCID_INDEX", 465 | "sql_state" => "HY000", 466 | "template" => "Index '{#p1}' is of wrong type for an InnoDB FULLTEXT index", 467 | ], 468 | [ 469 | "code" => 1799, 470 | "symbol" => "ER_INNODB_ONLINE_LOG_TOO_BIG", 471 | "sql_state" => "HY000", 472 | "template" => "Creating index '{#p1}' required more than 'innodb_online_alter_log_max_size' bytes of modification log. Please try again.", 473 | ], 474 | [ 475 | "code" => 1800, 476 | "symbol" => "ER_UNKNOWN_ALTER_ALGORITHM", 477 | "sql_state" => "HY000", 478 | "template" => "Unknown ALGORITHM '{#p1}'", 479 | ], 480 | [ 481 | "code" => 1801, 482 | "symbol" => "ER_UNKNOWN_ALTER_LOCK", 483 | "sql_state" => "HY000", 484 | "template" => "Unknown LOCK type '{#p1}'", 485 | ], 486 | [ 487 | "code" => 1802, 488 | "symbol" => "ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS", 489 | "sql_state" => "HY000", 490 | "template" => "CHANGE MASTER cannot be executed when the slave was stopped with an error or killed in MTS mode. Consider using RESET SLAVE or START SLAVE UNTIL.", 491 | ], 492 | [ 493 | "code" => 1803, 494 | "symbol" => "ER_MTS_RECOVERY_FAILURE", 495 | "sql_state" => "HY000", 496 | "template" => "Cannot recover after SLAVE errored out in parallel execution mode. Additional error messages can be found in the MySQL error log.", 497 | ], 498 | [ 499 | "code" => 1804, 500 | "symbol" => "ER_MTS_RESET_WORKERS", 501 | "sql_state" => "HY000", 502 | "template" => "Cannot clean up worker info tables. Additional error messages can be found in the MySQL error log.", 503 | ], 504 | [ 505 | "code" => 1805, 506 | "symbol" => "ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2", 507 | "sql_state" => "HY000", 508 | "template" => "Column count of {#p1}.{#p2} is wrong. Expected {p3}, found {p4}. The table is probably corrupted", 509 | ], 510 | [ 511 | "code" => 1806, 512 | "symbol" => "ER_SLAVE_SILENT_RETRY_TRANSACTION", 513 | "sql_state" => "HY000", 514 | "template" => "Slave must silently retry current transaction", 515 | ], 516 | [ 517 | "code" => 1807, 518 | "symbol" => "ER_DISCARD_FK_CHECKS_RUNNING", 519 | "sql_state" => "HY000", 520 | "template" => "There is a foreign key check running on table '{#p1}'. Cannot discard the table.", 521 | ], 522 | [ 523 | "code" => 1808, 524 | "symbol" => "ER_TABLE_SCHEMA_MISMATCH", 525 | "sql_state" => "HY000", 526 | "template" => "Schema mismatch ({#p1})", 527 | ], 528 | [ 529 | "code" => 1809, 530 | "symbol" => "ER_TABLE_IN_SYSTEM_TABLESPACE", 531 | "sql_state" => "HY000", 532 | "template" => "Table '{#p1}' in system tablespace", 533 | ], 534 | [ 535 | "code" => 1810, 536 | "symbol" => "ER_IO_READ_ERROR", 537 | "sql_state" => "HY000", 538 | "template" => "IO Read error: ({p1}, {#p2}) {#p3}", 539 | ], 540 | [ 541 | "code" => 1811, 542 | "symbol" => "ER_IO_WRITE_ERROR", 543 | "sql_state" => "HY000", 544 | "template" => "IO Write error: ({p1}, {#p2}) {#p3}", 545 | ], 546 | [ 547 | "code" => 1812, 548 | "symbol" => "ER_TABLESPACE_MISSING", 549 | "sql_state" => "HY000", 550 | "template" => "Tablespace is missing for table '{#p1}'", 551 | ], 552 | [ 553 | "code" => 1813, 554 | "symbol" => "ER_TABLESPACE_EXISTS", 555 | "sql_state" => "HY000", 556 | "template" => "Tablespace for table '{#p1}' exists. Please DISCARD the tablespace before IMPORT.", 557 | ], 558 | [ 559 | "code" => 1814, 560 | "symbol" => "ER_TABLESPACE_DISCARDED", 561 | "sql_state" => "HY000", 562 | "template" => "Tablespace has been discarded for table '{#p1}'", 563 | ], 564 | [ 565 | "code" => 1815, 566 | "symbol" => "ER_INTERNAL_ERROR", 567 | "sql_state" => "HY000", 568 | "template" => "Internal error: {#p1}", 569 | ], 570 | [ 571 | "code" => 1816, 572 | "symbol" => "ER_INNODB_IMPORT_ERROR", 573 | "sql_state" => "HY000", 574 | "template" => "ALTER TABLE '{#p1}' IMPORT TABLESPACE failed with error {p2} : '{#p3}'", 575 | ], 576 | [ 577 | "code" => 1817, 578 | "symbol" => "ER_INNODB_INDEX_CORRUPT", 579 | "sql_state" => "HY000", 580 | "template" => "Index corrupt: {#p1}", 581 | ], 582 | [ 583 | "code" => 1818, 584 | "symbol" => "ER_INVALID_YEAR_COLUMN_LENGTH", 585 | "sql_state" => "HY000", 586 | "template" => "YEAR({p1}) column type is deprecated. Creating YEAR(4) column instead.", 587 | ], 588 | [ 589 | "code" => 1819, 590 | "symbol" => "ER_NOT_VALID_PASSWORD", 591 | "sql_state" => "HY000", 592 | "template" => "Your password does not satisfy the current policy requirements", 593 | ], 594 | [ 595 | "code" => 1820, 596 | "symbol" => "ER_MUST_CHANGE_PASSWORD", 597 | "sql_state" => "HY000", 598 | "template" => "You must SET PASSWORD before executing this statement", 599 | ], 600 | [ 601 | "code" => 1821, 602 | "symbol" => "ER_FK_NO_INDEX_CHILD", 603 | "sql_state" => "HY000", 604 | "template" => "Failed to add the foreign key constaint. Missing index for constraint '{#p1}' in the foreign table '{#p2}'", 605 | ], 606 | [ 607 | "code" => 1822, 608 | "symbol" => "ER_FK_NO_INDEX_PARENT", 609 | "sql_state" => "HY000", 610 | "template" => "Failed to add the foreign key constaint. Missing index for constraint '{#p1}' in the referenced table '{#p2}'", 611 | ], 612 | [ 613 | "code" => 1823, 614 | "symbol" => "ER_FK_FAIL_ADD_SYSTEM", 615 | "sql_state" => "HY000", 616 | "template" => "Failed to add the foreign key constraint '{#p1}' to system tables", 617 | ], 618 | [ 619 | "code" => 1824, 620 | "symbol" => "ER_FK_CANNOT_OPEN_PARENT", 621 | "sql_state" => "HY000", 622 | "template" => "Failed to open the referenced table '{#p1}'", 623 | ], 624 | [ 625 | "code" => 1825, 626 | "symbol" => "ER_FK_INCORRECT_OPTION", 627 | "sql_state" => "HY000", 628 | "template" => "Failed to add the foreign key constraint on table '{#p1}'. Incorrect options in FOREIGN KEY constraint '{#p2}'", 629 | ], 630 | [ 631 | "code" => 1826, 632 | "symbol" => "ER_FK_DUP_NAME", 633 | "sql_state" => "HY000", 634 | "template" => "Duplicate foreign key constraint name '{#p1}'", 635 | ], 636 | [ 637 | "code" => 1827, 638 | "symbol" => "ER_PASSWORD_FORMAT", 639 | "sql_state" => "HY000", 640 | "template" => "The password hash doesn't have the expected format. Check if the correct password algorithm is being used with the PASSWORD() function.", 641 | ], 642 | [ 643 | "code" => 1828, 644 | "symbol" => "ER_FK_COLUMN_CANNOT_DROP", 645 | "sql_state" => "HY000", 646 | "template" => "Cannot drop column '{#p1}': needed in a foreign key constraint '{#p2}'", 647 | ], 648 | [ 649 | "code" => 1829, 650 | "symbol" => "ER_FK_COLUMN_CANNOT_DROP_CHILD", 651 | "sql_state" => "HY000", 652 | "template" => "Cannot drop column '{#p1}': needed in a foreign key constraint '{#p2}' of table '{#p3}'", 653 | ], 654 | [ 655 | "code" => 1830, 656 | "symbol" => "ER_FK_COLUMN_NOT_NULL", 657 | "sql_state" => "HY000", 658 | "template" => "Column '{#p1}' cannot be NOT NULL: needed in a foreign key constraint '{#p2}' SET NULL", 659 | ], 660 | [ 661 | "code" => 1831, 662 | "symbol" => "ER_DUP_INDEX", 663 | "sql_state" => "HY000", 664 | "template" => "Duplicate index '{#p1}' defined on the table '{#p2}.{#p3}'. This is deprecated and will be disallowed in a future release.", 665 | ], 666 | [ 667 | "code" => 1832, 668 | "symbol" => "ER_FK_COLUMN_CANNOT_CHANGE", 669 | "sql_state" => "HY000", 670 | "template" => "Cannot change column '{#p1}': used in a foreign key constraint '{#p2}'", 671 | ], 672 | [ 673 | "code" => 1833, 674 | "symbol" => "ER_FK_COLUMN_CANNOT_CHANGE_CHILD", 675 | "sql_state" => "HY000", 676 | "template" => "Cannot change column '{#p1}': used in a foreign key constraint '{#p2}' of table '{#p3}'", 677 | ], 678 | [ 679 | "code" => 1834, 680 | "symbol" => "ER_FK_CANNOT_DELETE_PARENT", 681 | "sql_state" => "HY000", 682 | "template" => "Cannot delete rows from table which is parent in a foreign key constraint '{#p1}' of table '{#p2}'", 683 | ], 684 | [ 685 | "code" => 1835, 686 | "symbol" => "ER_MALFORMED_PACKET", 687 | "sql_state" => "HY000", 688 | "template" => "Malformed communication packet.", 689 | ], 690 | [ 691 | "code" => 1836, 692 | "symbol" => "ER_READ_ONLY_MODE", 693 | "sql_state" => "HY000", 694 | "template" => "Running in read-only mode", 695 | ], 696 | [ 697 | "code" => 1837, 698 | "symbol" => "ER_GTID_NEXT_TYPE_UNDEFINED_GROUP", 699 | "sql_state" => "HY000", 700 | "template" => "When @@SESSION.GTID_NEXT is set to a GTID, you must explicitly set it to a different value after a COMMIT or ROLLBACK. Please check GTID_NEXT variable manual page for detailed explanation. Current @@SESSION.GTID_NEXT is '{#p1}'.", 701 | ], 702 | [ 703 | "code" => 1838, 704 | "symbol" => "ER_VARIABLE_NOT_SETTABLE_IN_SP", 705 | "sql_state" => "HY000", 706 | "template" => "The system variable {#p1} cannot be set in stored procedures.", 707 | ], 708 | [ 709 | "code" => 1839, 710 | "symbol" => "ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF", 711 | "sql_state" => "HY000", 712 | "template" => "@@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_MODE = ON.", 713 | ], 714 | [ 715 | "code" => 1840, 716 | "symbol" => "ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY", 717 | "sql_state" => "HY000", 718 | "template" => "@@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.", 719 | ], 720 | [ 721 | "code" => 1841, 722 | "symbol" => "ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY", 723 | "sql_state" => "HY000", 724 | "template" => "@@GLOBAL.GTID_PURGED can only be set when there are no ongoing transactions (not even in other clients).", 725 | ], 726 | [ 727 | "code" => 1842, 728 | "symbol" => "ER_GTID_PURGED_WAS_CHANGED", 729 | "sql_state" => "HY000", 730 | "template" => "@@GLOBAL.GTID_PURGED was changed from '{#p1}' to '{#p2}'.", 731 | ], 732 | [ 733 | "code" => 1843, 734 | "symbol" => "ER_GTID_EXECUTED_WAS_CHANGED", 735 | "sql_state" => "HY000", 736 | "template" => "@@GLOBAL.GTID_EXECUTED was changed from '{#p1}' to '{#p2}'.", 737 | ], 738 | [ 739 | "code" => 1844, 740 | "symbol" => "ER_BINLOG_STMT_MODE_AND_NO_REPL_TABLES", 741 | "sql_state" => "HY000", 742 | "template" => "Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT, and both replicated and non replicated tables are written to.", 743 | ], 744 | [ 745 | "code" => 1845, 746 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED", 747 | "sql_state" => "0A000", 748 | "template" => "{#p1} is not supported for this operation. Try {#p2}.", 749 | ], 750 | [ 751 | "code" => 1846, 752 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON", 753 | "sql_state" => "0A000", 754 | "template" => "{#p1} is not supported. Reason: {#p2}. Try {#p3}.", 755 | ], 756 | [ 757 | "code" => 1847, 758 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY", 759 | "sql_state" => "HY000", 760 | "template" => "COPY algorithm requires a lock", 761 | ], 762 | [ 763 | "code" => 1848, 764 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION", 765 | "sql_state" => "HY000", 766 | "template" => "Partition specific operations do not yet support LOCK/ALGORITHM", 767 | ], 768 | [ 769 | "code" => 1849, 770 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME", 771 | "sql_state" => "HY000", 772 | "template" => "Columns participating in a foreign key are renamed", 773 | ], 774 | [ 775 | "code" => 1850, 776 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE", 777 | "sql_state" => "HY000", 778 | "template" => "Cannot change column type INPLACE", 779 | ], 780 | [ 781 | "code" => 1851, 782 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK", 783 | "sql_state" => "HY000", 784 | "template" => "Adding foreign keys needs foreign_key_checks=OFF", 785 | ], 786 | [ 787 | "code" => 1852, 788 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_IGNORE", 789 | "sql_state" => "HY000", 790 | "template" => "Creating unique indexes with IGNORE requires COPY algorithm to remove duplicate rows", 791 | ], 792 | [ 793 | "code" => 1853, 794 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK", 795 | "sql_state" => "HY000", 796 | "template" => "Dropping a primary key is not allowed without also adding a new primary key", 797 | ], 798 | [ 799 | "code" => 1854, 800 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC", 801 | "sql_state" => "HY000", 802 | "template" => "Adding an auto-increment column requires a lock", 803 | ], 804 | [ 805 | "code" => 1855, 806 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS", 807 | "sql_state" => "HY000", 808 | "template" => "Cannot replace hidden FTS_DOC_ID with a user-visible one", 809 | ], 810 | [ 811 | "code" => 1856, 812 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS", 813 | "sql_state" => "HY000", 814 | "template" => "Cannot drop or rename FTS_DOC_ID", 815 | ], 816 | [ 817 | "code" => 1857, 818 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS", 819 | "sql_state" => "HY000", 820 | "template" => "Fulltext index creation requires a lock", 821 | ], 822 | [ 823 | "code" => 1858, 824 | "symbol" => "ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE", 825 | "sql_state" => "HY000", 826 | "template" => "sql_slave_skip_counter can not be set when the server is running with @@GLOBAL.GTID_MODE = ON. Instead, for each transaction that you want to skip, generate an empty transaction with the same GTID as the transaction", 827 | ], 828 | [ 829 | "code" => 1859, 830 | "symbol" => "ER_DUP_UNKNOWN_IN_INDEX", 831 | "sql_state" => "23000", 832 | "template" => "Duplicate entry for key '{#p1}'", 833 | ], 834 | [ 835 | "code" => 1860, 836 | "symbol" => "ER_IDENT_CAUSES_TOO_LONG_PATH", 837 | "sql_state" => "HY000", 838 | "template" => "Long database name and identifier for object resulted in path length exceeding {p1} characters. Path: '{#p2}'.", 839 | ], 840 | [ 841 | "code" => 1861, 842 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOT_NULL", 843 | "sql_state" => "HY000", 844 | "template" => "cannot silently convert NULL values, as required in this SQL_MODE", 845 | ], 846 | [ 847 | "code" => 1862, 848 | "symbol" => "ER_MUST_CHANGE_PASSWORD_LOGIN", 849 | "sql_state" => "HY000", 850 | "template" => "Your password has expired. To log in you must change it using a client that supports expired passwords.", 851 | ], 852 | [ 853 | "code" => 1863, 854 | "symbol" => "ER_ROW_IN_WRONG_PARTITION", 855 | "sql_state" => "HY000", 856 | "template" => "Found a row in wrong partition {#p1}", 857 | ], 858 | [ 859 | "code" => 1864, 860 | "symbol" => "ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX", 861 | "sql_state" => "HY000", 862 | "template" => "Cannot schedule event {#p1}, relay-log name {#p2}, position {#p3} to Worker thread because its size {p4} exceeds {p5} of slave_pending_jobs_size_max.", 863 | ], 864 | [ 865 | "code" => 1865, 866 | "symbol" => "ER_INNODB_NO_FT_USES_PARSER", 867 | "sql_state" => "HY000", 868 | "template" => "Cannot CREATE FULLTEXT INDEX WITH PARSER on InnoDB table", 869 | ], 870 | [ 871 | "code" => 1866, 872 | "symbol" => "ER_BINLOG_LOGICAL_CORRUPTION", 873 | "sql_state" => "HY000", 874 | "template" => "The binary log file '{#p1}' is logically corrupted: {#p2}", 875 | ], 876 | [ 877 | "code" => 1867, 878 | "symbol" => "ER_WARN_PURGE_LOG_IN_USE", 879 | "sql_state" => "HY000", 880 | "template" => "file {#p1} was not purged because it was being read by {p2} thread(s), purged only {p3} out of {p4} files.", 881 | ], 882 | [ 883 | "code" => 1868, 884 | "symbol" => "ER_WARN_PURGE_LOG_IS_ACTIVE", 885 | "sql_state" => "HY000", 886 | "template" => "file {#p1} was not purged because it is the active log file.", 887 | ], 888 | [ 889 | "code" => 1869, 890 | "symbol" => "ER_AUTO_INCREMENT_CONFLICT", 891 | "sql_state" => "HY000", 892 | "template" => "Auto-increment value in UPDATE conflicts with internally generated values", 893 | ], 894 | [ 895 | "code" => 1870, 896 | "symbol" => "WARN_ON_BLOCKHOLE_IN_RBR", 897 | "sql_state" => "HY000", 898 | "template" => "Row events are not logged for {#p1} statements that modify BLACKHOLE tables in row format. Table(s): '{#p2}'", 899 | ], 900 | [ 901 | "code" => 1871, 902 | "symbol" => "ER_SLAVE_MI_INIT_REPOSITORY", 903 | "sql_state" => "HY000", 904 | "template" => "Slave failed to initialize master info structure from the repository", 905 | ], 906 | [ 907 | "code" => 1872, 908 | "symbol" => "ER_SLAVE_RLI_INIT_REPOSITORY", 909 | "sql_state" => "HY000", 910 | "template" => "Slave failed to initialize relay log info structure from the repository", 911 | ], 912 | [ 913 | "code" => 1873, 914 | "symbol" => "ER_ACCESS_DENIED_CHANGE_USER_ERROR", 915 | "sql_state" => "28000", 916 | "template" => "Access denied trying to change to user '{#p1}'@'{#p2}' (using password: {#p3}). Disconnecting.", 917 | ], 918 | [ 919 | "code" => 1874, 920 | "symbol" => "ER_INNODB_READ_ONLY", 921 | "sql_state" => "HY000", 922 | "template" => "InnoDB is in read only mode.", 923 | ], 924 | [ 925 | "code" => 1875, 926 | "symbol" => "ER_STOP_SLAVE_SQL_THREAD_TIMEOUT", 927 | "sql_state" => "HY000", 928 | "template" => "STOP SLAVE command execution is incomplete: Slave SQL thread got the stop signal, thread is busy, SQL thread will stop once the current task is complete.", 929 | ], 930 | [ 931 | "code" => 1876, 932 | "symbol" => "ER_STOP_SLAVE_IO_THREAD_TIMEOUT", 933 | "sql_state" => "HY000", 934 | "template" => "STOP SLAVE command execution is incomplete: Slave IO thread got the stop signal, thread is busy, IO thread will stop once the current task is complete.", 935 | ], 936 | [ 937 | "code" => 1877, 938 | "symbol" => "ER_TABLE_CORRUPT", 939 | "sql_state" => "HY000", 940 | "template" => "Operation cannot be performed. The table '{#p1}.{#p2}' is missing, corrupt or contains bad data.", 941 | ], 942 | [ 943 | "code" => 1878, 944 | "symbol" => "ER_TEMP_FILE_WRITE_FAILURE", 945 | "sql_state" => "HY000", 946 | "template" => "Temporary file write failure.", 947 | ], 948 | [ 949 | "code" => 1879, 950 | "symbol" => "ER_INNODB_FT_AUX_NOT_HEX_ID", 951 | "sql_state" => "HY000", 952 | "template" => "Upgrade index name failed, please use create index(alter table) algorithm copy to rebuild index.", 953 | ], 954 | [ 955 | "code" => 1880, 956 | "symbol" => "ER_OLD_TEMPORALS_UPGRADED", 957 | "sql_state" => "HY000", 958 | "template" => "TIME/TIMESTAMP/DATETIME columns of old format have been upgraded to the new format.", 959 | ], 960 | [ 961 | "code" => 1881, 962 | "symbol" => "ER_INNODB_FORCED_RECOVERY", 963 | "sql_state" => "HY000", 964 | "template" => "Operation not allowed when innodb_forced_recovery > 0.", 965 | ], 966 | [ 967 | "code" => 1882, 968 | "symbol" => "ER_AES_INVALID_IV", 969 | "sql_state" => "HY000", 970 | "template" => "The initialization vector supplied to {#p1} is too short. Must be at least {p2} bytes long", 971 | ], 972 | [ 973 | "code" => 1883, 974 | "symbol" => "ER_PLUGIN_CANNOT_BE_UNINSTALLED", 975 | "sql_state" => "HY000", 976 | "template" => "Plugin '{#p1}' cannot be uninstalled now. {#p2}", 977 | ], 978 | [ 979 | "code" => 1884, 980 | "symbol" => "ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_GTID_GROUP", 981 | "sql_state" => "HY000", 982 | "template" => "Cannot execute statement because it needs to be written to the binary log as multiple statements, and this is not allowed when @@SESSION.GTID_NEXT == 'UUID:NUMBER'.", 983 | ], 984 | [ 985 | "code" => 1885, 986 | "symbol" => "ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER", 987 | "sql_state" => "HY000", 988 | "template" => "Slave has more GTIDs than the master has, using the master's SERVER_UUID. This may indicate that the end of the binary log was truncated or that the last binary log file was lost, e.g., after a power or disk failure when sync_binlog != 1. The master may or may not have rolled back transactions that were already replicated to the slave. Suggest to replicate any transactions that master has rolled back from slave to master, and/or commit empty transactions on master to account for transactions that have been committed on master but are not included in GTID_EXECUTED.", 989 | ], 990 | [ 991 | "code" => 1886, 992 | "symbol" => "ER_MISSING_KEY", 993 | "sql_state" => "HY000", 994 | "template" => "The table '{#p1}.{#p2}' does not have the necessary key(s) defined on it. Please check the table definition and create index(s) accordingly.", 995 | ], 996 | [ 997 | "code" => 1887, 998 | "symbol" => "WARN_NAMED_PIPE_ACCESS_EVERYONE", 999 | "sql_state" => "HY000", 1000 | "template" => "Setting named_pipe_full_access_group='{#p1}' is insecure. Consider using a Windows group with fewer members.", 1001 | ], 1002 | ]; 1003 | 1004 | return array_merge($previous, $new); -------------------------------------------------------------------------------- /patterns/server_5.7.php: -------------------------------------------------------------------------------- 1 | 1101, 8 | "symbol" => "ER_BLOB_CANT_HAVE_DEFAULT", 9 | "sql_state" => "42000", 10 | "template" => "BLOB, TEXT, GEOMETRY or JSON column '{#p1}' can't have a default value", 11 | ], 12 | [ 13 | "code" => 1175, 14 | "symbol" => "ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE", 15 | "sql_state" => "HY000", 16 | "template" => "You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. {#p1}", 17 | ], 18 | [ 19 | "code" => 1426, 20 | "symbol" => "ER_TOO_BIG_PRECISION", 21 | "sql_state" => "42000", 22 | "template" => "Too-big precision {p1} specified for '{#p2}'. Maximum is {p3}.", 23 | ], 24 | [ 25 | "code" => 1506, 26 | "symbol" => "ER_FOREIGN_KEY_ON_PARTITIONED", 27 | "sql_state" => "HY000", 28 | "template" => "Foreign keys are not yet supported in conjunction with partitioning", 29 | ], 30 | [ 31 | "code" => 1584, 32 | "symbol" => "ER_WRONG_PARAMETERS_TO_STORED_FCT", 33 | "sql_state" => "42000", 34 | "template" => "Incorrect parameters in the call to stored function {#p1}", 35 | ], 36 | [ 37 | "code" => 1777, 38 | "symbol" => "ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF", 39 | "sql_state" => "HY000", 40 | "template" => "CHANGE MASTER TO MASTER_AUTO_POSITION = 1 cannot be executed because @@GLOBAL.GTID_MODE = OFF.", 41 | ], 42 | [ 43 | "code" => 1778, 44 | "symbol" => "ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET", 45 | "sql_state" => "HY000", 46 | "template" => "Cannot execute statements with implicit commit inside a transaction when @@SESSION.GTID_NEXT == 'UUID:NUMBER'.", 47 | ], 48 | [ 49 | "code" => 1779, 50 | "symbol" => "ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON", 51 | "sql_state" => "HY000", 52 | "template" => "GTID_MODE = ON requires ENFORCE_GTID_CONSISTENCY = ON.", 53 | ], 54 | [ 55 | "code" => 1780, 56 | "symbol" => "ER_GTID_MODE_REQUIRES_BINLOG", 57 | "sql_state" => "HY000", 58 | "template" => "@@GLOBAL.GTID_MODE = ON or ON_PERMISSIVE or OFF_PERMISSIVE requires --log-bin and --log-slave-updates.", 59 | ], 60 | [ 61 | "code" => 1784, 62 | "symbol" => "ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF__UNUSED", 63 | "sql_state" => "HY000", 64 | "template" => "Found a Gtid_log_event when @@GLOBAL.GTID_MODE = OFF.", 65 | ], 66 | [ 67 | "code" => 1785, 68 | "symbol" => "ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE", 69 | "sql_state" => "HY000", 70 | "template" => "Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.", 71 | ], 72 | [ 73 | "code" => 1786, 74 | "symbol" => "ER_GTID_UNSAFE_CREATE_SELECT", 75 | "sql_state" => "HY000", 76 | "template" => "Statement violates GTID consistency: CREATE TABLE ... SELECT.", 77 | ], 78 | [ 79 | "code" => 1787, 80 | "symbol" => "ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION", 81 | "sql_state" => "HY000", 82 | "template" => "Statement violates GTID consistency: CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can only be executed outside transactional context. These statements are also not allowed in a function or trigger because functions and triggers are also considered to be multi-statement transactions.", 83 | ], 84 | [ 85 | "code" => 1788, 86 | "symbol" => "ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME", 87 | "sql_state" => "HY000", 88 | "template" => "The value of @@GLOBAL.GTID_MODE can only be changed one step at a time: OFF <-> OFF_PERMISSIVE <-> ON_PERMISSIVE <-> ON. Also note that this value must be stepped up or down simultaneously on all servers. See the Manual for instructions.", 89 | ], 90 | [ 91 | "code" => 1812, 92 | "symbol" => "ER_TABLESPACE_MISSING", 93 | "sql_state" => "HY000", 94 | "template" => "Tablespace is missing for table {#p1}.", 95 | ], 96 | [ 97 | "code" => 1813, 98 | "symbol" => "ER_TABLESPACE_EXISTS", 99 | "sql_state" => "HY000", 100 | "template" => "Tablespace '{#p1}' exists.", 101 | ], 102 | [ 103 | "code" => 1816, 104 | "symbol" => "ER_INNODB_IMPORT_ERROR", 105 | "sql_state" => "HY000", 106 | "template" => "ALTER TABLE {#p1} IMPORT TABLESPACE failed with error {p2} : '{#p3}'", 107 | ], 108 | [ 109 | "code" => 1818, 110 | "symbol" => "ER_INVALID_YEAR_COLUMN_LENGTH", 111 | "sql_state" => "HY000", 112 | "template" => "Supports only YEAR or YEAR(4) column.", 113 | ], 114 | [ 115 | "code" => 1820, 116 | "symbol" => "ER_MUST_CHANGE_PASSWORD", 117 | "sql_state" => "HY000", 118 | "template" => "You must reset your password using ALTER USER statement before executing this statement.", 119 | ], 120 | [ 121 | "code" => 1906, 122 | "symbol" => "ER_SLAVE_IO_THREAD_MUST_STOP", 123 | "sql_state" => "HY000", 124 | "template" => "This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD first.", 125 | ], 126 | [ 127 | "code" => 3000, 128 | "symbol" => "ER_FILE_CORRUPT", 129 | "sql_state" => "HY000", 130 | "template" => "File {#p1} is corrupted", 131 | ], 132 | [ 133 | "code" => 3001, 134 | "symbol" => "ER_ERROR_ON_MASTER", 135 | "sql_state" => "HY000", 136 | "template" => "Query partially completed on the master (error on master: {p1}) and was aborted. There is a chance that your master is inconsistent at this point. If you are sure that your master is ok, run this query manually on the slave and then restart the slave with SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;. Query:'{#p2}'", 137 | ], 138 | [ 139 | "code" => 3002, 140 | "symbol" => "ER_INCONSISTENT_ERROR", 141 | "sql_state" => "HY000", 142 | "template" => "Query caused different errors on master and slave. Error on master: message (format)='{#p1}' error code={p2}; Error on slave:actual message='{#p3}', error code={p4}. Default database:'{#p5}'. Query:'{#p6}'", 143 | ], 144 | [ 145 | "code" => 3003, 146 | "symbol" => "ER_STORAGE_ENGINE_NOT_LOADED", 147 | "sql_state" => "HY000", 148 | "template" => "Storage engine for table '{#p1}'.'{#p2}' is not loaded.", 149 | ], 150 | [ 151 | "code" => 3004, 152 | "symbol" => "ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER", 153 | "sql_state" => "0Z002", 154 | "template" => "GET STACKED DIAGNOSTICS when handler not active", 155 | ], 156 | [ 157 | "code" => 3006, 158 | "symbol" => "ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN", 159 | "sql_state" => "HY000", 160 | "template" => "Statement is unsafe because it uses a fulltext parser plugin which may not return the same value on the slave.", 161 | ], 162 | [ 163 | "code" => 3007, 164 | "symbol" => "ER_CANNOT_DISCARD_TEMPORARY_TABLE", 165 | "sql_state" => "HY000", 166 | "template" => "Cannot DISCARD/IMPORT tablespace associated with temporary table", 167 | ], 168 | [ 169 | "code" => 3008, 170 | "symbol" => "ER_FK_DEPTH_EXCEEDED", 171 | "sql_state" => "HY000", 172 | "template" => "Foreign key cascade delete/update exceeds max depth of {p1}.", 173 | ], 174 | [ 175 | "code" => 3009, 176 | "symbol" => "ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2", 177 | "sql_state" => "HY000", 178 | "template" => "Column count of {#p1}.{#p2} is wrong. Expected {p3}, found {p4}. Created with MySQL {p5}, now running {p6}. Please use mysql_upgrade to fix this error.", 179 | ], 180 | [ 181 | "code" => 3010, 182 | "symbol" => "ER_WARN_TRIGGER_DOESNT_HAVE_CREATED", 183 | "sql_state" => "HY000", 184 | "template" => "Trigger {#p1}.{#p2}.{#p3} does not have CREATED attribute.", 185 | ], 186 | [ 187 | "code" => 3011, 188 | "symbol" => "ER_REFERENCED_TRG_DOES_NOT_EXIST", 189 | "sql_state" => "HY000", 190 | "template" => "Referenced trigger '{#p1}' for the given action time and event type does not exist.", 191 | ], 192 | [ 193 | "code" => 3012, 194 | "symbol" => "ER_EXPLAIN_NOT_SUPPORTED", 195 | "sql_state" => "HY000", 196 | "template" => "EXPLAIN FOR CONNECTION command is supported only for SELECT/UPDATE/INSERT/DELETE/REPLACE", 197 | ], 198 | [ 199 | "code" => 3013, 200 | "symbol" => "ER_INVALID_FIELD_SIZE", 201 | "sql_state" => "HY000", 202 | "template" => "Invalid size for column '{#p1}'.", 203 | ], 204 | [ 205 | "code" => 3014, 206 | "symbol" => "ER_MISSING_HA_CREATE_OPTION", 207 | "sql_state" => "HY000", 208 | "template" => "Table storage engine '{#p1}' found required create option missing", 209 | ], 210 | [ 211 | "code" => 3015, 212 | "symbol" => "ER_ENGINE_OUT_OF_MEMORY", 213 | "sql_state" => "HY000", 214 | "template" => "Out of memory in storage engine '{#p1}'.", 215 | ], 216 | [ 217 | "code" => 3016, 218 | "symbol" => "ER_PASSWORD_EXPIRE_ANONYMOUS_USER", 219 | "sql_state" => "HY000", 220 | "template" => "The password for anonymous user cannot be expired.", 221 | ], 222 | [ 223 | "code" => 3017, 224 | "symbol" => "ER_SLAVE_SQL_THREAD_MUST_STOP", 225 | "sql_state" => "HY000", 226 | "template" => "This operation cannot be performed with a running slave sql thread; run STOP SLAVE SQL_THREAD first", 227 | ], 228 | [ 229 | "code" => 3018, 230 | "symbol" => "ER_NO_FT_MATERIALIZED_SUBQUERY", 231 | "sql_state" => "HY000", 232 | "template" => "Cannot create FULLTEXT index on materialized subquery", 233 | ], 234 | [ 235 | "code" => 3019, 236 | "symbol" => "ER_INNODB_UNDO_LOG_FULL", 237 | "sql_state" => "HY000", 238 | "template" => "Undo Log error: {#p1}", 239 | ], 240 | [ 241 | "code" => 3020, 242 | "symbol" => "ER_INVALID_ARGUMENT_FOR_LOGARITHM", 243 | "sql_state" => "2201E", 244 | "template" => "Invalid argument for logarithm", 245 | ], 246 | [ 247 | "code" => 3021, 248 | "symbol" => "ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP", 249 | "sql_state" => "HY000", 250 | "template" => "This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '{#p1}' first.", 251 | ], 252 | [ 253 | "code" => 3022, 254 | "symbol" => "ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO", 255 | "sql_state" => "HY000", 256 | "template" => "This operation may not be safe when the slave has temporary tables. The tables will be kept open until the server restarts or until the tables are deleted by any replicated DROP statement. Suggest to wait until slave_open_temp_tables = 0.", 257 | ], 258 | [ 259 | "code" => 3023, 260 | "symbol" => "ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS", 261 | "sql_state" => "HY000", 262 | "template" => "CHANGE MASTER TO with a MASTER_LOG_FILE clause but no MASTER_LOG_POS clause may not be safe. The old position value may not be valid for the new binary log file.", 263 | ], 264 | [ 265 | "code" => 3024, 266 | "symbol" => "ER_QUERY_TIMEOUT", 267 | "sql_state" => "HY000", 268 | "template" => "Query execution was interrupted, maximum statement execution time exceeded", 269 | ], 270 | [ 271 | "code" => 3025, 272 | "symbol" => "ER_NON_RO_SELECT_DISABLE_TIMER", 273 | "sql_state" => "HY000", 274 | "template" => "Select is not a read only statement, disabling timer", 275 | ], 276 | [ 277 | "code" => 3026, 278 | "symbol" => "ER_DUP_LIST_ENTRY", 279 | "sql_state" => "HY000", 280 | "template" => "Duplicate entry '{#p1}'.", 281 | ], 282 | [ 283 | "code" => 3027, 284 | "symbol" => "ER_SQL_MODE_NO_EFFECT", 285 | "sql_state" => "HY000", 286 | "template" => "'{#p1}' mode no longer has any effect. Use STRICT_ALL_TABLES or STRICT_TRANS_TABLES instead.", 287 | ], 288 | [ 289 | "code" => 3028, 290 | "symbol" => "ER_AGGREGATE_ORDER_FOR_UNION", 291 | "sql_state" => "HY000", 292 | "template" => "Expression #{p1} of ORDER BY contains aggregate function and applies to a UNION", 293 | ], 294 | [ 295 | "code" => 3029, 296 | "symbol" => "ER_AGGREGATE_ORDER_NON_AGG_QUERY", 297 | "sql_state" => "HY000", 298 | "template" => "Expression #{p1} of ORDER BY contains aggregate function and applies to the result of a non-aggregated query", 299 | ], 300 | [ 301 | "code" => 3030, 302 | "symbol" => "ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR", 303 | "sql_state" => "HY000", 304 | "template" => "Slave worker has stopped after at least one previous worker encountered an error when slave-preserve-commit-order was enabled. To preserve commit order, the last transaction executed by this thread has not been committed. When restarting the slave after fixing any failed threads, you should fix this worker as well.", 305 | ], 306 | [ 307 | "code" => 3031, 308 | "symbol" => "ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER", 309 | "sql_state" => "HY000", 310 | "template" => "slave_preserve_commit_order is not supported {#p1}.", 311 | ], 312 | [ 313 | "code" => 3032, 314 | "symbol" => "ER_SERVER_OFFLINE_MODE", 315 | "sql_state" => "HY000", 316 | "template" => "The server is currently in offline mode", 317 | ], 318 | [ 319 | "code" => 3033, 320 | "symbol" => "ER_GIS_DIFFERENT_SRIDS", 321 | "sql_state" => "HY000", 322 | "template" => "Binary geometry function {#p1} given two geometries of different srids: {p2} and {p3}, which should have been identical.", 323 | ], 324 | [ 325 | "code" => 3034, 326 | "symbol" => "ER_GIS_UNSUPPORTED_ARGUMENT", 327 | "sql_state" => "HY000", 328 | "template" => "Calling geometry function {#p1} with unsupported types of arguments.", 329 | ], 330 | [ 331 | "code" => 3035, 332 | "symbol" => "ER_GIS_UNKNOWN_ERROR", 333 | "sql_state" => "HY000", 334 | "template" => "Unknown GIS error occured in function {#p1}.", 335 | ], 336 | [ 337 | "code" => 3036, 338 | "symbol" => "ER_GIS_UNKNOWN_EXCEPTION", 339 | "sql_state" => "HY000", 340 | "template" => "Unknown exception caught in GIS function {#p1}.", 341 | ], 342 | [ 343 | "code" => 3037, 344 | "symbol" => "ER_GIS_INVALID_DATA", 345 | "sql_state" => "22023", 346 | "template" => "Invalid GIS data provided to function {#p1}.", 347 | ], 348 | [ 349 | "code" => 3038, 350 | "symbol" => "ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION", 351 | "sql_state" => "HY000", 352 | "template" => "The geometry has no data in function {#p1}.", 353 | ], 354 | [ 355 | "code" => 3039, 356 | "symbol" => "ER_BOOST_GEOMETRY_CENTROID_EXCEPTION", 357 | "sql_state" => "HY000", 358 | "template" => "Unable to calculate centroid because geometry is empty in function {#p1}.", 359 | ], 360 | [ 361 | "code" => 3040, 362 | "symbol" => "ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION", 363 | "sql_state" => "HY000", 364 | "template" => "Geometry overlay calculation error: geometry data is invalid in function {#p1}.", 365 | ], 366 | [ 367 | "code" => 3041, 368 | "symbol" => "ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION", 369 | "sql_state" => "HY000", 370 | "template" => "Geometry turn info calculation error: geometry data is invalid in function {#p1}.", 371 | ], 372 | [ 373 | "code" => 3042, 374 | "symbol" => "ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION", 375 | "sql_state" => "HY000", 376 | "template" => "Analysis procedures of intersection points interrupted unexpectedly in function {#p1}.", 377 | ], 378 | [ 379 | "code" => 3043, 380 | "symbol" => "ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION", 381 | "sql_state" => "HY000", 382 | "template" => "Unknown exception thrown in function {#p1}.", 383 | ], 384 | [ 385 | "code" => 3044, 386 | "symbol" => "ER_STD_BAD_ALLOC_ERROR", 387 | "sql_state" => "HY000", 388 | "template" => "Memory allocation error: {#p1} in function {#p2}.", 389 | ], 390 | [ 391 | "code" => 3045, 392 | "symbol" => "ER_STD_DOMAIN_ERROR", 393 | "sql_state" => "HY000", 394 | "template" => "Domain error: {#p1} in function {#p2}.", 395 | ], 396 | [ 397 | "code" => 3046, 398 | "symbol" => "ER_STD_LENGTH_ERROR", 399 | "sql_state" => "HY000", 400 | "template" => "Length error: {#p1} in function {#p2}.", 401 | ], 402 | [ 403 | "code" => 3047, 404 | "symbol" => "ER_STD_INVALID_ARGUMENT", 405 | "sql_state" => "HY000", 406 | "template" => "Invalid argument error: {#p1} in function {#p2}.", 407 | ], 408 | [ 409 | "code" => 3048, 410 | "symbol" => "ER_STD_OUT_OF_RANGE_ERROR", 411 | "sql_state" => "HY000", 412 | "template" => "Out of range error: {#p1} in function {#p2}.", 413 | ], 414 | [ 415 | "code" => 3049, 416 | "symbol" => "ER_STD_OVERFLOW_ERROR", 417 | "sql_state" => "HY000", 418 | "template" => "Overflow error error: {#p1} in function {#p2}.", 419 | ], 420 | [ 421 | "code" => 3050, 422 | "symbol" => "ER_STD_RANGE_ERROR", 423 | "sql_state" => "HY000", 424 | "template" => "Range error: {#p1} in function {#p2}.", 425 | ], 426 | [ 427 | "code" => 3051, 428 | "symbol" => "ER_STD_UNDERFLOW_ERROR", 429 | "sql_state" => "HY000", 430 | "template" => "Underflow error: {#p1} in function {#p2}.", 431 | ], 432 | [ 433 | "code" => 3052, 434 | "symbol" => "ER_STD_LOGIC_ERROR", 435 | "sql_state" => "HY000", 436 | "template" => "Logic error: {#p1} in function {#p2}.", 437 | ], 438 | [ 439 | "code" => 3053, 440 | "symbol" => "ER_STD_RUNTIME_ERROR", 441 | "sql_state" => "HY000", 442 | "template" => "Runtime error: {#p1} in function {#p2}.", 443 | ], 444 | [ 445 | "code" => 3054, 446 | "symbol" => "ER_STD_UNKNOWN_EXCEPTION", 447 | "sql_state" => "HY000", 448 | "template" => "Unknown exception: {#p1} in function {#p2}.", 449 | ], 450 | [ 451 | "code" => 3055, 452 | "symbol" => "ER_GIS_DATA_WRONG_ENDIANESS", 453 | "sql_state" => "HY000", 454 | "template" => "Geometry byte string must be little endian.", 455 | ], 456 | [ 457 | "code" => 3056, 458 | "symbol" => "ER_CHANGE_MASTER_PASSWORD_LENGTH", 459 | "sql_state" => "HY000", 460 | "template" => "The password provided for the replication user exceeds the maximum length of 32 characters", 461 | ], 462 | [ 463 | "code" => 3057, 464 | "symbol" => "ER_USER_LOCK_WRONG_NAME", 465 | "sql_state" => "42000", 466 | "template" => "Incorrect user-level lock name '{#p1}'.", 467 | ], 468 | [ 469 | "code" => 3058, 470 | "symbol" => "ER_USER_LOCK_DEADLOCK", 471 | "sql_state" => "HY000", 472 | "template" => "Deadlock found when trying to get user-level lock; try rolling back transaction/releasing locks and restarting lock acquisition.", 473 | ], 474 | [ 475 | "code" => 3059, 476 | "symbol" => "ER_REPLACE_INACCESSIBLE_ROWS", 477 | "sql_state" => "HY000", 478 | "template" => "REPLACE cannot be executed as it requires deleting rows that are not in the view", 479 | ], 480 | [ 481 | "code" => 3060, 482 | "symbol" => "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS", 483 | "sql_state" => "HY000", 484 | "template" => "Do not support online operation on table with GIS index", 485 | ], 486 | [ 487 | "code" => 3061, 488 | "symbol" => "ER_ILLEGAL_USER_VAR", 489 | "sql_state" => "42000", 490 | "template" => "User variable name '{#p1}' is illegal", 491 | ], 492 | [ 493 | "code" => 3062, 494 | "symbol" => "ER_GTID_MODE_OFF", 495 | "sql_state" => "HY000", 496 | "template" => "Cannot {#p1} when GTID_MODE = OFF.", 497 | ], 498 | [ 499 | "code" => 3063, 500 | "symbol" => "ER_UNSUPPORTED_BY_REPLICATION_THREAD", 501 | "sql_state" => "HY000", 502 | "template" => "Cannot {#p1} from a replication slave thread.", 503 | ], 504 | [ 505 | "code" => 3064, 506 | "symbol" => "ER_INCORRECT_TYPE", 507 | "sql_state" => "HY000", 508 | "template" => "Incorrect type for argument {#p1} in function {#p2}.", 509 | ], 510 | [ 511 | "code" => 3065, 512 | "symbol" => "ER_FIELD_IN_ORDER_NOT_SELECT", 513 | "sql_state" => "HY000", 514 | "template" => "Expression #{p1} of ORDER BY clause is not in SELECT list, references column '{#p2}' which is not in SELECT list; this is incompatible with {#p3}", 515 | ], 516 | [ 517 | "code" => 3066, 518 | "symbol" => "ER_AGGREGATE_IN_ORDER_NOT_SELECT", 519 | "sql_state" => "HY000", 520 | "template" => "Expression #{p1} of ORDER BY clause is not in SELECT list, contains aggregate function; this is incompatible with {#p2}", 521 | ], 522 | [ 523 | "code" => 3067, 524 | "symbol" => "ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN", 525 | "sql_state" => "HY000", 526 | "template" => "Supplied filter list contains a value which is not in the required format 'db_pattern.table_pattern'", 527 | ], 528 | [ 529 | "code" => 3068, 530 | "symbol" => "ER_NET_OK_PACKET_TOO_LARGE", 531 | "sql_state" => "08S01", 532 | "template" => "OK packet too large", 533 | ], 534 | [ 535 | "code" => 3069, 536 | "symbol" => "ER_INVALID_JSON_DATA", 537 | "sql_state" => "HY000", 538 | "template" => "Invalid JSON data provided to function {#p1}: {#p2}", 539 | ], 540 | [ 541 | "code" => 3070, 542 | "symbol" => "ER_INVALID_GEOJSON_MISSING_MEMBER", 543 | "sql_state" => "HY000", 544 | "template" => "Invalid GeoJSON data provided to function {#p1}: Missing required member '{#p2}'", 545 | ], 546 | [ 547 | "code" => 3071, 548 | "symbol" => "ER_INVALID_GEOJSON_WRONG_TYPE", 549 | "sql_state" => "HY000", 550 | "template" => "Invalid GeoJSON data provided to function {#p1}: Member '{#p2}' must be of type '{#p3}'", 551 | ], 552 | [ 553 | "code" => 3072, 554 | "symbol" => "ER_INVALID_GEOJSON_UNSPECIFIED", 555 | "sql_state" => "HY000", 556 | "template" => "Invalid GeoJSON data provided to function {#p1}", 557 | ], 558 | [ 559 | "code" => 3073, 560 | "symbol" => "ER_DIMENSION_UNSUPPORTED", 561 | "sql_state" => "HY000", 562 | "template" => "Unsupported number of coordinate dimensions in function {#p1}: Found {p2}, expected {p3}", 563 | ], 564 | [ 565 | "code" => 3074, 566 | "symbol" => "ER_SLAVE_CHANNEL_DOES_NOT_EXIST", 567 | "sql_state" => "HY000", 568 | "template" => "Slave channel '{#p1}' does not exist.", 569 | ], 570 | [ 571 | "code" => 3075, 572 | "symbol" => "ER_SLAVE_MULTIPLE_CHANNELS_HOST_PORT", 573 | "sql_state" => "HY000", 574 | "template" => "A slave channel '{#p1}' already exists for the given host and port combination.", 575 | ], 576 | [ 577 | "code" => 3076, 578 | "symbol" => "ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG", 579 | "sql_state" => "HY000", 580 | "template" => "Couldn't create channel: Channel name is either invalid or too long.", 581 | ], 582 | [ 583 | "code" => 3077, 584 | "symbol" => "ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY", 585 | "sql_state" => "HY000", 586 | "template" => "To have multiple channels, repository cannot be of type FILE; Please check the repository configuration and convert them to TABLE.", 587 | ], 588 | [ 589 | "code" => 3078, 590 | "symbol" => "ER_SLAVE_CHANNEL_DELETE", 591 | "sql_state" => "HY000", 592 | "template" => "Cannot delete slave info objects for channel '{#p1}'.", 593 | ], 594 | [ 595 | "code" => 3079, 596 | "symbol" => "ER_SLAVE_MULTIPLE_CHANNELS_CMD", 597 | "sql_state" => "HY000", 598 | "template" => "Multiple channels exist on the slave. Please provide channel name as an argument.", 599 | ], 600 | [ 601 | "code" => 3080, 602 | "symbol" => "ER_SLAVE_MAX_CHANNELS_EXCEEDED", 603 | "sql_state" => "HY000", 604 | "template" => "Maximum number of replication channels allowed exceeded.", 605 | ], 606 | [ 607 | "code" => 3081, 608 | "symbol" => "ER_SLAVE_CHANNEL_MUST_STOP", 609 | "sql_state" => "HY000", 610 | "template" => "This operation cannot be performed with running replication threads; run STOP SLAVE FOR CHANNEL '{#p1}' first", 611 | ], 612 | [ 613 | "code" => 3082, 614 | "symbol" => "ER_SLAVE_CHANNEL_NOT_RUNNING", 615 | "sql_state" => "HY000", 616 | "template" => "This operation requires running replication threads; configure slave and run START SLAVE FOR CHANNEL '{#p1}'", 617 | ], 618 | [ 619 | "code" => 3083, 620 | "symbol" => "ER_SLAVE_CHANNEL_WAS_RUNNING", 621 | "sql_state" => "HY000", 622 | "template" => "Replication thread(s) for channel '{#p1}' are already runnning.", 623 | ], 624 | [ 625 | "code" => 3084, 626 | "symbol" => "ER_SLAVE_CHANNEL_WAS_NOT_RUNNING", 627 | "sql_state" => "HY000", 628 | "template" => "Replication thread(s) for channel '{#p1}' are already stopped.", 629 | ], 630 | [ 631 | "code" => 3085, 632 | "symbol" => "ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP", 633 | "sql_state" => "HY000", 634 | "template" => "This operation cannot be performed with a running slave sql thread; run STOP SLAVE SQL_THREAD FOR CHANNEL '{#p1}' first.", 635 | ], 636 | [ 637 | "code" => 3086, 638 | "symbol" => "ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER", 639 | "sql_state" => "HY000", 640 | "template" => "When sql_slave_skip_counter > 0, it is not allowed to start more than one SQL thread by using 'START SLAVE [SQL_THREAD]'. Value of sql_slave_skip_counter can only be used by one SQL thread at a time. Please use 'START SLAVE [SQL_THREAD] FOR CHANNEL' to start the SQL thread which will use the value of sql_slave_skip_counter.", 641 | ], 642 | [ 643 | "code" => 3087, 644 | "symbol" => "ER_WRONG_FIELD_WITH_GROUP_V2", 645 | "sql_state" => "HY000", 646 | "template" => "Expression #{p1} of {#p2} is not in GROUP BY clause and contains nonaggregated column '{#p3}' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by", 647 | ], 648 | [ 649 | "code" => 3088, 650 | "symbol" => "ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2", 651 | "sql_state" => "HY000", 652 | "template" => "In aggregated query without GROUP BY, expression #{p1} of {#p2} contains nonaggregated column '{#p3}'; this is incompatible with sql_mode=only_full_group_by", 653 | ], 654 | [ 655 | "code" => 3089, 656 | "symbol" => "ER_WARN_DEPRECATED_SYSVAR_UPDATE", 657 | "sql_state" => "HY000", 658 | "template" => "Updating '{#p1}' is deprecated. It will be made read-only in a future release.", 659 | ], 660 | [ 661 | "code" => 3090, 662 | "symbol" => "ER_WARN_DEPRECATED_SQLMODE", 663 | "sql_state" => "HY000", 664 | "template" => "Changing sql mode '{#p1}' is deprecated. It will be removed in a future release.", 665 | ], 666 | [ 667 | "code" => 3091, 668 | "symbol" => "ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID", 669 | "sql_state" => "HY000", 670 | "template" => "DROP DATABASE failed; some tables may have been dropped but the database directory remains. The GTID has not been added to GTID_EXECUTED and the statement was not written to the binary log. Fix this as follows: (1) remove all files from the database directory {#p1}; (2) SET GTID_NEXT='{#p2}'; (3) DROP DATABASE `{#p3}`.", 671 | ], 672 | [ 673 | "code" => 3092, 674 | "symbol" => "ER_GROUP_REPLICATION_CONFIGURATION", 675 | "sql_state" => "HY000", 676 | "template" => "The server is not configured properly to be an active member of the group. Please see more details on error log.", 677 | ], 678 | [ 679 | "code" => 3093, 680 | "symbol" => "ER_GROUP_REPLICATION_RUNNING", 681 | "sql_state" => "HY000", 682 | "template" => "The START GROUP_REPLICATION command failed since the group is already running.", 683 | ], 684 | [ 685 | "code" => 3094, 686 | "symbol" => "ER_GROUP_REPLICATION_APPLIER_INIT_ERROR", 687 | "sql_state" => "HY000", 688 | "template" => "The START GROUP_REPLICATION command failed as the applier module failed to start.", 689 | ], 690 | [ 691 | "code" => 3095, 692 | "symbol" => "ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT", 693 | "sql_state" => "HY000", 694 | "template" => "The STOP GROUP_REPLICATION command execution is incomplete: The applier thread got the stop signal while it was busy. The applier thread will stop once the current task is complete.", 695 | ], 696 | [ 697 | "code" => 3096, 698 | "symbol" => "ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR", 699 | "sql_state" => "HY000", 700 | "template" => "The START GROUP_REPLICATION command failed as there was an error when initializing the group communication layer.", 701 | ], 702 | [ 703 | "code" => 3097, 704 | "symbol" => "ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR", 705 | "sql_state" => "HY000", 706 | "template" => "The START GROUP_REPLICATION command failed as there was an error when joining the communication group.", 707 | ], 708 | [ 709 | "code" => 3098, 710 | "symbol" => "ER_BEFORE_DML_VALIDATION_ERROR", 711 | "sql_state" => "HY000", 712 | "template" => "The table does not comply with the requirements by an external plugin.", 713 | ], 714 | [ 715 | "code" => 3099, 716 | "symbol" => "ER_PREVENTS_VARIABLE_WITHOUT_RBR", 717 | "sql_state" => "HY000", 718 | "template" => "Cannot change the value of variable {#p1} without binary log format as ROW.", 719 | ], 720 | [ 721 | "code" => 3100, 722 | "symbol" => "ER_RUN_HOOK_ERROR", 723 | "sql_state" => "HY000", 724 | "template" => "Error on observer while running replication hook '{#p1}'.", 725 | ], 726 | [ 727 | "code" => 3101, 728 | "symbol" => "ER_TRANSACTION_ROLLBACK_DURING_COMMIT", 729 | "sql_state" => "HY000", 730 | "template" => "Plugin instructed the server to rollback the current transaction.", 731 | ], 732 | [ 733 | "code" => 3102, 734 | "symbol" => "ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED", 735 | "sql_state" => "HY000", 736 | "template" => "Expression of generated column '{#p1}' contains a disallowed function.", 737 | ], 738 | [ 739 | "code" => 3103, 740 | "symbol" => "ER_KEY_BASED_ON_GENERATED_COLUMN", 741 | "sql_state" => "HY000", 742 | "template" => "Key/Index cannot be defined on a virtual generated column.", 743 | ], 744 | [ 745 | "code" => 3103, 746 | "symbol" => "ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN", 747 | "sql_state" => "HY000", 748 | "template" => "INPLACE ADD or DROP of virtual columns cannot be combined with other ALTER TABLE actions", 749 | ], 750 | [ 751 | "code" => 3104, 752 | "symbol" => "ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN", 753 | "sql_state" => "HY000", 754 | "template" => "Cannot define foreign key with {#p1} clause on a generated column.", 755 | ], 756 | [ 757 | "code" => 3105, 758 | "symbol" => "ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN", 759 | "sql_state" => "HY000", 760 | "template" => "The value specified for generated column '{#p1}' in table '{#p2}' is not allowed.", 761 | ], 762 | [ 763 | "code" => 3106, 764 | "symbol" => "ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN", 765 | "sql_state" => "HY000", 766 | "template" => "'{#p1}' is not supported for generated columns.", 767 | ], 768 | [ 769 | "code" => 3107, 770 | "symbol" => "ER_GENERATED_COLUMN_NON_PRIOR", 771 | "sql_state" => "HY000", 772 | "template" => "Generated column can refer only to generated columns defined prior to it.", 773 | ], 774 | [ 775 | "code" => 3108, 776 | "symbol" => "ER_DEPENDENT_BY_GENERATED_COLUMN", 777 | "sql_state" => "HY000", 778 | "template" => "Column '{#p1}' has a generated column dependency.", 779 | ], 780 | [ 781 | "code" => 3109, 782 | "symbol" => "ER_GENERATED_COLUMN_REF_AUTO_INC", 783 | "sql_state" => "HY000", 784 | "template" => "Generated column '{#p1}' cannot refer to auto-increment column.", 785 | ], 786 | [ 787 | "code" => 3110, 788 | "symbol" => "ER_FEATURE_NOT_AVAILABLE", 789 | "sql_state" => "HY000", 790 | "template" => "The '{#p1}' feature is not available; you need to remove '{#p2}' or use MySQL built with '{#p3}'", 791 | ], 792 | [ 793 | "code" => 3111, 794 | "symbol" => "ER_CANT_SET_GTID_MODE", 795 | "sql_state" => "HY000", 796 | "template" => "SET @@GLOBAL.GTID_MODE = {#p1} is not allowed because {#p2}.", 797 | ], 798 | [ 799 | "code" => 3112, 800 | "symbol" => "ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF", 801 | "sql_state" => "HY000", 802 | "template" => "The replication receiver thread{#p1} cannot start in AUTO_POSITION mode: this server uses @@GLOBAL.GTID_MODE = OFF.", 803 | ], 804 | [ 805 | "code" => 3113, 806 | "symbol" => "ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION", 807 | "sql_state" => "HY000", 808 | "template" => "Cannot replicate anonymous transaction when AUTO_POSITION = 1, at file {file}, position {position}.", 809 | ], 810 | [ 811 | "code" => 3114, 812 | "symbol" => "ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON", 813 | "sql_state" => "HY000", 814 | "template" => "Cannot replicate anonymous transaction when @@GLOBAL.GTID_MODE = ON, at file {file}, position {position}.", 815 | ], 816 | [ 817 | "code" => 3115, 818 | "symbol" => "ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF", 819 | "sql_state" => "HY000", 820 | "template" => "Cannot replicate GTID-transaction when @@GLOBAL.GTID_MODE = OFF, at file {file}, position {position}.", 821 | ], 822 | [ 823 | "code" => 3116, 824 | "symbol" => "ER_CANT_SET_ENFORCE_GTID_CONSISTENCY_ON_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS", 825 | "sql_state" => "HY000", 826 | "template" => "Cannot set ENFORCE_GTID_CONSISTENCY = ON because there are ongoing transactions that violate GTID consistency.", 827 | ], 828 | [ 829 | "code" => 3117, 830 | "symbol" => "ER_SET_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TRANSACTIONS", 831 | "sql_state" => "HY000", 832 | "template" => "There are ongoing transactions that violate GTID consistency.", 833 | ], 834 | [ 835 | "code" => 3118, 836 | "symbol" => "ER_ACCOUNT_HAS_BEEN_LOCKED", 837 | "sql_state" => "HY000", 838 | "template" => "Access denied for user '{#p1}'@'{#p2}'. Account is locked.", 839 | ], 840 | [ 841 | "code" => 3119, 842 | "symbol" => "ER_WRONG_TABLESPACE_NAME", 843 | "sql_state" => "42000", 844 | "template" => "Incorrect tablespace name `{#p1}`", 845 | ], 846 | [ 847 | "code" => 3120, 848 | "symbol" => "ER_TABLESPACE_IS_NOT_EMPTY", 849 | "sql_state" => "HY000", 850 | "template" => "Tablespace `{#p1}` is not empty.", 851 | ], 852 | [ 853 | "code" => 3121, 854 | "symbol" => "ER_WRONG_FILE_NAME", 855 | "sql_state" => "HY000", 856 | "template" => "Incorrect File Name '{#p1}'.", 857 | ], 858 | [ 859 | "code" => 3122, 860 | "symbol" => "ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION", 861 | "sql_state" => "HY000", 862 | "template" => "Inconsistent intersection points.", 863 | ], 864 | [ 865 | "code" => 3123, 866 | "symbol" => "ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR", 867 | "sql_state" => "HY000", 868 | "template" => "Optimizer hint syntax error", 869 | ], 870 | [ 871 | "code" => 3124, 872 | "symbol" => "ER_WARN_BAD_MAX_EXECUTION_TIME", 873 | "sql_state" => "HY000", 874 | "template" => "Unsupported MAX_EXECUTION_TIME", 875 | ], 876 | [ 877 | "code" => 3125, 878 | "symbol" => "ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME", 879 | "sql_state" => "HY000", 880 | "template" => "MAX_EXECUTION_TIME hint is supported by top-level standalone SELECT statements only", 881 | ], 882 | [ 883 | "code" => 3126, 884 | "symbol" => "ER_WARN_CONFLICTING_HINT", 885 | "sql_state" => "HY000", 886 | "template" => "Hint {#p1} is ignored as conflicting/duplicated", 887 | ], 888 | [ 889 | "code" => 3127, 890 | "symbol" => "ER_WARN_UNKNOWN_QB_NAME", 891 | "sql_state" => "HY000", 892 | "template" => "Query block name {#p1} is not found for {#p2} hint", 893 | ], 894 | [ 895 | "code" => 3128, 896 | "symbol" => "ER_UNRESOLVED_HINT_NAME", 897 | "sql_state" => "HY000", 898 | "template" => "Unresolved name {#p1} for {#p2} hint", 899 | ], 900 | [ 901 | "code" => 3129, 902 | "symbol" => "ER_WARN_DEPRECATED_SQLMODE_UNSET", 903 | "sql_state" => "HY000", 904 | "template" => "Unsetting sql mode '{#p1}' is deprecated. It will be made read-only in a future release.", 905 | ], 906 | [ 907 | "code" => 3129, 908 | "symbol" => "ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE", 909 | "sql_state" => "HY000", 910 | "template" => "Please do not modify the {#p1} table. This is a mysql internal system table to store GTIDs for committed transactions. Modifying it can lead to an inconsistent GTID state.", 911 | ], 912 | [ 913 | "code" => 3130, 914 | "symbol" => "ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED", 915 | "sql_state" => "HY000", 916 | "template" => "Command not supported by pluggable protocols", 917 | ], 918 | [ 919 | "code" => 3131, 920 | "symbol" => "ER_LOCKING_SERVICE_WRONG_NAME", 921 | "sql_state" => "42000", 922 | "template" => "Incorrect locking service lock name '{#p1}'.", 923 | ], 924 | [ 925 | "code" => 3132, 926 | "symbol" => "ER_LOCKING_SERVICE_DEADLOCK", 927 | "sql_state" => "HY000", 928 | "template" => "Deadlock found when trying to get locking service lock; try releasing locks and restarting lock acquisition.", 929 | ], 930 | [ 931 | "code" => 3133, 932 | "symbol" => "ER_LOCKING_SERVICE_TIMEOUT", 933 | "sql_state" => "HY000", 934 | "template" => "Service lock wait timeout exceeded.", 935 | ], 936 | [ 937 | "code" => 3134, 938 | "symbol" => "ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED", 939 | "sql_state" => "HY000", 940 | "template" => "Parameter {#p1} exceeds the maximum number of points in a geometry ({p2}) in function {#p3}.", 941 | ], 942 | [ 943 | "code" => 3135, 944 | "symbol" => "ER_SQL_MODE_MERGED", 945 | "sql_state" => "HY000", 946 | "template" => "'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.", 947 | ], 948 | [ 949 | "code" => 3136, 950 | "symbol" => "ER_VTOKEN_PLUGIN_TOKEN_MISMATCH", 951 | "sql_state" => "HY000", 952 | "template" => "Version token mismatch for {#p1}. Correct value {#value}", 953 | ], 954 | [ 955 | "code" => 3137, 956 | "symbol" => "ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND", 957 | "sql_state" => "HY000", 958 | "template" => "Version token {#token} not found.", 959 | ], 960 | [ 961 | "code" => 3138, 962 | "symbol" => "ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID", 963 | "sql_state" => "HY000", 964 | "template" => "Variable {#p1} cannot be changed by a client that owns a GTID. The client owns {#p2}. Ownership is released on COMMIT or ROLLBACK.", 965 | ], 966 | [ 967 | "code" => 3139, 968 | "symbol" => "ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED", 969 | "sql_state" => "HY000", 970 | "template" => "{#p1} cannot be performed on channel '{#p2}'.", 971 | ], 972 | [ 973 | "code" => 3140, 974 | "symbol" => "ER_INVALID_JSON_TEXT", 975 | "sql_state" => "22032", 976 | "template" => "Invalid JSON text: \"{#p1}\" at position {p2} in value for column '{#p3}'.", 977 | ], 978 | [ 979 | "code" => 3141, 980 | "symbol" => "ER_INVALID_JSON_TEXT_IN_PARAM", 981 | "sql_state" => "22032", 982 | "template" => "Invalid JSON text in argument {p1} to function {#p2}: \"{#p3}\" at position {p4}.{#p5}", 983 | ], 984 | [ 985 | "code" => 3142, 986 | "symbol" => "ER_INVALID_JSON_BINARY_DATA", 987 | "sql_state" => "HY000", 988 | "template" => "The JSON binary value contains invalid data.", 989 | ], 990 | [ 991 | "code" => 3143, 992 | "symbol" => "ER_INVALID_JSON_PATH", 993 | "sql_state" => "42000", 994 | "template" => "Invalid JSON path expression. The error is around character position {p1}.{#p2}", 995 | ], 996 | [ 997 | "code" => 3144, 998 | "symbol" => "ER_INVALID_JSON_CHARSET", 999 | "sql_state" => "22032", 1000 | "template" => "Cannot create a JSON value from a string with CHARACTER SET '{#p1}'.", 1001 | ], 1002 | [ 1003 | "code" => 3145, 1004 | "symbol" => "ER_INVALID_JSON_CHARSET_IN_FUNCTION", 1005 | "sql_state" => "22032", 1006 | "template" => "Invalid JSON character data provided to function {#p1}: '{#p2}'; utf8 is required.", 1007 | ], 1008 | [ 1009 | "code" => 3146, 1010 | "symbol" => "ER_INVALID_TYPE_FOR_JSON", 1011 | "sql_state" => "22032", 1012 | "template" => "Invalid data type for JSON data in argument {p1} to function {#p2}; a JSON string or JSON type is required.", 1013 | ], 1014 | [ 1015 | "code" => 3147, 1016 | "symbol" => "ER_INVALID_CAST_TO_JSON", 1017 | "sql_state" => "22032", 1018 | "template" => "Cannot CAST value to JSON.", 1019 | ], 1020 | [ 1021 | "code" => 3148, 1022 | "symbol" => "ER_INVALID_JSON_PATH_CHARSET", 1023 | "sql_state" => "42000", 1024 | "template" => "A path expression must be encoded in the utf8 character set. The path expression '{#p1}' is encoded in character set '{#p2}'.", 1025 | ], 1026 | [ 1027 | "code" => 3149, 1028 | "symbol" => "ER_INVALID_JSON_PATH_WILDCARD", 1029 | "sql_state" => "42000", 1030 | "template" => "In this situation, path expressions may not contain the * and ** tokens.", 1031 | ], 1032 | [ 1033 | "code" => 3150, 1034 | "symbol" => "ER_JSON_VALUE_TOO_BIG", 1035 | "sql_state" => "22032", 1036 | "template" => "The JSON value is too big to be stored in a JSON column.", 1037 | ], 1038 | [ 1039 | "code" => 3151, 1040 | "symbol" => "ER_JSON_KEY_TOO_BIG", 1041 | "sql_state" => "22032", 1042 | "template" => "The JSON object contains a key name that is too long.", 1043 | ], 1044 | [ 1045 | "code" => 3152, 1046 | "symbol" => "ER_JSON_USED_AS_KEY", 1047 | "sql_state" => "42000", 1048 | "template" => "JSON column '{#p1}' cannot be used in key specification.", 1049 | ], 1050 | [ 1051 | "code" => 3153, 1052 | "symbol" => "ER_JSON_VACUOUS_PATH", 1053 | "sql_state" => "42000", 1054 | "template" => "The path expression '\$' is not allowed in this context.", 1055 | ], 1056 | [ 1057 | "code" => 3154, 1058 | "symbol" => "ER_JSON_BAD_ONE_OR_ALL_ARG", 1059 | "sql_state" => "42000", 1060 | "template" => "The oneOrAll argument to {#p1} may take these values: 'one' or 'all'.", 1061 | ], 1062 | [ 1063 | "code" => 3155, 1064 | "symbol" => "ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE", 1065 | "sql_state" => "22003", 1066 | "template" => "Out of range JSON value for CAST to {#p1}{#p2} from column {#p3} at row {p4}", 1067 | ], 1068 | [ 1069 | "code" => 3156, 1070 | "symbol" => "ER_INVALID_JSON_VALUE_FOR_CAST", 1071 | "sql_state" => "22018", 1072 | "template" => "Invalid JSON value for CAST to {#p1}{#p2} from column {#p3} at row {p4}", 1073 | ], 1074 | [ 1075 | "code" => 3157, 1076 | "symbol" => "ER_JSON_DOCUMENT_TOO_DEEP", 1077 | "sql_state" => "22032", 1078 | "template" => "The JSON document exceeds the maximum depth.", 1079 | ], 1080 | [ 1081 | "code" => 3158, 1082 | "symbol" => "ER_JSON_DOCUMENT_NULL_KEY", 1083 | "sql_state" => "22032", 1084 | "template" => "JSON documents may not contain NULL member names.", 1085 | ], 1086 | [ 1087 | "code" => 3159, 1088 | "symbol" => "ER_SECURE_TRANSPORT_REQUIRED", 1089 | "sql_state" => "HY000", 1090 | "template" => "Connections using insecure transport are prohibited while --require_secure_transport=ON.", 1091 | ], 1092 | [ 1093 | "code" => 3160, 1094 | "symbol" => "ER_NO_SECURE_TRANSPORTS_CONFIGURED", 1095 | "sql_state" => "HY000", 1096 | "template" => "No secure transports (SSL or Shared Memory) are configured, unable to set --require_secure_transport=ON.", 1097 | ], 1098 | [ 1099 | "code" => 3161, 1100 | "symbol" => "ER_DISABLED_STORAGE_ENGINE", 1101 | "sql_state" => "HY000", 1102 | "template" => "Storage engine {#p1} is disabled (Table creation is disallowed).", 1103 | ], 1104 | [ 1105 | "code" => 3162, 1106 | "symbol" => "ER_USER_DOES_NOT_EXIST", 1107 | "sql_state" => "HY000", 1108 | "template" => "User {#p1} does not exist.", 1109 | ], 1110 | [ 1111 | "code" => 3163, 1112 | "symbol" => "ER_USER_ALREADY_EXISTS", 1113 | "sql_state" => "HY000", 1114 | "template" => "User {#p1} already exists.", 1115 | ], 1116 | [ 1117 | "code" => 3164, 1118 | "symbol" => "ER_AUDIT_API_ABORT", 1119 | "sql_state" => "HY000", 1120 | "template" => "Aborted by Audit API ('{#p1}';{p2}).", 1121 | ], 1122 | [ 1123 | "code" => 3165, 1124 | "symbol" => "ER_INVALID_JSON_PATH_ARRAY_CELL", 1125 | "sql_state" => "42000", 1126 | "template" => "A path expression is not a path to a cell in an array.", 1127 | ], 1128 | [ 1129 | "code" => 3166, 1130 | "symbol" => "ER_BUFPOOL_RESIZE_INPROGRESS", 1131 | "sql_state" => "HY000", 1132 | "template" => "Another buffer pool resize is already in progress.", 1133 | ], 1134 | [ 1135 | "code" => 3167, 1136 | "symbol" => "ER_FEATURE_DISABLED_SEE_DOC", 1137 | "sql_state" => "HY000", 1138 | "template" => "The '{#p1}' feature is disabled; see the documentation for '{#p2}'", 1139 | ], 1140 | [ 1141 | "code" => 3168, 1142 | "symbol" => "ER_SERVER_ISNT_AVAILABLE", 1143 | "sql_state" => "HY000", 1144 | "template" => "Server isn't available", 1145 | ], 1146 | [ 1147 | "code" => 3169, 1148 | "symbol" => "ER_SESSION_WAS_KILLED", 1149 | "sql_state" => "HY000", 1150 | "template" => "Session was killed", 1151 | ], 1152 | [ 1153 | "code" => 3170, 1154 | "symbol" => "ER_CAPACITY_EXCEEDED", 1155 | "sql_state" => "HY000", 1156 | "template" => "Memory capacity of {bytes} bytes for '{#param}' exceeded. {#message}", 1157 | ], 1158 | [ 1159 | "code" => 3171, 1160 | "symbol" => "ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER", 1161 | "sql_state" => "HY000", 1162 | "template" => "Range optimization was not done for this query.", 1163 | ], 1164 | [ 1165 | "code" => 3172, 1166 | "symbol" => "ER_TABLE_NEEDS_UPG_PART", 1167 | "sql_state" => "HY000", 1168 | "template" => "Partitioning upgrade required. Please dump/reload to fix it or do: ALTER TABLE `{#p1}`.`{#p2}` UPGRADE PARTITIONING", 1169 | ], 1170 | [ 1171 | "code" => 3173, 1172 | "symbol" => "ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID", 1173 | "sql_state" => "HY000", 1174 | "template" => "The client holds ownership of the GTID {#p1}. Therefore, WAIT_FOR_EXECUTED_GTID_SET cannot wait for this GTID.", 1175 | ], 1176 | [ 1177 | "code" => 3174, 1178 | "symbol" => "ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL", 1179 | "sql_state" => "HY000", 1180 | "template" => "Cannot add foreign key on the base column of indexed virtual column.", 1181 | ], 1182 | [ 1183 | "code" => 3175, 1184 | "symbol" => "ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT", 1185 | "sql_state" => "HY000", 1186 | "template" => "Cannot create index on virtual column whose base column has foreign constraint.", 1187 | ], 1188 | [ 1189 | "code" => 3176, 1190 | "symbol" => "ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE", 1191 | "sql_state" => "HY000", 1192 | "template" => "Please do not modify the {#p1} table with an XA transaction. This is an internal system table used to store GTIDs for committed transactions. Although modifying it can lead to an inconsistent GTID state, if neccessary you can modify it with a non-XA transaction.", 1193 | ], 1194 | [ 1195 | "code" => 3177, 1196 | "symbol" => "ER_LOCK_REFUSED_BY_ENGINE", 1197 | "sql_state" => "HY000", 1198 | "template" => "Lock acquisition refused by storage engine.", 1199 | ], 1200 | [ 1201 | "code" => 3178, 1202 | "symbol" => "ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN", 1203 | "sql_state" => "HY000", 1204 | "template" => "ADD COLUMN col...VIRTUAL, ADD INDEX(col)", 1205 | ], 1206 | [ 1207 | "code" => 3179, 1208 | "symbol" => "ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE", 1209 | "sql_state" => "HY000", 1210 | "template" => "Master key rotation is not supported by storage engine.", 1211 | ], 1212 | [ 1213 | "code" => 3180, 1214 | "symbol" => "ER_MASTER_KEY_ROTATION_ERROR_BY_SE", 1215 | "sql_state" => "HY000", 1216 | "template" => "Encryption key rotation error reported by SE: {#p1}", 1217 | ], 1218 | [ 1219 | "code" => 3181, 1220 | "symbol" => "ER_MASTER_KEY_ROTATION_BINLOG_FAILED", 1221 | "sql_state" => "HY000", 1222 | "template" => "Write to binlog failed. However, master key rotation has been completed successfully.", 1223 | ], 1224 | [ 1225 | "code" => 3182, 1226 | "symbol" => "ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE", 1227 | "sql_state" => "HY000", 1228 | "template" => "Storage engine is not available.", 1229 | ], 1230 | [ 1231 | "code" => 3183, 1232 | "symbol" => "ER_TABLESPACE_CANNOT_ENCRYPT", 1233 | "sql_state" => "HY000", 1234 | "template" => "This tablespace can't be encrypted.", 1235 | ], 1236 | [ 1237 | "code" => 3184, 1238 | "symbol" => "ER_INVALID_ENCRYPTION_OPTION", 1239 | "sql_state" => "HY000", 1240 | "template" => "Invalid encryption option.", 1241 | ], 1242 | [ 1243 | "code" => 3185, 1244 | "symbol" => "ER_CANNOT_FIND_KEY_IN_KEYRING", 1245 | "sql_state" => "HY000", 1246 | "template" => "Can't find master key from keyring, please check in the server log if a keyring plugin is loaded and initialized successfully.", 1247 | ], 1248 | [ 1249 | "code" => 3186, 1250 | "symbol" => "ER_CAPACITY_EXCEEDED_IN_PARSER", 1251 | "sql_state" => "HY000", 1252 | "template" => "Parser bailed out for this query.", 1253 | ], 1254 | [ 1255 | "code" => 3187, 1256 | "symbol" => "ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE", 1257 | "sql_state" => "HY000", 1258 | "template" => "Cannot alter encryption attribute by inplace algorithm.", 1259 | ], 1260 | [ 1261 | "code" => 3188, 1262 | "symbol" => "ER_KEYRING_UDF_KEYRING_SERVICE_ERROR", 1263 | "sql_state" => "HY000", 1264 | "template" => "Function '{#p1}' failed because underlying keyring service returned an error. Please check if a keyring plugin is installed and that provided arguments are valid for the keyring you are using.", 1265 | ], 1266 | [ 1267 | "code" => 3189, 1268 | "symbol" => "ER_USER_COLUMN_OLD_LENGTH", 1269 | "sql_state" => "HY000", 1270 | "template" => "It seems that your db schema is old. The {#p1} column is 77 characters long and should be 93 characters long. Please run mysql_upgrade.", 1271 | ], 1272 | [ 1273 | "code" => 3190, 1274 | "symbol" => "ER_CANT_RESET_MASTER", 1275 | "sql_state" => "HY000", 1276 | "template" => "RESET MASTER is not allowed because {#p1}.", 1277 | ], 1278 | [ 1279 | "code" => 3191, 1280 | "symbol" => "ER_GROUP_REPLICATION_MAX_GROUP_SIZE", 1281 | "sql_state" => "HY000", 1282 | "template" => "The START GROUP_REPLICATION command failed since the group already has 9 members.", 1283 | ], 1284 | [ 1285 | "code" => 3192, 1286 | "symbol" => "ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED", 1287 | "sql_state" => "HY000", 1288 | "template" => "Cannot add foreign key on the base column of stored column.", 1289 | ], 1290 | [ 1291 | "code" => 3193, 1292 | "symbol" => "ER_TABLE_REFERENCED", 1293 | "sql_state" => "HY000", 1294 | "template" => "Cannot complete the operation because table is referenced by another connection.", 1295 | ], 1296 | [ 1297 | "code" => 3194, 1298 | "symbol" => "ER_PARTITION_ENGINE_DEPRECATED_FOR_TABLE", 1299 | "sql_state" => "HY000", 1300 | "template" => "The partition engine, used by table '{#p1}.{#p2}', is deprecated and will be removed in a future release. Please use native partitioning instead.", 1301 | ], 1302 | [ 1303 | "code" => 3195, 1304 | "symbol" => "ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO", 1305 | "sql_state" => "01000", 1306 | "template" => "{#p1}(geometry) is deprecated and will be replaced by st_srid(geometry, 0) in a future version. Use {#p2}(st_aswkb(geometry), 0) instead.", 1307 | ], 1308 | [ 1309 | "code" => 3196, 1310 | "symbol" => "ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID", 1311 | "sql_state" => "01000", 1312 | "template" => "{#p1}(geometry, srid) is deprecated and will be replaced by st_srid(geometry, srid) in a future version. Use {#p2}(st_aswkb(geometry), srid) instead.", 1313 | ], 1314 | [ 1315 | "code" => 3197, 1316 | "symbol" => "ER_XA_RETRY", 1317 | "sql_state" => "HY000", 1318 | "template" => "The resource manager is not able to commit the transaction branch at this time. Please retry later.", 1319 | ], 1320 | [ 1321 | "code" => 3198, 1322 | "symbol" => "ER_KEYRING_AWS_UDF_AWS_KMS_ERROR", 1323 | "sql_state" => "HY000", 1324 | "template" => "Function {#p1} failed due to: {#p2}.", 1325 | ], 1326 | [ 1327 | "code" => 3199, 1328 | "symbol" => "ER_BINLOG_UNSAFE_XA", 1329 | "sql_state" => "HY000", 1330 | "template" => "Statement is unsafe because it is being used inside a XA transaction. Concurrent XA transactions may deadlock on slaves when replicated using statements.", 1331 | ], 1332 | [ 1333 | "code" => 3201, 1334 | "symbol" => "ER_KEYRING_MIGRATION_FAILURE", 1335 | "sql_state" => "HY000", 1336 | "template" => "Can not perform keyring migration : {#p1}", 1337 | ], 1338 | [ 1339 | "code" => 3202, 1340 | "symbol" => "ER_KEYRING_ACCESS_DENIED_ERROR", 1341 | "sql_state" => "42000", 1342 | "template" => "Access denied; you need {#p1} privileges for this operation", 1343 | ], 1344 | [ 1345 | "code" => 3203, 1346 | "symbol" => "ER_KEYRING_MIGRATION_STATUS", 1347 | "sql_state" => "HY000", 1348 | "template" => "Keyring migration {#p1}.", 1349 | ], 1350 | [ 1351 | "code" => 3204, 1352 | "symbol" => "ER_PLUGIN_FAILED_TO_OPEN_TABLES", 1353 | "sql_state" => "HY000", 1354 | "template" => "Failed to open the {#p1} filter tables.", 1355 | ], 1356 | [ 1357 | "code" => 3205, 1358 | "symbol" => "ER_PLUGIN_FAILED_TO_OPEN_TABLE", 1359 | "sql_state" => "HY000", 1360 | "template" => "Failed to open '{#p1}.{#p2}' {#p3} table.", 1361 | ], 1362 | [ 1363 | "code" => 3206, 1364 | "symbol" => "ER_AUDIT_LOG_NO_KEYRING_PLUGIN_INSTALLED", 1365 | "sql_state" => "HY000", 1366 | "template" => "No keyring plugin installed.", 1367 | ], 1368 | [ 1369 | "code" => 3207, 1370 | "symbol" => "ER_AUDIT_LOG_ENCRYPTION_PASSWORD_HAS_NOT_BEEN_SET", 1371 | "sql_state" => "HY000", 1372 | "template" => "Audit log encryption password has not been set; it will be generated automatically. Use audit_log_encryption_password_get to obtain the password or audit_log_encryption_password_set to set a new one.", 1373 | ], 1374 | [ 1375 | "code" => 3208, 1376 | "symbol" => "ER_AUDIT_LOG_COULD_NOT_CREATE_AES_KEY", 1377 | "sql_state" => "HY000", 1378 | "template" => "Could not create AES key. OpenSSL's EVP_BytesToKey function failed.", 1379 | ], 1380 | [ 1381 | "code" => 3209, 1382 | "symbol" => "ER_AUDIT_LOG_ENCRYPTION_PASSWORD_CANNOT_BE_FETCHED", 1383 | "sql_state" => "HY000", 1384 | "template" => "Audit log encryption password cannot be fetched from the keyring. Password used so far is used for encryption.", 1385 | ], 1386 | [ 1387 | "code" => 3210, 1388 | "symbol" => "ER_AUDIT_LOG_JSON_FILTERING_NOT_ENABLED", 1389 | "sql_state" => "HY000", 1390 | "template" => "Audit Log filtering has not been installed.", 1391 | ], 1392 | [ 1393 | "code" => 3211, 1394 | "symbol" => "ER_AUDIT_LOG_UDF_INSUFFICIENT_PRIVILEGE", 1395 | "sql_state" => "HY000", 1396 | "template" => "Request ignored for '{#p1}'@'{#p2}'. SUPER_ACL needed to perform operation", 1397 | ], 1398 | [ 1399 | "code" => 3212, 1400 | "symbol" => "ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED", 1401 | "sql_state" => "HY000", 1402 | "template" => "SUPER privilege required for '{#p1}'@'{#p2}' user.", 1403 | ], 1404 | [ 1405 | "code" => 3213, 1406 | "symbol" => "ER_COULD_NOT_REINITIALIZE_AUDIT_LOG_FILTERS", 1407 | "sql_state" => "HY000", 1408 | "template" => "Could not reinitialize audit log filters.", 1409 | ], 1410 | [ 1411 | "code" => 3214, 1412 | "symbol" => "ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_TYPE", 1413 | "sql_state" => "HY000", 1414 | "template" => "Invalid argument type", 1415 | ], 1416 | [ 1417 | "code" => 3215, 1418 | "symbol" => "ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_COUNT", 1419 | "sql_state" => "HY000", 1420 | "template" => "Invalid argument count", 1421 | ], 1422 | [ 1423 | "code" => 3216, 1424 | "symbol" => "ER_AUDIT_LOG_HAS_NOT_BEEN_INSTALLED", 1425 | "sql_state" => "HY000", 1426 | "template" => "audit_log plugin has not been installed using INSTALL PLUGIN syntax.", 1427 | ], 1428 | [ 1429 | "code" => 3217, 1430 | "symbol" => "ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_TYPE", 1431 | "sql_state" => "HY000", 1432 | "template" => "Invalid \"max_array_length\" argument type.", 1433 | ], 1434 | [ 1435 | "code" => 3218, 1436 | "symbol" => "ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_VALUE", 1437 | "sql_state" => "HY000", 1438 | "template" => "Invalid \"max_array_length\" argument value.", 1439 | ], 1440 | [ 1441 | "code" => 3220, 1442 | "symbol" => "ER_AUDIT_LOG_JSON_FILTER_NAME_CANNOT_BE_EMPTY", 1443 | "sql_state" => "HY000", 1444 | "template" => "Filter name cannot be empty.", 1445 | ], 1446 | [ 1447 | "code" => 3221, 1448 | "symbol" => "ER_AUDIT_LOG_JSON_USER_NAME_CANNOT_BE_EMPTY", 1449 | "sql_state" => "HY000", 1450 | "template" => "User cannot be empty.", 1451 | ], 1452 | [ 1453 | "code" => 3222, 1454 | "symbol" => "ER_AUDIT_LOG_JSON_FILTER_DOES_NOT_EXISTS", 1455 | "sql_state" => "HY000", 1456 | "template" => "Specified filter has not been found.", 1457 | ], 1458 | [ 1459 | "code" => 3223, 1460 | "symbol" => "ER_AUDIT_LOG_USER_FIRST_CHARACTER_MUST_BE_ALPHANUMERIC", 1461 | "sql_state" => "HY000", 1462 | "template" => "First character of the user name must be alphanumeric.", 1463 | ], 1464 | [ 1465 | "code" => 3224, 1466 | "symbol" => "ER_AUDIT_LOG_USER_NAME_INVALID_CHARACTER", 1467 | "sql_state" => "HY000", 1468 | "template" => "Invalid character in the user name.", 1469 | ], 1470 | [ 1471 | "code" => 3225, 1472 | "symbol" => "ER_AUDIT_LOG_HOST_NAME_INVALID_CHARACTER", 1473 | "sql_state" => "HY000", 1474 | "template" => "Invalid character in the host name.", 1475 | ], 1476 | [ 1477 | "code" => 3226, 1478 | "symbol" => "WARN_DEPRECATED_MAXDB_SQL_MODE_FOR_TIMESTAMP", 1479 | "sql_state" => "HY000", 1480 | "template" => "With the MAXDB SQL mode enabled, TIMESTAMP is identical with DATETIME. The MAXDB SQL mode is deprecated and will be removed in a future release. Please disable the MAXDB SQL mode and use DATETIME instead.", 1481 | ], 1482 | [ 1483 | "code" => 3227, 1484 | "symbol" => "ER_XA_REPLICATION_FILTERS", 1485 | "sql_state" => "HY000", 1486 | "template" => "The use of replication filters with XA transactions is not supported, and can lead to an undefined state in the replication slave.", 1487 | ], 1488 | [ 1489 | "code" => 3228, 1490 | "symbol" => "ER_CANT_OPEN_ERROR_LOG", 1491 | "sql_state" => "HY000", 1492 | "template" => "Could not open file '{#p1}' for error logging{#p2}{#p3}", 1493 | ], 1494 | [ 1495 | "code" => 3229, 1496 | "symbol" => "ER_GROUPING_ON_TIMESTAMP_IN_DST", 1497 | "sql_state" => "HY000", 1498 | "template" => "Grouping on temporal is non-deterministic for timezones having DST. Please consider switching to UTC for this query.", 1499 | ], 1500 | [ 1501 | "code" => 3230, 1502 | "symbol" => "ER_CANT_START_SERVER_NAMED_PIPE", 1503 | "sql_state" => "HY000", 1504 | "template" => "Can't start server : Named Pipe \"{#p1}\" already in use.", 1505 | ], 1506 | ]; 1507 | 1508 | return array_merge($previous, $new); 1509 | --------------------------------------------------------------------------------