blob: 41a6fed2e4f90c8075cf6eda986e804aa8c46729 [file] [log] [blame]
Julien Schmidtb8ae1f22012-05-04 02:19:161// Go MySQL Driver - A MySQL-Driver for Go's database/sql package
2//
3// Copyright 2012 Julien Schmidt. All rights reserved.
4// http://www.julienschmidt.com
5//
6// This Source Code Form is subject to the terms of the Mozilla Public
7// License, v. 2.0. If a copy of the MPL was not distributed with this file,
8// You can obtain one at http://mozilla.org/MPL/2.0/.
9package mysql
10
11// Constants documentation:
12// http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol
13
14const (
15 MIN_PROTOCOL_VERSION = 10
16 MAX_PACKET_SIZE = 1<<24 - 1
17 TIME_FORMAT = "2006-01-02 15:04:05.000000000"
18)
19
20type ClientFlag uint32
21
22const (
23 CLIENT_LONG_PASSWORD ClientFlag = 1 << iota
24 CLIENT_FOUND_ROWS
25 CLIENT_LONG_FLAG
26 CLIENT_CONNECT_WITH_DB
27 CLIENT_NO_SCHEMA
28 CLIENT_COMPRESS
29 CLIENT_ODBC
30 CLIENT_LOCAL_FILES
31 CLIENT_IGNORE_SPACE
32 CLIENT_PROTOCOL_41
33 CLIENT_INTERACTIVE
34 CLIENT_SSL
35 CLIENT_IGNORE_SIGPIPE
36 CLIENT_TRANSACTIONS
37 CLIENT_RESERVED
38 CLIENT_SECURE_CONN
39 CLIENT_MULTI_STATEMENTS
40 CLIENT_MULTI_RESULTS
41)
42
43type commandType byte
44
45const (
46 COM_QUIT commandType = iota + 1
47 COM_INIT_DB
48 COM_QUERY
49 COM_FIELD_LIST
50 COM_CREATE_DB
51 COM_DROP_DB
52 COM_REFRESH
53 COM_SHUTDOWN
54 COM_STATISTICS
55 COM_PROCESS_INFO
56 COM_CONNECT
57 COM_PROCESS_KILL
58 COM_DEBUG
59 COM_PING
60 COM_TIME
61 COM_DELAYED_INSERT
62 COM_CHANGE_USER
63 COM_BINLOG_DUMP
64 COM_TABLE_DUMP
65 COM_CONNECT_OUT
66 COM_REGISTER_SLAVE
67 COM_STMT_PREPARE
68 COM_STMT_EXECUTE
69 COM_STMT_SEND_LONG_DATA
70 COM_STMT_CLOSE
71 COM_STMT_RESET
72 COM_SET_OPTION
73 COM_STMT_FETCH
74)
75
76type FieldType byte
77
78const (
79 FIELD_TYPE_DECIMAL FieldType = iota
80 FIELD_TYPE_TINY
81 FIELD_TYPE_SHORT
82 FIELD_TYPE_LONG
83 FIELD_TYPE_FLOAT
84 FIELD_TYPE_DOUBLE
85 FIELD_TYPE_NULL
86 FIELD_TYPE_TIMESTAMP
87 FIELD_TYPE_LONGLONG
88 FIELD_TYPE_INT24
89 FIELD_TYPE_DATE
90 FIELD_TYPE_TIME
91 FIELD_TYPE_DATETIME
92 FIELD_TYPE_YEAR
93 FIELD_TYPE_NEWDATE
94 FIELD_TYPE_VARCHAR
95 FIELD_TYPE_BIT
96)
97const (
98 FIELD_TYPE_NEWDECIMAL FieldType = iota + 0xf6
99 FIELD_TYPE_ENUM
100 FIELD_TYPE_SET
101 FIELD_TYPE_TINY_BLOB
102 FIELD_TYPE_MEDIUM_BLOB
103 FIELD_TYPE_LONG_BLOB
104 FIELD_TYPE_BLOB
105 FIELD_TYPE_VAR_STRING
106 FIELD_TYPE_STRING
107 FIELD_TYPE_GEOMETRY
108)
109
110type FieldFlag uint16
111
112const (
113 FLAG_NOT_NULL FieldFlag = 1 << iota
114 FLAG_PRI_KEY
115 FLAG_UNIQUE_KEY
116 FLAG_MULTIPLE_KEY
117 FLAG_BLOB
118 FLAG_UNSIGNED
119 FLAG_ZEROFILL
120 FLAG_BINARY
121 FLAG_ENUM
122 FLAG_AUTO_INCREMENT
123 FLAG_TIMESTAMP
124 FLAG_SET
125 FLAG_UNKNOWN_1
126 FLAG_UNKNOWN_2
127 FLAG_UNKNOWN_3
128 FLAG_UNKNOWN_4
129)