mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	* Dropped unused codekit config * Integrated dynamic and static bindata for public * Ignore public bindata * Add a general generate make task * Integrated flexible public assets into web command * Updated vendoring, added all missiong govendor deps * Made the linter happy with the bindata and dynamic code * Moved public bindata definition to modules directory * Ignoring the new bindata path now * Updated to the new public modules import path * Updated public bindata command and drop the new prefix
		
			
				
	
	
		
			262 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			262 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2015 PingCAP, Inc.
 | 
						|
//
 | 
						|
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
// you may not use this file except in compliance with the License.
 | 
						|
// You may obtain a copy of the License at
 | 
						|
//
 | 
						|
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
//
 | 
						|
// Unless required by applicable law or agreed to in writing, software
 | 
						|
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
// See the License for the specific language governing permissions and
 | 
						|
// limitations under the License.
 | 
						|
 | 
						|
package mysql
 | 
						|
 | 
						|
// Version informations.
 | 
						|
const (
 | 
						|
	MinProtocolVersion byte   = 10
 | 
						|
	MaxPayloadLen      int    = 1<<24 - 1
 | 
						|
	ServerVersion      string = "5.5.31-TiDB-1.0"
 | 
						|
)
 | 
						|
 | 
						|
// Header informations.
 | 
						|
const (
 | 
						|
	OKHeader          byte = 0x00
 | 
						|
	ErrHeader         byte = 0xff
 | 
						|
	EOFHeader         byte = 0xfe
 | 
						|
	LocalInFileHeader byte = 0xfb
 | 
						|
)
 | 
						|
 | 
						|
// Server informations.
 | 
						|
const (
 | 
						|
	ServerStatusInTrans            uint16 = 0x0001
 | 
						|
	ServerStatusAutocommit         uint16 = 0x0002
 | 
						|
	ServerMoreResultsExists        uint16 = 0x0008
 | 
						|
	ServerStatusNoGoodIndexUsed    uint16 = 0x0010
 | 
						|
	ServerStatusNoIndexUsed        uint16 = 0x0020
 | 
						|
	ServerStatusCursorExists       uint16 = 0x0040
 | 
						|
	ServerStatusLastRowSend        uint16 = 0x0080
 | 
						|
	ServerStatusDBDropped          uint16 = 0x0100
 | 
						|
	ServerStatusNoBackslashEscaped uint16 = 0x0200
 | 
						|
	ServerStatusMetadataChanged    uint16 = 0x0400
 | 
						|
	ServerStatusWasSlow            uint16 = 0x0800
 | 
						|
	ServerPSOutParams              uint16 = 0x1000
 | 
						|
)
 | 
						|
 | 
						|
// Command informations.
 | 
						|
const (
 | 
						|
	ComSleep byte = iota
 | 
						|
	ComQuit
 | 
						|
	ComInitDB
 | 
						|
	ComQuery
 | 
						|
	ComFieldList
 | 
						|
	ComCreateDB
 | 
						|
	ComDropDB
 | 
						|
	ComRefresh
 | 
						|
	ComShutdown
 | 
						|
	ComStatistics
 | 
						|
	ComProcessInfo
 | 
						|
	ComConnect
 | 
						|
	ComProcessKill
 | 
						|
	ComDebug
 | 
						|
	ComPing
 | 
						|
	ComTime
 | 
						|
	ComDelayedInsert
 | 
						|
	ComChangeUser
 | 
						|
	ComBinlogDump
 | 
						|
	ComTableDump
 | 
						|
	ComConnectOut
 | 
						|
	ComRegisterSlave
 | 
						|
	ComStmtPrepare
 | 
						|
	ComStmtExecute
 | 
						|
	ComStmtSendLongData
 | 
						|
	ComStmtClose
 | 
						|
	ComStmtReset
 | 
						|
	ComSetOption
 | 
						|
	ComStmtFetch
 | 
						|
	ComDaemon
 | 
						|
	ComBinlogDumpGtid
 | 
						|
	ComResetConnection
 | 
						|
)
 | 
						|
 | 
						|
// Client informations.
 | 
						|
const (
 | 
						|
	ClientLongPassword uint32 = 1 << iota
 | 
						|
	ClientFoundRows
 | 
						|
	ClientLongFlag
 | 
						|
	ClientConnectWithDB
 | 
						|
	ClientNoSchema
 | 
						|
	ClientCompress
 | 
						|
	ClientODBC
 | 
						|
	ClientLocalFiles
 | 
						|
	ClientIgnoreSpace
 | 
						|
	ClientProtocol41
 | 
						|
	ClientInteractive
 | 
						|
	ClientSSL
 | 
						|
	ClientIgnoreSigpipe
 | 
						|
	ClientTransactions
 | 
						|
	ClientReserved
 | 
						|
	ClientSecureConnection
 | 
						|
	ClientMultiStatements
 | 
						|
	ClientMultiResults
 | 
						|
	ClientPSMultiResults
 | 
						|
	ClientPluginAuth
 | 
						|
	ClientConnectAtts
 | 
						|
	ClientPluginAuthLenencClientData
 | 
						|
)
 | 
						|
 | 
						|
