const.go 3.3 KB

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