mymysql: github.com/ziutek/mymysql/mysql Index | Files

package mysql

import "github.com/ziutek/mymysql/mysql"

MySQL Client API written entirely in Go without any external dependences.

Index

Package Files

errors.go field.go interface.go row.go types.go utils.go

Constants

const (
    ER_HASHCHK                                 = 1000
    ER_NISAMCHK                                = 1001
    ER_NO                                      = 1002
    ER_YES                                     = 1003
    ER_CANT_CREATE_FILE                        = 1004
    ER_CANT_CREATE_TABLE                       = 1005
    ER_CANT_CREATE_DB                          = 1006
    ER_DB_CREATE_EXISTS                        = 1007
    ER_DB_DROP_EXISTS                          = 1008
    ER_DB_DROP_DELETE                          = 1009
    ER_DB_DROP_RMDIR                           = 1010
    ER_CANT_DELETE_FILE                        = 1011
    ER_CANT_FIND_SYSTEM_REC                    = 1012
    ER_CANT_GET_STAT                           = 1013
    ER_CANT_GET_WD                             = 1014
    ER_CANT_LOCK                               = 1015
    ER_CANT_OPEN_FILE                          = 1016
    ER_FILE_NOT_FOUND                          = 1017
    ER_CANT_READ_DIR                           = 1018
    ER_CANT_SET_WD                             = 1019
    ER_CHECKREAD                               = 1020
    ER_DISK_FULL                               = 1021
    ER_DUP_KEY                                 = 1022
    ER_ERROR_ON_CLOSE                          = 1023
    ER_ERROR_ON_READ                           = 1024
    ER_ERROR_ON_RENAME                         = 1025
    ER_ERROR_ON_WRITE                          = 1026
    ER_FILE_USED                               = 1027
    ER_FILSORT_ABORT                           = 1028
    ER_FORM_NOT_FOUND                          = 1029
    ER_GET_ERRNO                               = 1030
    ER_ILLEGAL_HA                              = 1031
    ER_KEY_NOT_FOUND                           = 1032
    ER_NOT_FORM_FILE                           = 1033
    ER_NOT_KEYFILE                             = 1034
    ER_OLD_KEYFILE                             = 1035
    ER_OPEN_AS_READONLY                        = 1036
    ER_OUTOFMEMORY                             = 1037
    ER_OUT_OF_SORTMEMORY                       = 1038
    ER_UNEXPECTED_EOF                          = 1039
    ER_CON_COUNT_ERROR                         = 1040
    ER_OUT_OF_RESOURCES                        = 1041
    ER_BAD_HOST_ERROR                          = 1042
    ER_HANDSHAKE_ERROR                         = 1043
    ER_DBACCESS_DENIED_ERROR                   = 1044
    ER_ACCESS_DENIED_ERROR                     = 1045
    ER_NO_DB_ERROR                             = 1046
    ER_UNKNOWN_COM_ERROR                       = 1047
    ER_BAD_NULL_ERROR                          = 1048
    ER_BAD_DB_ERROR                            = 1049
    ER_TABLE_EXISTS_ERROR                      = 1050
    ER_BAD_TABLE_ERROR                         = 1051
    ER_NON_UNIQ_ERROR                          = 1052
    ER_SERVER_SHUTDOWN                         = 1053
    ER_BAD_FIELD_ERROR                         = 1054
    ER_WRONG_FIELD_WITH_GROUP                  = 1055
    ER_WRONG_GROUP_FIELD                       = 1056
    ER_WRONG_SUM_SELECT                        = 1057
    ER_WRONG_VALUE_COUNT                       = 1058
    ER_TOO_LONG_IDENT                          = 1059
    ER_DUP_FIELDNAME                           = 1060
    ER_DUP_KEYNAME                             = 1061
    ER_DUP_ENTRY                               = 1062
    ER_WRONG_FIELD_SPEC                        = 1063
    ER_PARSE_ERROR                             = 1064
    ER_EMPTY_QUERY                             = 1065
    ER_NONUNIQ_TABLE                           = 1066
    ER_INVALID_DEFAULT                         = 1067
    ER_MULTIPLE_PRI_KEY                        = 1068
    ER_TOO_MANY_KEYS                           = 1069
    ER_TOO_MANY_KEY_PARTS                      = 1070
    ER_TOO_LONG_KEY                            = 1071
    ER_KEY_COLUMN_DOES_NOT_EXITS               = 1072
    ER_BLOB_USED_AS_KEY                        = 1073
    ER_TOO_BIG_FIELDLENGTH                     = 1074
    ER_WRONG_AUTO_KEY                          = 1075
    ER_READY                                   = 1076
    ER_NORMAL_SHUTDOWN                         = 1077
    ER_GOT_SIGNAL                              = 1078
    ER_SHUTDOWN_COMPLETE                       = 1079
    ER_FORCING_CLOSE                           = 1080
    ER_IPSOCK_ERROR                            = 1081
    ER_NO_SUCH_INDEX                           = 1082
    ER_WRONG_FIELD_TERMINATORS                 = 1083
    ER_BLOBS_AND_NO_TERMINATED                 = 1084
    ER_TEXTFILE_NOT_READABLE                   = 1085
    ER_FILE_EXISTS_ERROR                       = 1086
    ER_LOAD_INFO                               = 1087
    ER_ALTER_INFO                              = 1088
    ER_WRONG_SUB_KEY                           = 1089
    ER_CANT_REMOVE_ALL_FIELDS                  = 1090
    ER_CANT_DROP_FIELD_OR_KEY                  = 1091
    ER_INSERT_INFO                             = 1092
    ER_UPDATE_TABLE_USED                       = 1093
    ER_NO_SUCH_THREAD                          = 1094
    ER_KILL_DENIED_ERROR                       = 1095
    ER_NO_TABLES_USED                          = 1096
    ER_TOO_BIG_SET                             = 1097
    ER_NO_UNIQUE_LOGFILE                       = 1098
    ER_TABLE_NOT_LOCKED_FOR_WRITE              = 1099
    ER_TABLE_NOT_LOCKED                        = 1100
    ER_BLOB_CANT_HAVE_DEFAULT                  = 1101
    ER_WRONG_DB_NAME                           = 1102
    ER_WRONG_TABLE_NAME                        = 1103
    ER_TOO_BIG_SELECT                          = 1104
    ER_UNKNOWN_ERROR                           = 1105
    ER_UNKNOWN_PROCEDURE                       = 1106
    ER_WRONG_PARAMCOUNT_TO_PROCEDURE           = 1107
    ER_WRONG_PARAMETERS_TO_PROCEDURE           = 1108
    ER_UNKNOWN_TABLE                           = 1109
    ER_FIELD_SPECIFIED_TWICE                   = 1110
    ER_INVALID_GROUP_FUNC_USE                  = 1111
    ER_UNSUPPORTED_EXTENSION                   = 1112
    ER_TABLE_MUST_HAVE_COLUMNS                 = 1113
    ER_RECORD_FILE_FULL                        = 1114
    ER_UNKNOWN_CHARACTER_SET                   = 1115
    ER_TOO_MANY_TABLES                         = 1116
    ER_TOO_MANY_FIELDS                         = 1117
    ER_TOO_BIG_ROWSIZE                         = 1118
    ER_STACK_OVERRUN                           = 1119
    ER_WRONG_OUTER_JOIN                        = 1120
    ER_NULL_COLUMN_IN_INDEX                    = 1121
    ER_CANT_FIND_UDF                           = 1122
    ER_CANT_INITIALIZE_UDF                     = 1123
    ER_UDF_NO_PATHS                            = 1124
    ER_UDF_EXISTS                              = 1125
    ER_CANT_OPEN_LIBRARY                       = 1126
    ER_CANT_FIND_DL_ENTRY                      = 1127
    ER_FUNCTION_NOT_DEFINED                    = 1128
    ER_HOST_IS_BLOCKED                         = 1129
    ER_HOST_NOT_PRIVILEGED                     = 1130
    ER_PASSWORD_ANONYMOUS_USER                 = 1131
    ER_PASSWORD_NOT_ALLOWED                    = 1132
    ER_PASSWORD_NO_MATCH                       = 1133
    ER_UPDATE_INFO                             = 1134
    ER_CANT_CREATE_THREAD                      = 1135
    ER_WRONG_VALUE_COUNT_ON_ROW                = 1136
    ER_CANT_REOPEN_TABLE                       = 1137
    ER_INVALID_USE_OF_NULL                     = 1138
    ER_REGEXP_ERROR                            = 1139
    ER_MIX_OF_GROUP_FUNC_AND_FIELDS            = 1140
    ER_NONEXISTING_GRANT                       = 1141
    ER_TABLEACCESS_DENIED_ERROR                = 1142
    ER_COLUMNACCESS_DENIED_ERROR               = 1143
    ER_ILLEGAL_GRANT_FOR_TABLE                 = 1144
    ER_GRANT_WRONG_HOST_OR_USER                = 1145
    ER_NO_SUCH_TABLE                           = 1146
    ER_NONEXISTING_TABLE_GRANT                 = 1147
    ER_NOT_ALLOWED_COMMAND                     = 1148
    ER_SYNTAX_ERROR                            = 1149
    ER_DELAYED_CANT_CHANGE_LOCK                = 1150
    ER_TOO_MANY_DELAYED_THREADS                = 1151
    ER_ABORTING_CONNECTION                     = 1152
    ER_NET_PACKET_TOO_LARGE                    = 1153
    ER_NET_READ_ERROR_FROM_PIPE                = 1154
    ER_NET_FCNTL_ERROR                         = 1155
    ER_NET_PACKETS_OUT_OF_ORDER                = 1156
    ER_NET_UNCOMPRESS_ERROR                    = 1157
    ER_NET_READ_ERROR                          = 1158
    ER_NET_READ_INTERRUPTED                    = 1159
    ER_NET_ERROR_ON_WRITE                      = 1160
    ER_NET_WRITE_INTERRUPTED                   = 1161
    ER_TOO_LONG_STRING                         = 1162
    ER_TABLE_CANT_HANDLE_BLOB                  = 1163
    ER_TABLE_CANT_HANDLE_AUTO_INCREMENT        = 1164
    ER_DELAYED_INSERT_TABLE_LOCKED             = 1165
    ER_WRONG_COLUMN_NAME                       = 1166
    ER_WRONG_KEY_COLUMN                        = 1167
    ER_WRONG_MRG_TABLE                         = 1168
    ER_DUP_UNIQUE                              = 1169
    ER_BLOB_KEY_WITHOUT_LENGTH                 = 1170
    ER_PRIMARY_CANT_HAVE_NULL                  = 1171
    ER_TOO_MANY_ROWS                           = 1172
    ER_REQUIRES_PRIMARY_KEY                    = 1173
    ER_NO_RAID_COMPILED                        = 1174
    ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE         = 1175
    ER_KEY_DOES_NOT_EXITS                      = 1176
    ER_CHECK_NO_SUCH_TABLE                     = 1177
    ER_CHECK_NOT_IMPLEMENTED                   = 1178
    ER_CANT_DO_THIS_DURING_AN_TRANSACTION      = 1179
    ER_ERROR_DURING_COMMIT                     = 1180
    ER_ERROR_DURING_ROLLBACK                   = 1181
    ER_ERROR_DURING_FLUSH_LOGS                 = 1182
    ER_ERROR_DURING_CHECKPOINT                 = 1183
    ER_NEW_ABORTING_CONNECTION                 = 1184
    ER_DUMP_NOT_IMPLEMENTED                    = 1185
    ER_FLUSH_MASTER_BINLOG_CLOSED              = 1186
    ER_INDEX_REBUILD                           = 1187
    ER_MASTER                                  = 1188
    ER_MASTER_NET_READ                         = 1189
    ER_MASTER_NET_WRITE                        = 1190
    ER_FT_MATCHING_KEY_NOT_FOUND               = 1191
    ER_LOCK_OR_ACTIVE_TRANSACTION              = 1192
    ER_UNKNOWN_SYSTEM_VARIABLE                 = 1193
    ER_CRASHED_ON_USAGE                        = 1194
    ER_CRASHED_ON_REPAIR                       = 1195
    ER_WARNING_NOT_COMPLETE_ROLLBACK           = 1196
    ER_TRANS_CACHE_FULL                        = 1197
    ER_SLAVE_MUST_STOP                         = 1198
    ER_SLAVE_NOT_RUNNING                       = 1199
    ER_BAD_SLAVE                               = 1200
    ER_MASTER_INFO                             = 1201
    ER_SLAVE_THREAD                            = 1202
    ER_TOO_MANY_USER_CONNECTIONS               = 1203
    ER_SET_CONSTANTS_ONLY                      = 1204
    ER_LOCK_WAIT_TIMEOUT                       = 1205
    ER_LOCK_TABLE_FULL                         = 1206
    ER_READ_ONLY_TRANSACTION                   = 1207
    ER_DROP_DB_WITH_READ_LOCK                  = 1208
    ER_CREATE_DB_WITH_READ_LOCK                = 1209
    ER_WRONG_ARGUMENTS                         = 1210
    ER_NO_PERMISSION_TO_CREATE_USER            = 1211
    ER_UNION_TABLES_IN_DIFFERENT_DIR           = 1212
    ER_LOCK_DEADLOCK                           = 1213
    ER_TABLE_CANT_HANDLE_FT                    = 1214
    ER_CANNOT_ADD_FOREIGN                      = 1215
    ER_NO_REFERENCED_ROW                       = 1216
    ER_ROW_IS_REFERENCED                       = 1217
    ER_CONNECT_TO_MASTER                       = 1218
    ER_QUERY_ON_MASTER                         = 1219
    ER_ERROR_WHEN_EXECUTING_COMMAND            = 1220
    ER_WRONG_USAGE                             = 1221
    ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT       = 1222
    ER_CANT_UPDATE_WITH_READLOCK               = 1223
    ER_MIXING_NOT_ALLOWED                      = 1224
    ER_DUP_ARGUMENT                            = 1225
    ER_USER_LIMIT_REACHED                      = 1226
    ER_SPECIFIC_ACCESS_DENIED_ERROR            = 1227
    ER_LOCAL_VARIABLE                          = 1228
    ER_GLOBAL_VARIABLE                         = 1229
    ER_NO_DEFAULT                              = 1230
    ER_WRONG_VALUE_FOR_VAR                     = 1231
    ER_WRONG_TYPE_FOR_VAR                      = 1232
    ER_VAR_CANT_BE_READ                        = 1233
    ER_CANT_USE_OPTION_HERE                    = 1234
    ER_NOT_SUPPORTED_YET                       = 1235
    ER_MASTER_FATAL_ERROR_READING_BINLOG       = 1236
    ER_SLAVE_IGNORED_TABLE                     = 1237
    ER_INCORRECT_GLOBAL_LOCAL_VAR              = 1238
    ER_WRONG_FK_DEF                            = 1239
    ER_KEY_REF_DO_NOT_MATCH_TABLE_REF          = 1240
    ER_OPERAND_COLUMNS                         = 1241
    ER_SUBQUERY_NO_1_ROW                       = 1242
    ER_UNKNOWN_STMT_HANDLER                    = 1243
    ER_CORRUPT_HELP_DB                         = 1244
    ER_CYCLIC_REFERENCE                        = 1245
    ER_AUTO_CONVERT                            = 1246
    ER_ILLEGAL_REFERENCE                       = 1247
    ER_DERIVED_MUST_HAVE_ALIAS                 = 1248
    ER_SELECT_REDUCED                          = 1249
    ER_TABLENAME_NOT_ALLOWED_HERE              = 1250
    ER_NOT_SUPPORTED_AUTH_MODE                 = 1251
    ER_SPATIAL_CANT_HAVE_NULL                  = 1252
    ER_COLLATION_CHARSET_MISMATCH              = 1253
    ER_SLAVE_WAS_RUNNING                       = 1254
    ER_SLAVE_WAS_NOT_RUNNING                   = 1255
    ER_TOO_BIG_FOR_UNCOMPRESS                  = 1256
    ER_ZLIB_Z_MEM_ERROR                        = 1257
    ER_ZLIB_Z_BUF_ERROR                        = 1258
    ER_ZLIB_Z_DATA_ERROR                       = 1259
    ER_CUT_VALUE_GROUP_CONCAT                  = 1260
    ER_WARN_TOO_FEW_RECORDS                    = 1261
    ER_WARN_TOO_MANY_RECORDS                   = 1262
    ER_WARN_NULL_TO_NOTNULL                    = 1263
    ER_WARN_DATA_OUT_OF_RANGE                  = 1264
    WARN_DATA_TRUNCATED                        = 1265
    ER_WARN_USING_OTHER_HANDLER                = 1266
    ER_CANT_AGGREGATE_2COLLATIONS              = 1267
    ER_DROP_USER                               = 1268
    ER_REVOKE_GRANTS                           = 1269
    ER_CANT_AGGREGATE_3COLLATIONS              = 1270
    ER_CANT_AGGREGATE_NCOLLATIONS              = 1271
    ER_VARIABLE_IS_NOT_STRUCT                  = 1272
    ER_UNKNOWN_COLLATION                       = 1273
    ER_SLAVE_IGNORED_SSL_PARAMS                = 1274
    ER_SERVER_IS_IN_SECURE_AUTH_MODE           = 1275
    ER_WARN_FIELD_RESOLVED                     = 1276
    ER_BAD_SLAVE_UNTIL_COND                    = 1277
    ER_MISSING_SKIP_SLAVE                      = 1278
    ER_UNTIL_COND_IGNORED                      = 1279
    ER_WRONG_NAME_FOR_INDEX                    = 1280
    ER_WRONG_NAME_FOR_CATALOG                  = 1281
    ER_WARN_QC_RESIZE                          = 1282
    ER_BAD_FT_COLUMN                           = 1283
    ER_UNKNOWN_KEY_CACHE                       = 1284
    ER_WARN_HOSTNAME_WONT_WORK                 = 1285
    ER_UNKNOWN_STORAGE_ENGINE                  = 1286
    ER_WARN_DEPRECATED_SYNTAX                  = 1287
    ER_NON_UPDATABLE_TABLE                     = 1288
    ER_FEATURE_DISABLED                        = 1289
    ER_OPTION_PREVENTS_STATEMENT               = 1290
    ER_DUPLICATED_VALUE_IN_TYPE                = 1291
    ER_TRUNCATED_WRONG_VALUE                   = 1292
    ER_TOO_MUCH_AUTO_TIMESTAMP_COLS            = 1293
    ER_INVALID_ON_UPDATE                       = 1294
    ER_UNSUPPORTED_PS                          = 1295
    ER_GET_ERRMSG                              = 1296
    ER_GET_TEMPORARY_ERRMSG                    = 1297
    ER_UNKNOWN_TIME_ZONE                       = 1298
    ER_WARN_INVALID_TIMESTAMP                  = 1299
    ER_INVALID_CHARACTER_STRING                = 1300
    ER_WARN_ALLOWED_PACKET_OVERFLOWED          = 1301
    ER_CONFLICTING_DECLARATIONS                = 1302
    ER_SP_NO_RECURSIVE_CREATE                  = 1303
    ER_SP_ALREADY_EXISTS                       = 1304
    ER_SP_DOES_NOT_EXIST                       = 1305
    ER_SP_DROP_FAILED                          = 1306
    ER_SP_STORE_FAILED                         = 1307
    ER_SP_LILABEL_MISMATCH                     = 1308
    ER_SP_LABEL_REDEFINE                       = 1309
    ER_SP_LABEL_MISMATCH                       = 1310
    ER_SP_UNINIT_VAR                           = 1311
    ER_SP_BADSELECT                            = 1312
    ER_SP_BADRETURN                            = 1313
    ER_SP_BADSTATEMENT                         = 1314
    ER_UPDATE_LOG_DEPRECATED_IGNORED           = 1315
    ER_UPDATE_LOG_DEPRECATED_TRANSLATED        = 1316
    ER_QUERY_INTERRUPTED                       = 1317
    ER_SP_WRONG_NO_OF_ARGS                     = 1318
    ER_SP_COND_MISMATCH                        = 1319
    ER_SP_NORETURN                             = 1320
    ER_SP_NORETURNEND                          = 1321
    ER_SP_BAD_CURSOR_QUERY                     = 1322
    ER_SP_BAD_CURSOR_SELECT                    = 1323
    ER_SP_CURSOR_MISMATCH                      = 1324
    ER_SP_CURSOR_ALREADY_OPEN                  = 1325
    ER_SP_CURSOR_NOT_OPEN                      = 1326
    ER_SP_UNDECLARED_VAR                       = 1327
    ER_SP_WRONG_NO_OF_FETCH_ARGS               = 1328
    ER_SP_FETCH_NO_DATA                        = 1329
    ER_SP_DUP_PARAM                            = 1330
    ER_SP_DUP_VAR                              = 1331
    ER_SP_DUP_COND                             = 1332
    ER_SP_DUP_CURS                             = 1333
    ER_SP_CANT_ALTER                           = 1334
    ER_SP_SUBSELECT_NYI                        = 1335
    ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG           = 1336
    ER_SP_VARCOND_AFTER_CURSHNDLR              = 1337
    ER_SP_CURSOR_AFTER_HANDLER                 = 1338
    ER_SP_CASE_NOT_FOUND                       = 1339
    ER_FPARSER_TOO_BIG_FILE                    = 1340
    ER_FPARSER_BAD_HEADER                      = 1341
    ER_FPARSER_EOF_IN_COMMENT                  = 1342
    ER_FPARSER_ERROR_IN_PARAMETER              = 1343
    ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER        = 1344
    ER_VIEW_NO_EXPLAIN                         = 1345
    ER_FRM_UNKNOWN_TYPE                        = 1346
    ER_WRONG_OBJECT                            = 1347
    ER_NONUPDATEABLE_COLUMN                    = 1348
    ER_VIEW_SELECT_DERIVED                     = 1349
    ER_VIEW_SELECT_CLAUSE                      = 1350
    ER_VIEW_SELECT_VARIABLE                    = 1351
    ER_VIEW_SELECT_TMPTABLE                    = 1352
    ER_VIEW_WRONG_LIST                         = 1353
    ER_WARN_VIEW_MERGE                         = 1354
    ER_WARN_VIEW_WITHOUT_KEY                   = 1355
    ER_VIEW_INVALID                            = 1356
    ER_SP_NO_DROP_SP                           = 1357
    ER_SP_GOTO_IN_HNDLR                        = 1358
    ER_TRG_ALREADY_EXISTS                      = 1359
    ER_TRG_DOES_NOT_EXIST                      = 1360
    ER_TRG_ON_VIEW_OR_TEMP_TABLE               = 1361
    ER_TRG_CANT_CHANGE_ROW                     = 1362
    ER_TRG_NO_SUCH_ROW_IN_TRG                  = 1363
    ER_NO_DEFAULT_FOR_FIELD                    = 1364
    ER_DIVISION_BY_ZERO                        = 1365
    ER_TRUNCATED_WRONG_VALUE_FOR_FIELD         = 1366
    ER_ILLEGAL_VALUE_FOR_TYPE                  = 1367
    ER_VIEW_NONUPD_CHECK                       = 1368
    ER_VIEW_CHECK_FAILED                       = 1369
    ER_PROCACCESS_DENIED_ERROR                 = 1370
    ER_RELAY_LOG_FAIL                          = 1371
    ER_PASSWD_LENGTH                           = 1372
    ER_UNKNOWN_TARGET_BINLOG                   = 1373
    ER_IO_ERR_LOG_INDEX_READ                   = 1374
    ER_BINLOG_PURGE_PROHIBITED                 = 1375
    ER_FSEEK_FAIL                              = 1376
    ER_BINLOG_PURGE_FATAL_ERR                  = 1377
    ER_LOG_IN_USE                              = 1378
    ER_LOG_PURGE_UNKNOWN_ERR                   = 1379
    ER_RELAY_LOG_INIT                          = 1380
    ER_NO_BINARY_LOGGING                       = 1381
    ER_RESERVED_SYNTAX                         = 1382
    ER_WSAS_FAILED                             = 1383
    ER_DIFF_GROUPS_PROC                        = 1384
    ER_NO_GROUP_FOR_PROC                       = 1385
    ER_ORDER_WITH_PROC                         = 1386
    ER_LOGGING_PROHIBIT_CHANGING_OF            = 1387
    ER_NO_FILE_MAPPING                         = 1388
    ER_WRONG_MAGIC                             = 1389
    ER_PS_MANY_PARAM                           = 1390
    ER_KEY_PART_0                              = 1391
    ER_VIEW_CHECKSUM                           = 1392
    ER_VIEW_MULTIUPDATE                        = 1393
    ER_VIEW_NO_INSERT_FIELD_LIST               = 1394
    ER_VIEW_DELETE_MERGE_VIEW                  = 1395
    ER_CANNOT_USER                             = 1396
    ER_XAER_NOTA                               = 1397
    ER_XAER_INVAL                              = 1398
    ER_XAER_RMFAIL                             = 1399
    ER_XAER_OUTSIDE                            = 1400
    ER_XAER_RMERR                              = 1401
    ER_XA_RBROLLBACK                           = 1402
    ER_NONEXISTING_PROC_GRANT                  = 1403
    ER_PROC_AUTO_GRANT_FAIL                    = 1404
    ER_PROC_AUTO_REVOKE_FAIL                   = 1405
    ER_DATA_TOO_LONG                           = 1406
    ER_SP_BAD_SQLSTATE                         = 1407
    ER_STARTUP                                 = 1408
    ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR        = 1409
    ER_CANT_CREATE_USER_WITH_GRANT             = 1410
    ER_WRONG_VALUE_FOR_TYPE                    = 1411
    ER_TABLE_DEF_CHANGED                       = 1412
    ER_SP_DUP_HANDLER                          = 1413
    ER_SP_NOT_VAR_ARG                          = 1414
    ER_SP_NO_RETSET                            = 1415
    ER_CANT_CREATE_GEOMETRY_OBJECT             = 1416
    ER_FAILED_ROUTINE_BREAK_BINLOG             = 1417
    ER_BINLOG_UNSAFE_ROUTINE                   = 1418
    ER_BINLOG_CREATE_ROUTINE_NEED_SUPER        = 1419
    ER_EXEC_STMT_WITH_OPEN_CURSOR              = 1420
    ER_STMT_HAS_NO_OPEN_CURSOR                 = 1421
    ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG         = 1422
    ER_NO_DEFAULT_FOR_VIEW_FIELD               = 1423
    ER_SP_NO_RECURSION                         = 1424
    ER_TOO_BIG_SCALE                           = 1425
    ER_TOO_BIG_PRECISION                       = 1426
    ER_M_BIGGER_THAN_D                         = 1427
    ER_WRONG_LOCK_OF_SYSTEM_TABLE              = 1428
    ER_CONNECT_TO_FOREIGN_DATA_SOURCE          = 1429
    ER_QUERY_ON_FOREIGN_DATA_SOURCE            = 1430
    ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST        = 1431
    ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE = 1432
    ER_FOREIGN_DATA_STRING_INVALID             = 1433
    ER_CANT_CREATE_FEDERATED_TABLE             = 1434
    ER_TRG_IN_WRONG_SCHEMA                     = 1435
    ER_STACK_OVERRUN_NEED_MORE                 = 1436
    ER_TOO_LONG_BODY                           = 1437
    ER_WARN_CANT_DROP_DEFAULT_KEYCACHE         = 1438
    ER_TOO_BIG_DISPLAYWIDTH                    = 1439
    ER_XAER_DUPID                              = 1440
    ER_DATETIME_FUNCTION_OVERFLOW              = 1441
    ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG     = 1442
    ER_VIEW_PREVENT_UPDATE                     = 1443
    ER_PS_NO_RECURSION                         = 1444
    ER_SP_CANT_SET_AUTOCOMMIT                  = 1445
    ER_MALFORMED_DEFINER                       = 1446
    ER_VIEW_FRM_NO_USER                        = 1447
    ER_VIEW_OTHER_USER                         = 1448
    ER_NO_SUCH_USER                            = 1449
    ER_FORBID_SCHEMA_CHANGE                    = 1450
    ER_ROW_IS_REFERENCED_2                     = 1451
    ER_NO_REFERENCED_ROW_2                     = 1452
    ER_SP_BAD_VAR_SHADOW                       = 1453
    ER_TRG_NO_DEFINER                          = 1454
    ER_OLD_FILE_FORMAT                         = 1455
    ER_SP_RECURSION_LIMIT                      = 1456
    ER_SP_PROC_TABLE_CORRUPT                   = 1457
    ER_SP_WRONG_NAME                           = 1458
    ER_TABLE_NEEDS_UPGRADE                     = 1459
    ER_SP_NO_AGGREGATE                         = 1460
    ER_MAX_PREPARED_STMT_COUNT_REACHED         = 1461
    ER_VIEW_RECURSIVE                          = 1462
    ER_NON_GROUPING_FIELD_USED                 = 1463
    ER_TABLE_CANT_HANDLE_SPKEYS                = 1464
    ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA            = 1465
    ER_REMOVED_SPACES                          = 1466
    ER_AUTOINC_READ_FAILED                     = 1467
    ER_USERNAME                                = 1468
    ER_HOSTNAME                                = 1469
    ER_WRONG_STRING_LENGTH                     = 1470
    ER_NON_INSERTABLE_TABLE                    = 1471
)

