summaryrefslogtreecommitdiff
path: root/include/sql_state.h
diff options
context:
space:
mode:
authorunknown <monty@narttu.mysql.fi>2003-06-04 18:28:51 +0300
committerunknown <monty@narttu.mysql.fi>2003-06-04 18:28:51 +0300
commitb388eb004df7112b2ae0986457fc9d01131b71ea (patch)
treef2e86edc169afb1fed9cecefdecd9f13561780c9 /include/sql_state.h
parent15b3f3a0d8c11babff0f2e4dfa81c1716bcf533d (diff)
downloadmariadb-git-b388eb004df7112b2ae0986457fc9d01131b71ea.tar.gz
Added SQLSTATE to client/server protocol
bmove_allign -> bmove_align Added OLAP function ROLLUP Split mysql_fix_privilege_tables to a script and a .sql data file Added new (MEMROOT*) functions to avoid calling current_thd() when creating some common objects. Added table_alias_charset, for easier --lower-case-table-name handling Better SQL_MODE handling (Setting complex options also sets sub options) New (faster) assembler string functions for x86 BitKeeper/etc/ignore: added libmysqld/sql_state.c client/mysql.cc: Added SQLSTATE to error messages Added new function put_error() to be able to clean up some old code. client/mysqltest.c: Write ERROR SQLSTATE for all errors dbug/dbug.c: Portability fixes include/m_string.h: Rename bmove_allign as bmove_align include/mysql.h: Added SQLSTATE (for embedded version) include/mysql_com.h: Send correct SQLSTATE for the error to the client libmysql/libmysql.c: Changed default error state to HY000 Applied code cleanup patch libmysqld/Makefile.am: Added sql_state.cc libmysqld/libmysqld.c: Added sqlstate mysql-test/r/analyse.result: Updated results mysql-test/r/ansi.result: Updated results mysql-test/r/auto_increment.result: Updated results mysql-test/r/bdb-deadlock.result: Updated results mysql-test/r/bdb.result: Updated results mysql-test/r/comments.result: Updated results mysql-test/r/create.result: Updated results mysql-test/r/ctype_collate.result: Updated results mysql-test/r/delayed.result: Updated results mysql-test/r/delete.result: Updated results mysql-test/r/derived.result: Updated results mysql-test/r/distinct.result: Updated results mysql-test/r/drop.result: Updated results mysql-test/r/err000001.result: Updated results mysql-test/r/explain.result: Updated results mysql-test/r/flush.result: Updated results mysql-test/r/fulltext.result: Updated results mysql-test/r/func_gconcat.result: Updated results mysql-test/r/func_system.result: Updated results mysql-test/r/grant_cache.result: Updated results mysql-test/r/group_by.result: Updated results mysql-test/r/handler.result: Updated results mysql-test/r/heap.result: Updated results mysql-test/r/heap_btree.result: Updated results mysql-test/r/heap_hash.result: Updated results mysql-test/r/innodb.result: Updated results mysql-test/r/innodb_handler.result: Updated results mysql-test/r/insert_select.result: Updated results mysql-test/r/insert_update.result: Updated results mysql-test/r/join.result: Updated results mysql-test/r/join_outer.result: Updated results mysql-test/r/key.result: Updated results mysql-test/r/lock.result: Updated results mysql-test/r/lock_multi.result: Updated results mysql-test/r/merge.result: Updated results mysql-test/r/multi_update.result: Updated results mysql-test/r/myisam.result: Updated results mysql-test/r/null.result: Updated results mysql-test/r/olap.result: Updated results mysql-test/r/order_by.result: Updated results mysql-test/r/packet.result: Updated results mysql-test/r/query_cache.result: Updated results mysql-test/r/row.result: Updated results mysql-test/r/rpl000001.result: Updated results mysql-test/r/rpl000009.result: Updated results mysql-test/r/rpl_empty_master_crash.result: Updated results mysql-test/r/rpl_log.result: Updated results mysql-test/r/rpl_replicate_do.result: Updated results mysql-test/r/rpl_rotate_logs.result: Updated results mysql-test/r/select.result: Updated results mysql-test/r/select_safe.result: Updated results mysql-test/r/show_check.result: Updated results mysql-test/r/sql_mode.result: Updated results mysql-test/r/subselect.result: Updated results mysql-test/r/temp_table.result: Updated results mysql-test/r/truncate.result: Updated results mysql-test/r/type_blob.result: Updated results mysql-test/r/type_decimal.result: Updated results mysql-test/r/type_float.result: Updated results mysql-test/r/type_ranges.result: Updated results mysql-test/r/union.result: Updated results mysql-test/r/update.result: Updated results mysql-test/r/user_var.result: Updated results mysql-test/r/varbinary.result: Updated results mysql-test/r/variables.result: Updated results mysql-test/t/ansi.test: Test of sql_mode mysql-test/t/derived.test: Updated results mysql-test/t/func_system.test: Make this independen of the MySQL server name mysql-test/t/lowercase_table.test: Cleanup mysql-test/t/olap.test: A lot of new tests mysql-test/t/sql_mode.test: More test for sql_mode mysql-test/t/subselect.test: Added a few new tests (to find a bug in the item_ref code) scripts/Makefile.am: Added mysql_fix_privilege_tables.sql scripts/mysql_fix_privilege_tables.sh: Totally new script. This bascily just pipes mysql_fix_privilege_tables.sql through 'mysql' to 'mysqld' sql/Makefile.am: Added sql_state.cc sql/item.cc: Extended Item_field::eq() to be able to better match GROUP BY fields on the command line. Needed for ROLLUP sql/item.h: Added function to be able to avoid calling current_thd() when doing new Item. sql/item_sum.cc: Moved copy_or_same() and some reset() functions from item_sum.h Needed to be able to access thd->mem_root. sql/item_sum.h: Moved some functions to item_sum.cc Added make_unique() for ROLLUP sql/item_uniq.h: Fixed return value sql/mysql_priv.h: Updated MODE flags sql/mysqld.cc: Added ANSI as it's own mode Moved charset_info variables here Cleaned up handler_count handling (for NT) Added table_alias_charset, for easier --lower-case-table-name handling sql/net_serv.cc: New comment sql/protocol.cc: Send SQLSTATE to client sql/set_var.cc: Better SQL_MODE handling (Setting complex options also sets sub options) sql/set_var.h: Better SQL_MODE handling sql/sql_base.cc: Make alias depend on --lower-case-table-names Make find_item_in_list also check database name sql/sql_cache.cc: Indentation cleanup sql/sql_list.h: Added safety assert Addes support of alloc without current_thd() sql/sql_prepare.cc: Update after prototype change sql/sql_select.cc: Added ROLLUP sql/sql_select.h: structures for rollup sql/sql_show.cc: Easier SQL_MODE handling sql/sql_string.cc: Move CHARSET_INFO to mysqld (to be together with all other global variables) sql/sql_string.h: Added function to be able to avoid calling current_thd() when doing new Item. sql/sql_table.cc: Simpler --lower-case-table-name handling sql/sql_union.cc: Update after prototype change sql/sql_yacc.yy: ROLLUP sql/unireg.h: bmove_allign ->bmove_align strings/Makefile.am: Fix to be able to compile str_test.c strings/ctype.c: Removed empty lines strings/str_test.c: Added test of bmove_align strings/strings-x86.s: Faster bmove_align, bmove_upp and strmake strings/strings.asm: move_allg
Diffstat (limited to 'include/sql_state.h')
-rw-r--r--include/sql_state.h164
1 files changed, 164 insertions, 0 deletions
diff --git a/include/sql_state.h b/include/sql_state.h
new file mode 100644
index 00000000000..cc0fab7bfce
--- /dev/null
+++ b/include/sql_state.h
@@ -0,0 +1,164 @@
+/* Copyright (C) 2000-2003 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+/*
+ This file includes a mapping from mysql_errno.h to sql_state (as used by
+ MyODBC) and jdbc_state.
+ It's suitable to include into a C struct for further processing
+
+ The first column is the mysqld server error (declared in mysqld_error.h),
+ the second column is the ODBC state (which the 4.1 server sends out by
+ default) and the last is the state used by the JDBC driver.
+ If the last column is "" then it means that the JDBC driver is using the
+ ODBC state
+
+ The errors in this file is sorted in the same order as in mysqld_error.h
+ to allow on to do binary searches for the sqlstate.
+*/
+
+ER_DUP_KEY, "23000", "",
+ER_OUTOFMEMORY, "HY001", "S1001",
+ER_OUT_OF_SORTMEMORY, "HY001", "S1001",
+ER_CON_COUNT_ERROR, "08004", "",
+ER_BAD_HOST_ERROR, "08S01", "",
+ER_HANDSHAKE_ERROR, "08S01", "",
+ER_DBACCESS_DENIED_ERROR, "42000", "",
+ER_ACCESS_DENIED_ERROR, "42000", "28000",
+ER_NO_DB_ERROR, "42000", "",
+ER_UNKNOWN_COM_ERROR, "08S01", "",
+ER_BAD_NULL_ERROR, "23000", "",
+ER_BAD_DB_ERROR, "42000", "",
+ER_TABLE_EXISTS_ERROR, "42S01", "",
+ER_BAD_TABLE_ERROR, "42S02", "",
+ER_NON_UNIQ_ERROR, "23000", "",
+ER_SERVER_SHUTDOWN, "08S01", "",
+ER_BAD_FIELD_ERROR, "42S22", "S0022",
+ER_WRONG_FIELD_WITH_GROUP, "42000", "S1009",
+ER_WRONG_GROUP_FIELD, "42000", "S1009",
+ER_WRONG_SUM_SELECT, "42000", "S1009",
+ER_WRONG_VALUE_COUNT, "21S01", "",
+ER_TOO_LONG_IDENT, "42000", "S1009",
+ER_DUP_FIELDNAME, "42S21", "S1009",
+ER_DUP_KEYNAME, "42000", "S1009",
+ER_DUP_ENTRY, "23000", "S1009",
+ER_WRONG_FIELD_SPEC, "42000", "S1009",
+ER_PARSE_ERROR, "42000", "",
+ER_EMPTY_QUERY, "42000" , "",
+ER_NONUNIQ_TABLE, "42000", "S1009",
+ER_INVALID_DEFAULT, "42000", "S1009",
+ER_MULTIPLE_PRI_KEY, "42000", "S1009",
+ER_TOO_MANY_KEYS, "42000", "S1009",
+ER_TOO_MANY_KEY_PARTS, "42000", "S1009",
+ER_TOO_LONG_KEY, "42000", "S1009",
+ER_KEY_COLUMN_DOES_NOT_EXITS, "42000", "S1009",
+ER_BLOB_USED_AS_KEY, "42000", "S1009",
+ER_TOO_BIG_FIELDLENGTH, "42000", "S1009",
+ER_WRONG_AUTO_KEY, "42000", "S1009",
+ER_FORCING_CLOSE, "08S01", "",
+ER_IPSOCK_ERROR, "088S01", "",
+ER_NO_SUCH_INDEX, "42S12", "S1009",
+ER_WRONG_FIELD_TERMINATORS, "42000", "S1009",
+ER_BLOBS_AND_NO_TERMINATED, "42000", "S1009",
+ER_CANT_REMOVE_ALL_FIELDS, "42000", "",
+ER_CANT_DROP_FIELD_OR_KEY, "42000", "",
+ER_BLOB_CANT_HAVE_DEFAULT, "42000", "",
+ER_WRONG_DB_NAME, "42000", "",
+ER_WRONG_TABLE_NAME, "42000", "",
+ER_TOO_BIG_SELECT, "42000", "",
+ER_UNKNOWN_PROCEDURE, "42000", "",
+ER_WRONG_PARAMCOUNT_TO_PROCEDURE, "42000", "",
+ER_UNKNOWN_TABLE, "42S02", "",
+ER_FIELD_SPECIFIED_TWICE, "42000", "",
+ER_UNSUPPORTED_EXTENSION, "42000", "",
+ER_TABLE_MUST_HAVE_COLUMNS, "42000", "",
+ER_UNKNOWN_CHARACTER_SET, "42000", "",
+ER_TOO_BIG_ROWSIZE, "42000", "",
+ER_STACK_OVERRUN, "HY000", "",
+ER_WRONG_OUTER_JOIN, "42000", "",
+ER_NULL_COLUMN_IN_INDEX, "42000", "",
+ER_PASSWORD_ANONYMOUS_USER, "42000", "",
+ER_PASSWORD_NOT_ALLOWED, "42000", "",
+ER_PASSWORD_NO_MATCH, "42000", "",
+ER_WRONG_VALUE_COUNT_ON_ROW, "21S01", "",
+ER_INVALID_USE_OF_NULL, "42000", "",
+ER_REGEXP_ERROR, "42000", "",
+ER_MIX_OF_GROUP_FUNC_AND_FIELDS,"42000", "",
+ER_NONEXISTING_GRANT, "42000", "",
+ER_TABLEACCESS_DENIED_ERROR, "42000", "",
+ER_COLUMNACCESS_DENIED_ERROR, "42000", "",
+ER_ILLEGAL_GRANT_FOR_TABLE, "42000", "",
+ER_GRANT_WRONG_HOST_OR_USER, "42000", "",
+ER_NO_SUCH_TABLE, "42S02", "",
+ER_NONEXISTING_TABLE_GRANT, "42000", "",
+ER_NOT_ALLOWED_COMMAND, "42000", "",
+ER_SYNTAX_ERROR, "42000", "",
+ER_ABORTING_CONNECTION, "08S01", "",
+ER_NET_PACKET_TOO_LARGE, "08S01", "",
+ER_NET_READ_ERROR_FROM_PIPE, "08S01", "",
+ER_NET_FCNTL_ERROR, "08S01", "",
+ER_NET_PACKETS_OUT_OF_ORDER, "08S01", "",
+ER_NET_UNCOMPRESS_ERROR, "08S01", "",
+ER_NET_READ_ERROR, "08S01", "",
+ER_NET_READ_INTERRUPTED, "08S01", "",
+ER_NET_ERROR_ON_WRITE, "08S01", "",
+ER_NET_WRITE_INTERRUPTED, "08S01", "",
+ER_TOO_LONG_STRING, "42000", "",
+ER_TABLE_CANT_HANDLE_BLOB, "42000", "",
+ER_TABLE_CANT_HANDLE_AUTO_INCREMENT, "42000", "",
+ER_WRONG_COLUMN_NAME, "42000", "",
+ER_WRONG_KEY_COLUMN, "42000", "",
+ER_DUP_UNIQUE, "23000", "",
+ER_BLOB_KEY_WITHOUT_LENGTH, "42000", "",
+ER_PRIMARY_CANT_HAVE_NULL, "42000", "",
+ER_TOO_MANY_ROWS, "42000", "",
+ER_REQUIRES_PRIMARY_KEY, "42000", "",
+ER_CHECK_NO_SUCH_TABLE, "42000", "",
+ER_CHECK_NOT_IMPLEMENTED, "42000", "",
+ER_CANT_DO_THIS_DURING_AN_TRANSACTION, "25000", "",
+ER_ERROR_DURING_COMMIT, "HY000", "",
+ER_ERROR_DURING_ROLLBACK, "HY000", "",
+ER_NEW_ABORTING_CONNECTION, "08S01", "",
+ER_MASTER_NET_READ, "08S01", "",
+ER_MASTER_NET_WRITE, "08S01", "",
+ER_TOO_MANY_USER_CONNECTIONS, "42000", "",
+ER_READ_ONLY_TRANSACTION, "25000", "",
+ER_NO_PERMISSION_TO_CREATE_USER,"42000", "",
+ER_LOCK_DEADLOCK, "40001", "",
+ER_NO_REFERENCED_ROW, "23000", "",
+ER_ROW_IS_REFERENCED, "23000", "",
+ER_CONNECT_TO_MASTER, "08S01", "",
+ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT,"21000", "",
+ER_USER_LIMIT_REACHED, "42000", "",
+ER_NO_DEFAULT, "42000", "",
+ER_WRONG_VALUE_FOR_VAR, "42000", "",
+ER_WRONG_TYPE_FOR_VAR, "42000", "",
+ER_CANT_USE_OPTION_HERE, "42000", "",
+ER_NOT_SUPPORTED_YET, "42000", "",
+ER_WRONG_FK_DEF, "42000", "",
+ER_CARDINALITY_COL, "21000", "",
+ER_SUBSELECT_NO_1_ROW, "21000", "",
+ER_ILLEGAL_REFERENCE, "42S22", "",
+ER_DERIVED_MUST_HAVE_ALIAS, "42000", "",
+ER_SELECT_REDUCED, "01000", "",
+ER_TABLENAME_NOT_ALLOWED_HERE, "42000", "",
+ER_NOT_SUPPORTED_AUTH_MODE, "08004", "",
+ER_SPATIAL_CANT_HAVE_NULL, "42000", "",
+ER_COLLATION_CHARSET_MISMATCH, "42000", "",
+ER_WARN_TOO_FEW_RECORDS, "01000", "",
+ER_WARN_TOO_MANY_RECORDS, "01000", "",
+ER_WARN_NULL_TO_NOTNULL, "01000", "",
+ER_WARN_DATA_OUT_OF_RANGE, "01000", "",
+ER_WARN_DATA_TRUNCATED, "01000", "",