// Cache type informations.
 | 
						|
const (
 | 
						|
	TypeNoCache byte = 0xff
 | 
						|
)
 | 
						|
 | 
						|
// Auth name informations.
 | 
						|
const (
 | 
						|
	AuthName = "mysql_native_password"
 | 
						|
)
 | 
						|
 | 
						|
// MySQL database and tables.
 | 
						|
const (
 | 
						|
	// SystemDB is the name of system database.
 | 
						|
	SystemDB = "mysql"
 | 
						|
	// UserTable is the table in system db contains user info.
 | 
						|
	UserTable = "User"
 | 
						|
	// DBTable is the table in system db contains db scope privilege info.
 | 
						|
	DBTable = "DB"
 | 
						|
	// TablePrivTable is the table in system db contains table scope privilege info.
 | 
						|
	TablePrivTable = "Tables_priv"
 | 
						|
	// ColumnPrivTable is the table in system db contains column scope privilege info.
 | 
						|
	ColumnPrivTable = "Columns_priv"
 | 
						|
	// GlobalVariablesTable is the table contains global system variables.
 | 
						|
	GlobalVariablesTable = "GLOBAL_VARIABLES"
 | 
						|
	// GlobalStatusTable is the table contains global status variables.
 | 
						|
	GlobalStatusTable = "GLOBAL_STATUS"
 | 
						|
	// TiDBTable is the table contains tidb info.
 | 
						|
	TiDBTable = "tidb"
 | 
						|
)
 | 
						|
 | 
						|
// PrivilegeType  privilege
 | 
						|
type PrivilegeType uint32
 | 
						|
 | 
						|
const (
 | 
						|
	_ PrivilegeType = 1 << iota
 | 
						|
	// CreatePriv is the privilege to create schema/table.
 | 
						|
	CreatePriv
 | 
						|
	// SelectPriv is the privilege to read from table.
 | 
						|
	SelectPriv
 | 
						|
	// InsertPriv is the privilege to insert data into table.
 | 
						|
	InsertPriv
 | 
						|
	// UpdatePriv is the privilege to update data in table.
 | 
						|
	UpdatePriv
 | 
						|
	// DeletePriv is the privilege to delete data from table.
 | 
						|
	DeletePriv
 | 
						|
	// ShowDBPriv is the privilege to run show databases statement.
 | 
						|
	ShowDBPriv
 | 
						|
	// CreateUserPriv is the privilege to create user.
 | 
						|
	CreateUserPriv
 | 
						|
	// DropPriv is the privilege to drop schema/table.
 | 
						|
	DropPriv
 | 
						|
	// GrantPriv is the privilege to grant privilege to user.
 | 
						|
	GrantPriv
 | 
						|
	// AlterPriv is the privilege to run alter statement.
 | 
						|
	AlterPriv
 | 
						|
	// ExecutePriv is the privilege to run execute statement.
 | 
						|
	ExecutePriv
 | 
						|
	// IndexPriv is the privilege to create/drop index.
 | 
						|
	IndexPriv
 | 
						|
	// AllPriv is the privilege for all actions.
 | 
						|
	AllPriv
 | 
						|
)
 | 
						|
 | 
						|
// Priv2UserCol is the privilege to mysql.user table column name.
 | 
						|
var Priv2UserCol = map[PrivilegeType]string{
 | 
						|
	CreatePriv:     "Create_priv",
 | 
						|
	SelectPriv:     "Select_priv",
 | 
						|
	InsertPriv:     "Insert_priv",
 | 
						|
	UpdatePriv:     "Update_priv",
 | 
						|
	DeletePriv:     "Delete_priv",
 | 
						|
	ShowDBPriv:     "Show_db_priv",
 | 
						|
	CreateUserPriv: "Create_user_priv",
 | 
						|
	DropPriv:       "Drop_priv",
 | 
						|
	GrantPriv:      "Grant_priv",
 | 
						|
	AlterPriv:      "Alter_priv",
 | 
						|
	ExecutePriv:    "Execute_priv",
 | 
						|
	IndexPriv:      "Index_priv",
 | 
						|
}
 | 
						|
 | 
						|