MySQL error codes

const TimeFormat = "2006-01-02 15:04:05.000000000"

Sandard MySQL datetime format

Variables

var (
    ErrSeq            = ClientError("packet sequence error")
    ErrPkt            = ClientError("malformed packet")
    ErrPktLong        = ClientError("packet too long")
    ErrUnexpNullLCS   = ClientError("unexpected NULL LCS")
    ErrUnexpNullLCB   = ClientError("unexpected NULL LCB")
    ErrUnexpNullDate  = ClientError("unexpected NULL DATETIME")
    ErrUnexpNullTime  = ClientError("unexpected NULL TIME")
    ErrUnkResultPkt   = ClientError("unexpected or unknown result packet")
    ErrNotConn        = ClientError("not connected")
    ErrAlredyConn     = ClientError("not connected")
    ErrBadResult      = ClientError("unexpected result")
    ErrUnreadedReply  = ClientError("reply is not completely read")
    ErrBindCount      = ClientError("wrong number of values for bind")
    ErrBindUnkType    = ClientError("unknown value type for bind")
    ErrRowLength      = ClientError("wrong length of row slice")
    ErrBadCommand     = ClientError("comand isn't text SQL nor *Stmt")
    ErrWrongDateLen   = ClientError("wrong datetime/timestamp length")
    ErrWrongTimeLen   = ClientError("wrong time length")
    ErrUnkMySQLType   = ClientError("unknown MySQL type")
    ErrWrongParamNum  = ClientError("wrong parameter number")
    ErrUnkDataType    = ClientError("unknown data source type")
    ErrSmallPktSize   = ClientError("specified packet size is to small")
    ErrReadAfterEOR   = ClientError("previous ScanRow call returned io.EOF")
    ErrOldProtocol    = ClientError("server does not support 4.1 protocol")
    ErrAuthentication = ClientError("authentication error")
)
var New func(proto, laddr, raddr, user, passwd string, db ...string) Conn

