diff --git a/mysql/_mysql_const/CLIENT.py b/mysql/_mysql_const/CLIENT.py new file mode 100644 index 0000000..e9150c5 --- /dev/null +++ b/mysql/_mysql_const/CLIENT.py @@ -0,0 +1,14 @@ +LONG_PASSWORD = 1 +FOUND_ROWS = 2 +LONG_FLAG = 4 +CONNECT_WITH_DB = 8 +NO_SCHEMA = 16 +COMPRESS = 32 +ODBC = 64 +LOCAL_FILES = 128 +IGNORE_SPACE = 256 +CHANGE_USER = 512 +INTERACTIVE = 1024 +SSL = 2048 +IGNORE_SIGPIPE = 4096 +TRANSACTIONS = 8196 diff --git a/mysql/_mysql_const/CR.py b/mysql/_mysql_const/CR.py new file mode 100644 index 0000000..b22b8d3 --- /dev/null +++ b/mysql/_mysql_const/CR.py @@ -0,0 +1,23 @@ +MIN_ERROR = 2000 +MAX_ERROR = 2999 +UNKNOWN_ERROR = 2000 +SOCKET_CREATE_ERROR = 2001 +CONNECTION_ERROR = 2002 +CONN_HOST_ERROR = 2003 +IPSOCK_ERROR = 2004 +UNKNOWN_HOST = 2005 +SERVER_GONE_ERROR = 2006 +VERSION_ERROR = 2007 +OUT_OF_MEMORY = 2008 +WRONG_HOST_INFO = 2009 +LOCALHOST_CONNECTION = 2010 +TCP_CONNECTION = 2011 +SERVER_HANDSHAKE_ERR = 2012 +SERVER_LOST = 2013 +COMMANDS_OUT_OF_SYNC = 2014 +NAMEDPIPE_CONNECTION = 2015 +NAMEDPIPEWAIT_ERROR = 2016 +NAMEDPIPEOPEN_ERROR = 2017 +NAMEDPIPESETSTATE_ERROR = 2018 +CANT_READ_CHARSET = 2019 +NET_PACKET_TOO_LARGE = 2020 diff --git a/mysql/_mysql_const/ER.py b/mysql/_mysql_const/ER.py new file mode 100644 index 0000000..ea1d755 --- /dev/null +++ b/mysql/_mysql_const/ER.py @@ -0,0 +1,204 @@ +HASHCHK = 1000 +NISAMCHK = 1001 +NO = 1002 +YES = 1003 +CANT_CREATE_FILE = 1004 +CANT_CREATE_TABLE = 1005 +CANT_CREATE_DB = 1006 +DB_CREATE_EXISTS = 1007 +DB_DROP_EXISTS = 1008 +DB_DROP_DELETE = 1009 +DB_DROP_RMDIR = 1010 +CANT_DELETE_FILE = 1011 +CANT_FIND_SYSTEM_REC = 1012 +CANT_GET_STAT = 1013 +CANT_GET_WD = 1014 +CANT_LOCK = 1015 +CANT_OPEN_FILE = 1016 +FILE_NOT_FOUND = 1017 +CANT_READ_DIR = 1018 +CANT_SET_WD = 1019 +CHECKREAD = 1020 +DISK_FULL = 1021 +DUP_KEY = 1022 +ERROR_ON_CLOSE = 1023 +ERROR_ON_READ = 1024 +ERROR_ON_RENAME = 1025 +ERROR_ON_WRITE = 1026 +FILE_USED = 1027 +FILSORT_ABORT = 1028 +FORM_NOT_FOUND = 1029 +GET_ERRNO = 1030 +ILLEGAL_HA = 1031 +KEY_NOT_FOUND = 1032 +NOT_FORM_FILE = 1033 +NOT_KEYFILE = 1034 +OLD_KEYFILE = 1035 +OPEN_AS_READONLY = 1036 +OUTOFMEMORY = 1037 +OUT_OF_SORTMEMORY = 1038 +UNEXPECTED_EOF = 1039 +CON_COUNT_ERROR = 1040 +OUT_OF_RESOURCES = 1041 +BAD_HOST_ERROR = 1042 +HANDSHAKE_ERROR = 1043 +DBACCESS_DENIED_ERROR = 1044 +ACCESS_DENIED_ERROR = 1045 +NO_DB_ERROR = 1046 +UNKNOWN_COM_ERROR = 1047 +BAD_NULL_ERROR = 1048 +BAD_DB_ERROR = 1049 +TABLE_EXISTS_ERROR = 1050 +BAD_TABLE_ERROR = 1051 +NON_UNIQ_ERROR = 1052 +SERVER_SHUTDOWN = 1053 +BAD_FIELD_ERROR = 1054 +WRONG_FIELD_WITH_GROUP = 1055 +WRONG_GROUP_FIELD = 1056 +WRONG_SUM_SELECT = 1057 +WRONG_VALUE_COUNT = 1058 +TOO_LONG_IDENT = 1059 +DUP_FIELDNAME = 1060 +DUP_KEYNAME = 1061 +DUP_ENTRY = 1062 +WRONG_FIELD_SPEC = 1063 +PARSE_ERROR = 1064 +EMPTY_QUERY = 1065 +NONUNIQ_TABLE = 1066 +INVALID_DEFAULT = 1067 +MULTIPLE_PRI_KEY = 1068 +TOO_MANY_KEYS = 1069 +TOO_MANY_KEY_PARTS = 1070 +TOO_LONG_KEY = 1071 +KEY_COLUMN_DOES_NOT_EXITS = 1072 +BLOB_USED_AS_KEY = 1073 +TOO_BIG_FIELDLENGTH = 1074 +WRONG_AUTO_KEY = 1075 +READY = 1076 +NORMAL_SHUTDOWN = 1077 +GOT_SIGNAL = 1078 +SHUTDOWN_COMPLETE = 1079 +FORCING_CLOSE = 1080 +IPSOCK_ERROR = 1081 +NO_SUCH_INDEX = 1082 +WRONG_FIELD_TERMINATORS = 1083 +BLOBS_AND_NO_TERMINATED = 1084 +TEXTFILE_NOT_READABLE = 1085 +FILE_EXISTS_ERROR = 1086 +LOAD_INFO = 1087 +ALTER_INFO = 1088 +WRONG_SUB_KEY = 1089 +CANT_REMOVE_ALL_FIELDS = 1090 +CANT_DROP_FIELD_OR_KEY = 1091 +INSERT_INFO = 1092 +INSERT_TABLE_USED = 1093 +NO_SUCH_THREAD = 1094 +KILL_DENIED_ERROR = 1095 +NO_TABLES_USED = 1096 +TOO_BIG_SET = 1097 +NO_UNIQUE_LOGFILE = 1098 +TABLE_NOT_LOCKED_FOR_WRITE = 1099 +TABLE_NOT_LOCKED = 1100 +BLOB_CANT_HAVE_DEFAULT = 1101 +WRONG_DB_NAME = 1102 +WRONG_TABLE_NAME = 1103 +TOO_BIG_SELECT = 1104 +UNKNOWN_ERROR = 1105 +UNKNOWN_PROCEDURE = 1106 +WRONG_PARAMCOUNT_TO_PROCEDURE = 1107 +WRONG_PARAMETERS_TO_PROCEDURE = 1108 +UNKNOWN_TABLE = 1109 +FIELD_SPECIFIED_TWICE = 1110 +INVALID_GROUP_FUNC_USE = 1111 +UNSUPPORTED_EXTENSION = 1112 +TABLE_MUST_HAVE_COLUMNS = 1113 +RECORD_FILE_FULL = 1114 +UNKNOWN_CHARACTER_SET = 1115 +TOO_MANY_TABLES = 1116 +TOO_MANY_FIELDS = 1117 +TOO_BIG_ROWSIZE = 1118 +STACK_OVERRUN = 1119 +WRONG_OUTER_JOIN = 1120 +NULL_COLUMN_IN_INDEX = 1121 +CANT_FIND_UDF = 1122 +CANT_INITIALIZE_UDF = 1123 +UDF_NO_PATHS = 1124 +UDF_EXISTS = 1125 +CANT_OPEN_LIBRARY = 1126 +CANT_FIND_DL_ENTRY = 1127 +FUNCTION_NOT_DEFINED = 1128 +HOST_IS_BLOCKED = 1129 +HOST_NOT_PRIVILEGED = 1130 +PASSWORD_ANONYMOUS_USER = 1131 +PASSWORD_NOT_ALLOWED = 1132 +PASSWORD_NO_MATCH = 1133 +UPDATE_INFO = 1134 +CANT_CREATE_THREAD = 1135 +WRONG_VALUE_COUNT_ON_ROW = 1136 +CANT_REOPEN_TABLE = 1137 +INVALID_USE_OF_NULL = 1138 +REGEXP_ERROR = 1139 +MIX_OF_GROUP_FUNC_AND_FIELDS = 1140 +NONEXISTING_GRANT = 1141 +TABLEACCESS_DENIED_ERROR = 1142 +COLUMNACCESS_DENIED_ERROR = 1143 +ILLEGAL_GRANT_FOR_TABLE = 1144 +GRANT_WRONG_HOST_OR_USER = 1145 +NO_SUCH_TABLE = 1146 +NONEXISTING_TABLE_GRANT = 1147 +NOT_ALLOWED_COMMAND = 1148 +SYNTAX_ERROR = 1149 +DELAYED_CANT_CHANGE_LOCK = 1150 +TOO_MANY_DELAYED_THREADS = 1151 +ABORTING_CONNECTION = 1152 +NET_PACKET_TOO_LARGE = 1153 +NET_READ_ERROR_FROM_PIPE = 1154 +NET_FCNTL_ERROR = 1155 +NET_PACKETS_OUT_OF_ORDER = 1156 +NET_UNCOMPRESS_ERROR = 1157 +NET_READ_ERROR = 1158 +NET_READ_INTERRUPTED = 1159 +NET_ERROR_ON_WRITE = 1160 +NET_WRITE_INTERRUPTED = 1161 +TOO_LONG_STRING = 1162 +TABLE_CANT_HANDLE_BLOB = 1163 +TABLE_CANT_HANDLE_AUTO_INCREMENT = 1164 +DELAYED_INSERT_TABLE_LOCKED = 1165 +WRONG_COLUMN_NAME = 1166 +WRONG_KEY_COLUMN = 1167 +WRONG_MRG_TABLE = 1168 +DUP_UNIQUE = 1169 +BLOB_KEY_WITHOUT_LENGTH = 1170 +PRIMARY_CANT_HAVE_NULL = 1171 +TOO_MANY_ROWS = 1172 +REQUIRES_PRIMARY_KEY = 1173 +NO_RAID_COMPILED = 1174 +UPDATE_WITHOUT_KEY_IN_SAFE_MODE = 1175 +KEY_DOES_NOT_EXITS = 1176 +CHECK_NO_SUCH_TABLE = 1177 +CHECK_NOT_IMPLEMENTED = 1178 +CANT_DO_THIS_DURING_AN_TRANSACTION = 1179 +ERROR_DURING_COMMIT = 1180 +ERROR_DURING_ROLLBACK = 1181 +ERROR_DURING_FLUSH_LOGS = 1182 +ERROR_DURING_CHECKPOINT = 1183 +NEW_ABORTING_CONNECTION = 1184 +DUMP_NOT_IMPLEMENTED = 1185 +FLUSH_MASTER_BINLOG_CLOSED = 1186 +INDEX_REBUILD = 1187 +MASTER = 1188 +MASTER_NET_READ = 1189 +MASTER_NET_WRITE = 1190 +FT_MATCHING_KEY_NOT_FOUND = 1191 +LOCK_OR_ACTIVE_TRANSACTION = 1192 +UNKNOWN_SYSTEM_VARIABLE = 1193 +CRASHED_ON_USAGE = 1194 +CRASHED_ON_REPAIR = 1195 +WARNING_NOT_COMPLETE_ROLLBACK = 1196 +TRANS_CACHE_FULL = 1197 +SLAVE_MUST_STOP = 1198 +SLAVE_NOT_RUNNING = 1199 +BAD_SLAVE = 1200 +MASTER_INFO = 1201 +SLAVE_THREAD = 1202 +ERROR_MESSAGES = 203 diff --git a/mysql/_mysql_const/FIELD_TYPE.py b/mysql/_mysql_const/FIELD_TYPE.py new file mode 100644 index 0000000..1222dcf --- /dev/null +++ b/mysql/_mysql_const/FIELD_TYPE.py @@ -0,0 +1,26 @@ +DECIMAL = 0 +TINY = 1 +SHORT = 2 +LONG = 3 +FLOAT = 4 +DOUBLE = 5 +NULL = 6 +TIMESTAMP = 7 +LONGLONG = 8 +INT24 = 9 +DATE = 10 +TIME = 11 +DATETIME = 12 +YEAR = 13 +NEWDATE = 14 +ENUM = 247 +SET = 248 +TINY_BLOB = 249 +MEDIUM_BLOB = 250 +LONG_BLOB = 251 +BLOB = 252 +VAR_STRING = 253 +STRING = 254 + +CHAR = TINY +INTERVAL = ENUM diff --git a/mysql/_mysql_const/FLAG.py b/mysql/_mysql_const/FLAG.py new file mode 100644 index 0000000..a35a143 --- /dev/null +++ b/mysql/_mysql_const/FLAG.py @@ -0,0 +1,16 @@ +NOT_NULL = 1 +PRI_KEY = 2 +UNIQUE_KEY = 4 +MULTIPLE_KEY = 8 +BLOB = 16 +UNSIGNED = 32 +ZEROFILL = 64 +BINARY = 128 +ENUM = 256 +AUTO_INCREMENT = 512 +TIMESTAMP = 1024 +SET = 2048 +NUM = 32768 +PART_KEY = 16384 +GROUP = 32768 +UNIQUE = 65536 diff --git a/mysql/_mysql_const/REFRESH.py b/mysql/_mysql_const/REFRESH.py new file mode 100644 index 0000000..f229df7 --- /dev/null +++ b/mysql/_mysql_const/REFRESH.py @@ -0,0 +1,10 @@ +GRANT = 1 +LOG = 2 +TABLES = 4 +HOSTS = 8 +STATUS = 16 +THREADS = 32 +SLAVE = 64 +MASTER = 128 +READ_LOCK = 16384 +FAST = 32768 diff --git a/mysql/_mysql_const/__init__.py b/mysql/_mysql_const/__init__.py new file mode 100644 index 0000000..3da4a0e --- /dev/null +++ b/mysql/_mysql_const/__init__.py @@ -0,0 +1 @@ +__all__ = ['CR', 'FIELD_TYPE','CLIENT','REFRESH','ER','FLAG'] diff --git a/mysql/_mysqlmodule.c b/mysql/_mysqlmodule.c index 02043a2..8eb4406 100644 --- a/mysql/_mysqlmodule.c +++ b/mysql/_mysqlmodule.c @@ -109,264 +109,6 @@ _mysql_Exception(_mysql_ConnectionObject *c) return NULL; } -typedef struct { - char *name; - int value; -} _mysql_Constant; - -static _mysql_Constant _mysql_Constant_flag[] = { - { "NOT_NULL", NOT_NULL_FLAG }, - { "PRI_KEY", PRI_KEY_FLAG }, - { "UNIQUE_KEY", UNIQUE_KEY_FLAG }, - { "MULTIPLE_KEY", MULTIPLE_KEY_FLAG }, - { "BLOB", BLOB_FLAG }, - { "UNSIGNED", UNSIGNED_FLAG }, - { "ZEROFILL", ZEROFILL_FLAG }, - { "BINARY", BINARY_FLAG }, - { "ENUM", ENUM_FLAG }, - { "AUTO_INCREMENT", AUTO_INCREMENT_FLAG }, - { "TIMESTAMP", TIMESTAMP_FLAG }, -#ifdef SET_FLAG - { "SET", SET_FLAG }, -#endif - { "PART_KEY", PART_KEY_FLAG }, - { "GROUP", GROUP_FLAG }, - { NULL } /* sentinel */ -} ; - -static _mysql_Constant _mysql_Constant_client[] = { - { "LONG_PASSWORD", CLIENT_LONG_PASSWORD }, - { "FOUND_ROWS", CLIENT_FOUND_ROWS }, - { "LONG_FLAG", CLIENT_LONG_FLAG }, - { "CONNECT_WITH_DB", CLIENT_CONNECT_WITH_DB }, - { "NO_SCHEMA", CLIENT_NO_SCHEMA }, - { "COMPRESS", CLIENT_COMPRESS }, - { "ODBC", CLIENT_ODBC }, - { "LOCAL_FILES", CLIENT_LOCAL_FILES }, - { "IGNORE_SPACE", CLIENT_IGNORE_SPACE }, - { NULL } /* Sentinel */ -} ; - -static _mysql_Constant _mysql_Constant_field_type[] = { - { "DECIMAL", FIELD_TYPE_DECIMAL }, - { "TINY", FIELD_TYPE_TINY }, - { "SHORT", FIELD_TYPE_SHORT }, - { "LONG", FIELD_TYPE_LONG }, - { "FLOAT", FIELD_TYPE_FLOAT }, - { "DOUBLE", FIELD_TYPE_DOUBLE }, - { "NULL", FIELD_TYPE_NULL }, - { "TIMESTAMP", FIELD_TYPE_TIMESTAMP }, - { "LONGLONG", FIELD_TYPE_LONGLONG }, - { "INT24", FIELD_TYPE_INT24 }, - { "DATE", FIELD_TYPE_DATE }, - { "TIME", FIELD_TYPE_TIME }, - { "DATETIME", FIELD_TYPE_DATETIME }, - { "YEAR", FIELD_TYPE_YEAR }, - { "NEWDATE", FIELD_TYPE_NEWDATE }, - { "ENUM", FIELD_TYPE_ENUM }, - { "SET", FIELD_TYPE_SET }, - { "TINY_BLOB", FIELD_TYPE_TINY_BLOB }, - { "MEDIUM_BLOB", FIELD_TYPE_MEDIUM_BLOB }, - { "LONG_BLOB", FIELD_TYPE_LONG_BLOB }, - { "BLOB", FIELD_TYPE_BLOB }, - { "VAR_STRING", FIELD_TYPE_VAR_STRING }, - { "STRING", FIELD_TYPE_STRING }, - { "CHAR", FIELD_TYPE_CHAR }, - { "INTERVAL", FIELD_TYPE_ENUM }, - { NULL } /* sentinel */ -} ; - -static _mysql_Constant _mysql_Constant_cr[] = { - { "UNKNOWN_ERROR", CR_UNKNOWN_ERROR }, - { "SOCKET_CREATE_ERROR", CR_SOCKET_CREATE_ERROR }, - { "CONNECTION_ERROR", CR_CONNECTION_ERROR }, - { "CONN_HOST_ERROR", CR_CONN_HOST_ERROR }, - { "IPSOCK_ERROR", CR_IPSOCK_ERROR }, - { "UNKNOWN_HOST", CR_UNKNOWN_HOST }, - { "SERVER_GONE_ERROR", CR_SERVER_GONE_ERROR }, - { "VERSION_ERROR", CR_VERSION_ERROR }, - { "OUT_OF_MEMORY", CR_OUT_OF_MEMORY }, - { "WRONG_HOST_INFO", CR_WRONG_HOST_INFO }, - { "LOCALHOST_CONNECTION", CR_LOCALHOST_CONNECTION }, - { "TCP_CONNECTION", CR_TCP_CONNECTION }, - { "SERVER_HANDSHAKE_ERR", CR_SERVER_HANDSHAKE_ERR }, - { "SERVER_LOST", CR_SERVER_LOST }, - { "COMMANDS_OUT_OF_SYNC", CR_COMMANDS_OUT_OF_SYNC }, - { "NAMEDPIPE_CONNECTION", CR_NAMEDPIPE_CONNECTION }, - { "NAMEDPIPEWAIT_ERROR", CR_NAMEDPIPEWAIT_ERROR }, - { "NAMEDPIPEOPEN_ERROR", CR_NAMEDPIPEOPEN_ERROR }, - { "NAMEDPIPESETSTATE_ERROR", CR_NAMEDPIPEOPEN_ERROR }, - { NULL } /* sentinel */ -} ; - -static _mysql_Constant _mysql_Constant_er[] = { - { "HASHCHK", ER_HASHCHK }, - { "NISAMCHK", ER_NISAMCHK }, - { "NO", ER_NO }, - { "YES", ER_YES }, - { "CANT_CREATE_FILE", ER_CANT_CREATE_FILE }, - { "CANT_CREATE_TABLE", ER_CANT_CREATE_TABLE }, - { "CANT_CREATE_DB", ER_CANT_CREATE_DB }, - { "DB_CREATE_EXISTS", ER_DB_CREATE_EXISTS }, - { "DB_DROP_EXISTS", ER_DB_DROP_EXISTS }, - { "DB_DROP_DELETE", ER_DB_DROP_DELETE }, - { "DB_DROP_RMDIR", ER_DB_DROP_RMDIR }, - { "CANT_DELETE_FILE", ER_CANT_DELETE_FILE }, - { "CANT_FIND_SYSTEM_REC", ER_CANT_FIND_SYSTEM_REC }, - { "CANT_GET_STAT", ER_CANT_GET_STAT }, - { "CANT_GET_WD", ER_CANT_GET_WD }, - { "CANT_LOCK", ER_CANT_LOCK }, - { "CANT_OPEN_FILE", ER_CANT_OPEN_FILE }, - { "FILE_NOT_FOUND", ER_FILE_NOT_FOUND }, - { "CANT_READ_DIR", ER_CANT_READ_DIR }, - { "CANT_SET_WD", ER_CANT_SET_WD }, - { "CHECKREAD", ER_CHECKREAD }, - { "DISK_FULL", ER_DISK_FULL }, - { "DUP_KEY", ER_DUP_KEY }, - { "ERROR_ON_CLOSE", ER_ERROR_ON_CLOSE }, - { "ERROR_ON_READ", ER_ERROR_ON_READ }, - { "ERROR_ON_RENAME", ER_ERROR_ON_RENAME }, - { "ERROR_ON_WRITE", ER_ERROR_ON_WRITE }, - { "FILE_USED", ER_FILE_USED }, - { "FILSORT_ABORT", ER_FILSORT_ABORT }, - { "FORM_NOT_FOUND", ER_FORM_NOT_FOUND }, - { "GET_ERRNO", ER_GET_ERRNO }, - { "ILLEGAL_HA", ER_ILLEGAL_HA }, - { "KEY_NOT_FOUND", ER_KEY_NOT_FOUND }, - { "NOT_FORM_FILE", ER_NOT_FORM_FILE }, - { "NOT_KEYFILE", ER_NOT_KEYFILE }, - { "OLD_KEYFILE", ER_OLD_KEYFILE }, - { "OPEN_AS_READONLY", ER_OPEN_AS_READONLY }, - { "OUTOFMEMORY", ER_OUTOFMEMORY }, - { "OUT_OF_SORTMEMORY", ER_OUT_OF_SORTMEMORY }, - { "UNEXPECTED_EOF", ER_UNEXPECTED_EOF }, - { "CON_COUNT_ERROR", ER_CON_COUNT_ERROR }, - { "OUT_OF_RESOURCES", ER_OUT_OF_RESOURCES }, - { "BAD_HOST_ERROR", ER_BAD_HOST_ERROR }, - { "HANDSHAKE_ERROR", ER_HANDSHAKE_ERROR }, - { "DBACCESS_DENIED_ERROR", ER_DBACCESS_DENIED_ERROR }, - { "ACCESS_DENIED_ERROR", ER_ACCESS_DENIED_ERROR }, - { "NO_DB_ERROR", ER_NO_DB_ERROR }, - { "UNKNOWN_COM_ERROR", ER_UNKNOWN_COM_ERROR }, - { "BAD_NULL_ERROR", ER_BAD_NULL_ERROR }, - { "BAD_DB_ERROR", ER_BAD_DB_ERROR }, - { "TABLE_EXISTS_ERROR", ER_TABLE_EXISTS_ERROR }, - { "BAD_TABLE_ERROR", ER_BAD_TABLE_ERROR }, - { "NON_UNIQ_ERROR", ER_NON_UNIQ_ERROR }, - { "SERVER_SHUTDOWN", ER_SERVER_SHUTDOWN }, - { "BAD_FIELD_ERROR", ER_BAD_FIELD_ERROR }, - { "WRONG_FIELD_WITH_GROUP", ER_WRONG_FIELD_WITH_GROUP }, - { "WRONG_GROUP_FIELD", ER_WRONG_GROUP_FIELD }, - { "WRONG_SUM_SELECT", ER_WRONG_SUM_SELECT }, - { "WRONG_VALUE_COUNT", ER_WRONG_VALUE_COUNT }, - { "TOO_LONG_IDENT", ER_TOO_LONG_IDENT }, - { "DUP_FIELDNAME", ER_DUP_FIELDNAME }, - { "DUP_KEYNAME", ER_DUP_KEYNAME }, - { "DUP_ENTRY", ER_DUP_ENTRY }, - { "WRONG_FIELD_SPEC", ER_WRONG_FIELD_SPEC }, - { "PARSE_ERROR", ER_PARSE_ERROR }, - { "EMPTY_QUERY", ER_EMPTY_QUERY }, - { "NONUNIQ_TABLE", ER_NONUNIQ_TABLE }, - { "INVALID_DEFAULT", ER_INVALID_DEFAULT }, - { "MULTIPLE_PRI_KEY", ER_MULTIPLE_PRI_KEY }, - { "TOO_MANY_KEYS", ER_TOO_MANY_KEYS }, - { "TOO_MANY_KEY_PARTS", ER_TOO_MANY_KEY_PARTS }, - { "TOO_LONG_KEY", ER_TOO_LONG_KEY }, - { "KEY_COLUMN_DOES_NOT_EXITS", ER_KEY_COLUMN_DOES_NOT_EXITS }, - { "BLOB_USED_AS_KEY", ER_BLOB_USED_AS_KEY }, - { "TOO_BIG_FIELDLENGTH", ER_TOO_BIG_FIELDLENGTH }, - { "WRONG_AUTO_KEY", ER_WRONG_AUTO_KEY }, - { "READY", ER_READY }, - { "NORMAL_SHUTDOWN", ER_NORMAL_SHUTDOWN }, - { "GOT_SIGNAL", ER_GOT_SIGNAL }, - { "SHUTDOWN_COMPLETE", ER_SHUTDOWN_COMPLETE }, - { "FORCING_CLOSE", ER_FORCING_CLOSE }, - { "IPSOCK_ERROR", ER_IPSOCK_ERROR }, - { "NO_SUCH_INDEX", ER_NO_SUCH_INDEX }, - { "WRONG_FIELD_TERMINATORS", ER_WRONG_FIELD_TERMINATORS }, - { "BLOBS_AND_NO_TERMINATED", ER_BLOBS_AND_NO_TERMINATED }, - { "TEXTFILE_NOT_READABLE", ER_TEXTFILE_NOT_READABLE }, - { "FILE_EXISTS_ERROR", ER_FILE_EXISTS_ERROR }, - { "LOAD_INFO", ER_LOAD_INFO }, - { "ALTER_INFO", ER_ALTER_INFO }, - { "WRONG_SUB_KEY", ER_WRONG_SUB_KEY }, - { "CANT_REMOVE_ALL_FIELDS", ER_CANT_REMOVE_ALL_FIELDS }, - { "CANT_DROP_FIELD_OR_KEY", ER_CANT_DROP_FIELD_OR_KEY }, - { "INSERT_INFO", ER_INSERT_INFO }, - { "INSERT_TABLE_USED", ER_INSERT_TABLE_USED }, - { "NO_SUCH_THREAD", ER_NO_SUCH_THREAD }, - { "KILL_DENIED_ERROR", ER_KILL_DENIED_ERROR }, - { "NO_TABLES_USED", ER_NO_TABLES_USED }, - { "TOO_BIG_SET", ER_TOO_BIG_SET }, - { "NO_UNIQUE_LOGFILE", ER_NO_UNIQUE_LOGFILE }, - { "TABLE_NOT_LOCKED_FOR_WRITE", ER_TABLE_NOT_LOCKED_FOR_WRITE }, - { "TABLE_NOT_LOCKED", ER_TABLE_NOT_LOCKED }, - { "BLOB_CANT_HAVE_DEFAULT", ER_BLOB_CANT_HAVE_DEFAULT }, - { "WRONG_DB_NAME", ER_WRONG_DB_NAME }, - { "WRONG_TABLE_NAME", ER_WRONG_TABLE_NAME }, - { "TOO_BIG_SELECT", ER_TOO_BIG_SELECT }, - { "UNKNOWN_ERROR", ER_UNKNOWN_ERROR }, - { "UNKNOWN_PROCEDURE", ER_UNKNOWN_PROCEDURE }, - { "WRONG_PARAMCOUNT_TO_PROCEDURE", ER_WRONG_PARAMCOUNT_TO_PROCEDURE }, - { "WRONG_PARAMETERS_TO_PROCEDURE", ER_WRONG_PARAMETERS_TO_PROCEDURE }, - { "UNKNOWN_TABLE", ER_UNKNOWN_TABLE }, - { "FIELD_SPECIFIED_TWICE", ER_FIELD_SPECIFIED_TWICE }, - { "INVALID_GROUP_FUNC_USE", ER_INVALID_GROUP_FUNC_USE }, - { "UNSUPPORTED_EXTENSION", ER_UNSUPPORTED_EXTENSION }, - { "TABLE_MUST_HAVE_COLUMNS", ER_TABLE_MUST_HAVE_COLUMNS }, - { "RECORD_FILE_FULL", ER_RECORD_FILE_FULL }, - { "UNKNOWN_CHARACTER_SET", ER_UNKNOWN_CHARACTER_SET }, - { "TOO_MANY_TABLES", ER_TOO_MANY_TABLES }, - { "TOO_MANY_FIELDS", ER_TOO_MANY_FIELDS }, - { "TOO_BIG_ROWSIZE", ER_TOO_BIG_ROWSIZE }, - { "STACK_OVERRUN", ER_STACK_OVERRUN }, - { "WRONG_OUTER_JOIN", ER_WRONG_OUTER_JOIN }, - { "NULL_COLUMN_IN_INDEX", ER_NULL_COLUMN_IN_INDEX }, - { "CANT_FIND_UDF", ER_CANT_FIND_UDF }, - { "CANT_INITIALIZE_UDF", ER_CANT_INITIALIZE_UDF }, - { "UDF_NO_PATHS", ER_UDF_NO_PATHS }, - { "UDF_EXISTS", ER_UDF_EXISTS }, - { "CANT_OPEN_LIBRARY", ER_CANT_OPEN_LIBRARY }, - { "CANT_FIND_DL_ENTRY", ER_CANT_FIND_DL_ENTRY }, - { "FUNCTION_NOT_DEFINED", ER_FUNCTION_NOT_DEFINED }, - { "HOST_IS_BLOCKED", ER_HOST_IS_BLOCKED }, - { "HOST_NOT_PRIVILEGED", ER_HOST_NOT_PRIVILEGED }, - { "PASSWORD_ANONYMOUS_USER", ER_PASSWORD_ANONYMOUS_USER }, - { "PASSWORD_NOT_ALLOWED", ER_PASSWORD_NOT_ALLOWED }, - { "PASSWORD_NO_MATCH", ER_PASSWORD_NO_MATCH }, - { "UPDATE_INFO", ER_UPDATE_INFO }, - { "CANT_CREATE_THREAD", ER_CANT_CREATE_THREAD }, - { "WRONG_VALUE_COUNT_ON_ROW", ER_WRONG_VALUE_COUNT_ON_ROW }, - { "CANT_REOPEN_TABLE", ER_CANT_REOPEN_TABLE }, - { "INVALID_USE_OF_NULL", ER_INVALID_USE_OF_NULL }, - { "REGEXP_ERROR", ER_REGEXP_ERROR }, - { "MIX_OF_GROUP_FUNC_AND_FIELDS", ER_MIX_OF_GROUP_FUNC_AND_FIELDS }, - { "NONEXISTING_GRANT", ER_NONEXISTING_GRANT }, - { "TABLEACCESS_DENIED_ERROR", ER_TABLEACCESS_DENIED_ERROR }, - { "COLUMNACCESS_DENIED_ERROR", ER_COLUMNACCESS_DENIED_ERROR }, - { "ILLEGAL_GRANT_FOR_TABLE", ER_ILLEGAL_GRANT_FOR_TABLE }, - { "GRANT_WRONG_HOST_OR_USER", ER_GRANT_WRONG_HOST_OR_USER }, - { "NO_SUCH_TABLE", ER_NO_SUCH_TABLE }, - { "NONEXISTING_TABLE_GRANT", ER_NONEXISTING_TABLE_GRANT }, - { "NOT_ALLOWED_COMMAND", ER_NOT_ALLOWED_COMMAND }, - { "SYNTAX_ERROR", ER_SYNTAX_ERROR }, -#ifdef ER_DELAYED_CANT_CHANGE_LOCK - { "DELAYED_CANT_CHANGE_LOCK", ER_DELAYED_CANT_CHANGE_LOCK }, - { "TOO_MANY_DELAYED_THREADS", ER_TOO_MANY_DELAYED_THREADS }, - { "ABORTING_CONNECTION", ER_ABORTING_CONNECTION }, - { "NET_PACKET_TOO_LARGE", ER_NET_PACKET_TOO_LARGE }, - { "NET_READ_ERROR_FROM_PIPE", ER_NET_READ_ERROR_FROM_PIPE }, - { "NET_FCNTL_ERROR", ER_NET_FCNTL_ERROR }, - { "NET_PACKETS_OUT_OF_ORDER", ER_NET_PACKETS_OUT_OF_ORDER }, - { "NET_UNCOMPRESS_ERROR", ER_NET_UNCOMPRESS_ERROR }, - { "NET_READ_ERROR", ER_NET_READ_ERROR }, - { "NET_READ_INTERRUPTED", ER_NET_READ_INTERRUPTED }, - { "NET_ERROR_ON_WRITE", ER_NET_ERROR_ON_WRITE }, - { "NET_WRITE_INTERRUPTED", ER_NET_WRITE_INTERRUPTED }, -#endif - { "ERROR_MESSAGES", ER_ERROR_MESSAGES }, - { NULL } /* sentinel */ -} ; static _mysql_ResultObject* _mysql_ResultObject_New( @@ -1616,19 +1358,13 @@ int _mysql_Constant_class( PyObject *mdict, char *type, - _mysql_Constant *table) + char *name) { - PyObject *d, *c, *v; + PyObject *d = NULL; int i; - /* XXX This leaks memory if it fails, but then the whole module - fails to import, so probably no big deal */ - if (!(d = PyDict_New())) goto error; - for (i = 0; table[i].name; i++) { - if (!(v = PyInt_FromLong((long)table[i].value))) goto error; - if (PyDict_SetItemString(d, table[i].name, v)) goto error; - } - if (!(c = PyClass_New(NULL,d,PyString_InternFromString(type)))) goto error; - if (PyDict_SetItemString(mdict, type, c)) goto error; + if (!(d = PyImport_ImportModule(type))) goto error; + if (PyDict_SetItemString(mdict, name, d)) goto error; + Py_DECREF(d); return 0; error: Py_XDECREF(d); @@ -1677,7 +1413,7 @@ For everything else, check the MySQL docs." ; DL_EXPORT(void) init_mysql(void) { - PyObject *dict, *module; + PyObject *c, *dict, *module; module = Py_InitModule3("_mysql", _mysql_methods, _mysql___doc__); #ifdef MS_WIN32 _mysql_ConnectionObject_Type.ob_type = &PyType_Type; @@ -1719,15 +1455,17 @@ init_mysql(void) _mysql_NewException(dict, "NotSupportedError", _mysql_DatabaseError))) goto error; - if (_mysql_Constant_class(dict, "FLAG", _mysql_Constant_flag)) + if (_mysql_Constant_class(dict, "_mysql_const.FLAG", "FLAG")) goto error; - if (_mysql_Constant_class(dict, "CLIENT", _mysql_Constant_client)) + if (_mysql_Constant_class(dict, "_mysql_const.REFRESH", "REFRESH")) goto error; - if (_mysql_Constant_class(dict, "FIELD_TYPE", _mysql_Constant_field_type)) + if (_mysql_Constant_class(dict, "_mysql_const.FIELD_TYPE", "FIELD_TYPE")) goto error; - if (_mysql_Constant_class(dict, "CR", _mysql_Constant_cr)) + if (_mysql_Constant_class(dict, "_mysql_const.CR", "CR")) goto error; - if (_mysql_Constant_class(dict, "ER", _mysql_Constant_er)) + if (_mysql_Constant_class(dict, "_mysql_const.ER", "ER")) + goto error; + if (_mysql_Constant_class(dict, "_mysql_const.CLIENT", "CLIENT")) goto error; if (!(_mysql_NULL = PyString_FromString("NULL"))) goto error;