// Col2PrivType is the privilege tables column name to privilege type.
 | 
						|
var Col2PrivType = map[string]PrivilegeType{
 | 
						|
	"Create_priv":      CreatePriv,
 | 
						|
	"Select_priv":      SelectPriv,
 | 
						|
	"Insert_priv":      InsertPriv,
 | 
						|
	"Update_priv":      UpdatePriv,
 | 
						|
	"Delete_priv":      DeletePriv,
 | 
						|
	"Show_db_priv":     ShowDBPriv,
 | 
						|
	"Create_user_priv": CreateUserPriv,
 | 
						|
	"Drop_priv":        DropPriv,
 | 
						|
	"Grant_priv":       GrantPriv,
 | 
						|
	"Alter_priv":       AlterPriv,
 | 
						|
	"Execute_priv":     ExecutePriv,
 | 
						|
	"Index_priv":       IndexPriv,
 | 
						|
}
 | 
						|
 | 
						|
// AllGlobalPrivs is all the privileges in global scope.
 | 
						|
var AllGlobalPrivs = []PrivilegeType{SelectPriv, InsertPriv, UpdatePriv, DeletePriv, CreatePriv, DropPriv, GrantPriv, AlterPriv, ShowDBPriv, ExecutePriv, IndexPriv, CreateUserPriv}
 | 
						|
 | 
						|
// Priv2Str is the map for privilege to string.
 | 
						|
var Priv2Str = map[PrivilegeType]string{
 | 
						|
	CreatePriv:     "Create",
 | 
						|
	SelectPriv:     "Select",
 | 
						|
	InsertPriv:     "Insert",
 | 
						|
	UpdatePriv:     "Update",
 | 
						|
	DeletePriv:     "Delete",
 | 
						|
	ShowDBPriv:     "Show Databases",
 | 
						|
	CreateUserPriv: "Create User",
 | 
						|
	DropPriv:       "Drop",
 | 
						|
	GrantPriv:      "Grant Option",
 | 
						|
	AlterPriv:      "Alter",
 | 
						|
	ExecutePriv:    "Execute",
 | 
						|
	IndexPriv:      "Index",
 | 
						|
}
 | 
						|
 | 
						|
// Priv2SetStr is the map for privilege to string.
 | 
						|
var Priv2SetStr = map[PrivilegeType]string{
 | 
						|
	CreatePriv:  "Create",
 | 
						|
	SelectPriv:  "Select",
 | 
						|
	InsertPriv:  "Insert",
 | 
						|
	UpdatePriv:  "Update",
 | 
						|
	DeletePriv:  "Delete",
 | 
						|
	DropPriv:    "Drop",
 | 
						|
	GrantPriv:   "Grant",
 | 
						|
	AlterPriv:   "Alter",
 | 
						|
	ExecutePriv: "Execute",
 | 
						|
	IndexPriv:   "Index",
 | 
						|
}
 | 
						|
 | 
						|
// SetStr2Priv is the map for privilege set string to privilege type.
 | 
						|
var SetStr2Priv = map[string]PrivilegeType{
 | 
						|
	"Create":  CreatePriv,
 | 
						|
	"Select":  SelectPriv,
 | 
						|
	"Insert":  InsertPriv,
 | 
						|
	"Update":  UpdatePriv,
 | 
						|
	"Delete":  DeletePriv,
 | 
						|
	"Drop":    DropPriv,
 | 
						|
	"Grant":   GrantPriv,
 | 
						|
	"Alter":   AlterPriv,
 | 
						|
	"Execute": ExecutePriv,
 | 
						|
	"Index":   IndexPriv,
 | 
						|
}
 | 
						|
 | 
						|
// AllDBPrivs is all the privileges in database scope.
 | 
						|
var AllDBPrivs = []PrivilegeType{SelectPriv, InsertPriv, UpdatePriv, DeletePriv, CreatePriv, DropPriv, GrantPriv, AlterPriv, ExecutePriv, IndexPriv}
 | 
						|
 | 
						|
// AllTablePrivs is all the privileges in table scope.
 | 
						|
var AllTablePrivs = []PrivilegeType{SelectPriv, InsertPriv, UpdatePriv, DeletePriv, CreatePriv, DropPriv, GrantPriv, AlterPriv, IndexPriv}
 | 
						|
 | 
						|
// AllColumnPrivs is all the privileges in column scope.
 | 
						|
var AllColumnPrivs = []PrivilegeType{SelectPriv, InsertPriv, UpdatePriv}
 | 
						|
 | 
						|
// AllPrivilegeLiteral is the string literal for All Privilege.
 | 
						|
const AllPrivilegeLiteral = "ALL PRIVILEGES"
 |