New can be used to establish a connection. It is set by imported engine (see mymysql/native, mymysql/thrsafe)

func DurationString

func DurationString(d time.Duration) string

Convert time.Duration to string representation of mysql.TIME

func End

func End(r Result) error

Read all unreaded rows and discard them. This function is useful if you don't want to use the remaining rows. It has an impact only on current result. If there is multi result query, you must use NextResult method and read/discard all rows in this result, before use other method that sends data to the server. You can't use this function if last GetRow returned nil.

func Exec

func Exec(s Stmt, params ...interface{}) (rows []Row, res Result, err error)

Calls Run and next call GetRow as long as it reads all rows from the result. Next it returns all readed rows as the slice of rows.

func GetRows

func GetRows(r Result) (rows []Row, err error)

Reads all rows from result and returns them as slice.

func ParseDuration

func ParseDuration(str string) (dur time.Duration, err error)

Parse duration from MySQL string format [+-]H+:MM:SS[.UUUUUUUUU]. Leading and trailing spaces are ignored. If format is invalid returns nil.

func ParseTime

func ParseTime(str string, loc *time.Location) (t time.Time, err error)

Parses string datetime in TimeFormat using loc location. Converts MySQL zero to time.Time zero.

func Query

func Query(c Conn, sql string, params ...interface{}) (rows []Row, res Result, err error)

