const.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. package mysql
  2. const (
  3. MinProtocolVersion byte = 10
  4. MaxPayloadLen int = 1<<24 - 1
  5. TimeFormat string = "2006-01-02 15:04:05"
  6. )
  7. const (
  8. OK_HEADER byte = 0x00
  9. MORE_DATE_HEADER byte = 0x01
  10. ERR_HEADER byte = 0xff
  11. EOF_HEADER byte = 0xfe
  12. LocalInFile_HEADER byte = 0xfb
  13. CACHE_SHA2_FAST_AUTH byte = 0x03
  14. CACHE_SHA2_FULL_AUTH byte = 0x04
  15. )
  16. const (
  17. AUTH_MYSQL_OLD_PASSWORD = "mysql_old_password"
  18. AUTH_NATIVE_PASSWORD = "mysql_native_password"
  19. AUTH_CACHING_SHA2_PASSWORD = "caching_sha2_password"
  20. AUTH_SHA256_PASSWORD = "sha256_password"
  21. )
  22. const (
  23. SERVER_STATUS_IN_TRANS uint16 = 0x0001
  24. SERVER_STATUS_AUTOCOMMIT uint16 = 0x0002
  25. SERVER_MORE_RESULTS_EXISTS uint16 = 0x0008
  26. SERVER_STATUS_NO_GOOD_INDEX_USED uint16 = 0x0010
  27. SERVER_STATUS_NO_INDEX_USED uint16 = 0x0020
  28. SERVER_STATUS_CURSOR_EXISTS uint16 = 0x0040
  29. SERVER_STATUS_LAST_ROW_SEND uint16 = 0x0080
  30. SERVER_STATUS_DB_DROPPED uint16 = 0x0100
  31. SERVER_STATUS_NO_BACKSLASH_ESCAPED uint16 = 0x0200
  32. SERVER_STATUS_METADATA_CHANGED uint16 = 0x0400
  33. SERVER_QUERY_WAS_SLOW uint16 = 0x0800
  34. SERVER_PS_OUT_PARAMS uint16 = 0x1000
  35. )
  36. const (
  37. COM_SLEEP byte = iota
  38. COM_QUIT
  39. COM_INIT_DB
  40. COM_QUERY
  41. COM_FIELD_LIST
  42. COM_CREATE_DB
  43. COM_DROP_DB
  44. COM_REFRESH
  45. COM_SHUTDOWN
  46. COM_STATISTICS
  47. COM_PROCESS_INFO
  48. COM_CONNECT
  49. COM_PROCESS_KILL
  50. COM_DEBUG
  51. COM_PING
  52. COM_TIME
  53. COM_DELAYED_INSERT
  54. COM_CHANGE_USER
  55. COM_BINLOG_DUMP
  56. COM_TABLE_DUMP
  57. COM_CONNECT_OUT
  58. COM_REGISTER_SLAVE
  59. COM_STMT_PREPARE
  60. COM_STMT_EXECUTE
  61. COM_STMT_SEND_LONG_DATA
  62. COM_STMT_CLOSE
  63. COM_STMT_RESET
  64. COM_SET_OPTION
  65. COM_STMT_FETCH
  66. COM_DAEMON
  67. COM_BINLOG_DUMP_GTID
  68. COM_RESET_CONNECTION
  69. )
  70. const (
  71. CLIENT_LONG_PASSWORD uint32 = 1 << iota
  72. CLIENT_FOUND_ROWS
  73. CLIENT_LONG_FLAG
  74. CLIENT_CONNECT_WITH_DB
  75. CLIENT_NO_SCHEMA
  76. CLIENT_COMPRESS
  77. CLIENT_ODBC
  78. CLIENT_LOCAL_FILES
  79. CLIENT_IGNORE_SPACE
  80. CLIENT_PROTOCOL_41
  81. CLIENT_INTERACTIVE
  82. CLIENT_SSL
  83. CLIENT_IGNORE_SIGPIPE
  84. CLIENT_TRANSACTIONS
  85. CLIENT_RESERVED
  86. CLIENT_SECURE_CONNECTION
  87. CLIENT_MULTI_STATEMENTS
  88. CLIENT_MULTI_RESULTS
  89. CLIENT_PS_MULTI_RESULTS
  90. CLIENT_PLUGIN_AUTH
  91. CLIENT_CONNECT_ATTRS
  92. CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA
  93. )
  94. const (
  95. MYSQL_TYPE_DECIMAL byte = iota
  96. MYSQL_TYPE_TINY
  97. MYSQL_TYPE_SHORT
  98. MYSQL_TYPE_LONG
  99. MYSQL_TYPE_FLOAT
  100. MYSQL_TYPE_DOUBLE
  101. MYSQL_TYPE_NULL
  102. MYSQL_TYPE_TIMESTAMP
  103. MYSQL_TYPE_LONGLONG
  104. MYSQL_TYPE_INT24
  105. MYSQL_TYPE_DATE
  106. MYSQL_TYPE_TIME
  107. MYSQL_TYPE_DATETIME
  108. MYSQL_TYPE_YEAR
  109. MYSQL_TYPE_NEWDATE
  110. MYSQL_TYPE_VARCHAR
  111. MYSQL_TYPE_BIT
  112. //mysql 5.6
  113. MYSQL_TYPE_TIMESTAMP2
  114. MYSQL_TYPE_DATETIME2
  115. MYSQL_TYPE_TIME2
  116. )
  117. const (
  118. MYSQL_TYPE_JSON byte = iota + 0xf5
  119. MYSQL_TYPE_NEWDECIMAL
  120. MYSQL_TYPE_ENUM
  121. MYSQL_TYPE_SET
  122. MYSQL_TYPE_TINY_BLOB
  123. MYSQL_TYPE_MEDIUM_BLOB
  124. MYSQL_TYPE_LONG_BLOB
  125. MYSQL_TYPE_BLOB
  126. MYSQL_TYPE_VAR_STRING
  127. MYSQL_TYPE_STRING
  128. MYSQL_TYPE_GEOMETRY
  129. )
  130. const (
  131. NOT_NULL_FLAG = 1
  132. PRI_KEY_FLAG = 2
  133. UNIQUE_KEY_FLAG = 4
  134. BLOB_FLAG = 16
  135. UNSIGNED_FLAG = 32
  136. ZEROFILL_FLAG = 64
  137. BINARY_FLAG = 128
  138. ENUM_FLAG = 256
  139. AUTO_INCREMENT_FLAG = 512
  140. TIMESTAMP_FLAG = 1024
  141. SET_FLAG = 2048
  142. NUM_FLAG = 32768
  143. PART_KEY_FLAG = 16384
  144. GROUP_FLAG = 32768
  145. UNIQUE_FLAG = 65536
  146. )
  147. const (
  148. DEFAULT_CHARSET = "utf8"
  149. DEFAULT_COLLATION_ID uint8 = 33
  150. DEFAULT_COLLATION_NAME string = "utf8_general_ci"
  151. )
  152. // Like vitess, use flavor for different MySQL versions,
  153. const (
  154. MySQLFlavor = "mysql"
  155. MariaDBFlavor = "mariadb"
  156. )
  157. const (
  158. MYSQL_OPTION_MULTI_STATEMENTS_ON = iota
  159. MYSQL_OPTION_MULTI_STATEMENTS_OFF
  160. )