Calls Start and next calls GetRow as long as it reads all rows from the result. Next it returns all readed rows as the slice of rows.

func TimeString

func TimeString(t time.Time) string

Returns t as string in MySQL format Converts time.Time zero to MySQL zero.

func Version

func Version() string

Version returns mymysql version string

type Blob

type Blob []byte

type ClientError

type ClientError string

func (ClientError) Error

func (e ClientError) Error() string

type Conn

type Conn interface {
    ConnCommon

    Clone() Conn
    SetTimeout(time.Duration)
    Connect() error
    NetConn() net.Conn
    SetDialer(Dialer)
    Close() error
    IsConnected() bool
    Reconnect() error
    Use(dbname string) error
    Register(sql string)
    SetMaxPktSize(new_size int) int
    NarrowTypeSet(narrow bool)
    FullFieldInfo(full bool)

    Begin() (Transaction, error)
}

Conn represnts connection to the MySQL server. See mymysql/native for method documentation

func NewFromCF

func NewFromCF(cfgFile string) (con Conn, unk map[string]string, err error)

Creates new conneection handler using configuration in cfgFile. Returns connection handler and map contains unknown options.

Config file format(example):

# mymysql options (if some option isn't specified it defaults to "")

DbRaddr	127.0.0.1:3306
# DbRaddr	/var/run/mysqld/mysqld.sock
DbUser	testuser
DbPass	TestPasswd9
# optional: DbName	test
# optional: DbEncd	utf8
# optional: DbLaddr	127.0.0.1:0
# optional: DbTimeout 15s

# Your options (returned in unk)

MyOpt	some text

type ConnCommon

type ConnCommon interface {
    Start(sql string, params ...interface{}) (Result, error)
    Prepare(sql string) (Stmt, error)

    Ping() error
    ThreadId() uint32
    Escape(txt string) string

    Query(sql string, params ...interface{}) ([]Row, Result, error)
    QueryFirst(sql string, params ...interface{}) (Row, Result, error)
    QueryLast(sql string, params ...interface{}) (Row, Result, error)
}

ConCommon is a common interface to the connection. See mymysql/native for method documentation

type Date

type Date struct {
    Year       int16
    Month, Day byte
}

For MySQL DATE type

func ParseDate

func ParseDate(str string) (dd Date, err error)

Convert string date in format YYYY-MM-DD to Date. Leading and trailing spaces are ignored.

func (Date) IsZero

func (dd Date) IsZero() bool

True if date is 0000-00-00

func (Date) Localtime

func (dd Date) Localtime() time.Time

Converts Date to time.Time using Local location. Converts MySQL zero to time.Time zero.

func (Date) String

func (dd Date) String() string

func (Date) Time

func (dd Date) Time(loc *time.Location) (t time.Time)

Converts Date to time.Time using loc location. Converts MySQL zero to time.Time zero.

type Dialer

type Dialer func(proto, laddr, raddr string, timeout time.Duration) (net.Conn, error)

Dialer can be used to dial connections to MySQL. If Dialer returns (nil, nil) the hook is skipped and normal dialing proceeds.

type Error

type Error struct {
    Code uint16
    Msg  []byte
}

If a function/method returns error you may check the returned error type via a type assertion. If the type assertion succeeds you can retrieve the MySQL error code as below.

Example:

if val, ok := err.(*mysql.Error); ok {
    fmt.Println(val.Code)
}

func (Error) Error

func (err Error) Error() string

type Field

type Field struct {
    Catalog  string
    Db       string
    Table    string
    OrgTable string
    Name     string
    OrgName  string
    DispLen  uint32
    //  Charset  uint16
    Flags uint16
    Type  byte
    Scale byte
}

type Raw

type Raw struct {
    Typ uint16
    Val *[]byte
}

type Result

type Result interface {
    StatusOnly() bool
    ScanRow(Row) error
    GetRow() (Row, error)

    MoreResults() bool
    NextResult() (Result, error)

    Fields() []*Field
    Map(string) int
    Message() string
    AffectedRows() uint64
    InsertId() uint64
    WarnCount() int

    MakeRow() Row
    GetRows() ([]Row, error)
    End() error
    GetFirstRow() (Row, error)
    GetLastRow() (Row, error)
}

Result represents one MySQL result set. See mymysql/native for method documentation

type Row

type Row []interface{}

Result row - contains values for any column of received row.

If row is a result of ordinary text query, its element can be []byte slice, contained result text or nil if NULL is returned.

If it is result of prepared statement execution, its element field can be: intX, uintX, floatX, []byte, Date, Time, time.Time (in Local location) or nil

func ExecFirst

func ExecFirst(s Stmt, params ...interface{}) (row Row, res Result, err error)

Calls Run and next call GetFirstRow

func ExecLast

func ExecLast(s Stmt, params ...interface{}) (row Row, res Result, err error)

Calls Run and next call GetLastRow

func GetFirstRow

func GetFirstRow(r Result) (row Row, err error)

Returns first row and discard others

func GetLastRow

func GetLastRow(r Result) (Row, error)

Returns last row and discard others

func GetRow

func GetRow(r Result) (Row, error)

Calls r.MakeRow and next r.ScanRow. Doesn't return io.EOF error (returns nil row insted).

func QueryFirst

func QueryFirst(c Conn, sql string, params ...interface{}) (row Row, res Result, err error)

Calls Start and next calls GetFirstRow

func QueryLast

func QueryLast(c Conn, sql string, params ...interface{}) (row Row, res Result, err error)

Calls Start and next calls GetLastRow

func (Row) Bin

func (tr Row) Bin(nn int) (bin []byte)

Get the nn-th value and return it as []byte ([]byte{} if NULL)

func (Row) Bool

func (tr Row) Bool(nn int) (val bool)

It is like BoolErr but panics if conversion is impossible.

func (Row) BoolErr

func (tr Row) BoolErr(nn int) (val bool, err error)

Get the nn-th value and return it as bool. Return error if conversion is impossible.

func (Row) Date

func (tr Row) Date(nn int) (val Date)

It is like DateErr but panics if conversion is impossible.

func (Row) DateErr

func (tr Row) DateErr(nn int) (val Date, err error)

Get the nn-th value and return it as Date (0000-00-00 if NULL). Return error if conversion is impossible.

func (Row) Duration

func (tr Row) Duration(nn int) (val time.Duration)

It is like DurationErr but panics if conversion is impossible.

func (Row) DurationErr

func (tr Row) DurationErr(nn int) (val time.Duration, err error)

Get the nn-th value and return it as time.Duration (0 if NULL). Return error if conversion is impossible.

func (Row) Float

func (tr Row) Float(nn int) (val float64)

Get the nn-th value and return it as float64 (0 if NULL). Panic if conversion is impossible.

func (Row) FloatErr

func (tr Row) FloatErr(nn int) (val float64, err error)

Get the nn-th value and return it as float64 (0 if NULL). Return error if conversion is impossible.

func (Row) ForceBool

func (tr Row) ForceBool(nn int) (val bool)

It is like BoolErr but return false if conversion is impossible.

func (Row) ForceDate

func (tr Row) ForceDate(nn int) (val Date)

It is like DateErr but return 0000-00-00 if conversion is impossible.

func (Row) ForceDuration

func (tr Row) ForceDuration(nn int) (val time.Duration)

It is like DurationErr but return 0 if conversion is impossible.

func (Row) ForceFloat

func (tr Row) ForceFloat(nn int) (val float64)

Get the nn-th value and return it as float64. Return 0 if value is NULL or if conversion is impossible.

func (Row) ForceInt

func (tr Row) ForceInt(nn int) (val int)

Get the nn-th value and return it as int. Return 0 if value is NULL or conversion is impossible.

func (Row) ForceInt64

func (tr Row) ForceInt64(nn int) (val int64)

Get the nn-th value and return it as int64. Return 0 if value is NULL or conversion is impossible.

func (Row) ForceLocaltime

func (tr Row) ForceLocaltime(nn int) (val time.Time)

It is like LocaltimeErr but returns 0000-00-00 00:00:00 if conversion is impossible.

func (Row) ForceTime

func (tr Row) ForceTime(nn int, loc *time.Location) (val time.Time)

It is like TimeErr but returns 0000-00-00 00:00:00 if conversion is impossible.

func (Row) ForceUint

func (tr Row) ForceUint(nn int) (val uint)

Get the nn-th value and return it as uint. Return 0 if value is NULL or conversion is impossible.

func (Row) ForceUint64

func (tr Row) ForceUint64(nn int) (val uint64)

Get the nn-th value and return it as uint64. Return 0 if value is NULL or conversion is impossible.

func (Row) Int

func (tr Row) Int(nn int) (val int)

Get the nn-th value and return it as int (0 if NULL). Panic if conversion is impossible.

func (Row) Int64

func (tr Row) Int64(nn int) (val int64)

Get the nn-th value and return it as int64 (0 if NULL). Panic if conversion is impossible.

func (Row) Int64Err

func (tr Row) Int64Err(nn int) (val int64, err error)

Get the nn-th value and return it as int64 (0 if NULL). Return error if conversion is impossible.

func (Row) IntErr

func (tr Row) IntErr(nn int) (val int, err error)

Get the nn-th value and return it as int (0 if NULL). Return error if conversion is impossible.

func (Row) Localtime

func (tr Row) Localtime(nn int) (val time.Time)

As LocaltimeErr but panics if conversion is impossible.

func (Row) LocaltimeErr

func (tr Row) LocaltimeErr(nn int) (t time.Time, err error)

Get the nn-th value and return it as time.Time in Local location (zero if NULL). Returns error if conversion is impossible. It can convert Date to time.Time.

func (Row) Str

func (tr Row) Str(nn int) (str string)

Get the nn-th value and return it as string ("" if NULL)

func (Row) Time

func (tr Row) Time(nn int, loc *time.Location) (val time.Time)

As TimeErr but panics if conversion is impossible.

func (Row) TimeErr

func (tr Row) TimeErr(nn int, loc *time.Location) (t time.Time, err error)

Get the nn-th value and return it as time.Time in loc location (zero if NULL) Returns error if conversion is impossible. It can convert Date to time.Time.

func (Row) Uint

func (tr Row) Uint(nn int) (val uint)

Get the nn-th value and return it as uint (0 if NULL). Panic if conversion is impossible.

func (Row) Uint64

func (tr Row) Uint64(nn int) (val uint64)

Get the nn-th value and return it as uint64 (0 if NULL). Panic if conversion is impossible.

func (Row) Uint64Err

func (tr Row) Uint64Err(nn int) (val uint64, err error)

Get the nn-th value and return it as uint64 (0 if NULL). Return error if conversion is impossible.

func (Row) UintErr

func (tr Row) UintErr(nn int) (val uint, err error)

Get the nn-th value and return it as uint (0 if NULL). Return error if conversion is impossible.

type Stmt

type Stmt interface {
    Bind(params ...interface{})
    Run(params ...interface{}) (Result, error)
    Delete() error
    Reset() error
    SendLongData(pnum int, data interface{}, pkt_size int) error

    Fields() []*Field
    NumParam() int
    WarnCount() int

    Exec(params ...interface{}) ([]Row, Result, error)
    ExecFirst(params ...interface{}) (Row, Result, error)
    ExecLast(params ...interface{}) (Row, Result, error)
}

Stmt represents MySQL prepared statement. See mymysql/native for method documentation

type Timestamp

type Timestamp struct {
    time.Time
}

func (Timestamp) String

func (t Timestamp) String() string

type Transaction

type Transaction interface {
    ConnCommon

    Commit() error
    Rollback() error
    Do(st Stmt) Stmt
    IsValid() bool
}

Transaction represents MySQL transaction See mymysql/native for method documentation

Package mysql imports 13 packages (graph) and is imported by 31 packages. Updated 2014-04-02. Refresh now. Tools for package owners.