diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-01-19 13:53:16 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-01-19 13:53:16 -0800 |
| commit | 4c5b752b040bbbee34fdc1db61fe6e210fb11961 (patch) | |
| tree | 179a33da743be436b38f7ec5dd5c9562cd40898e /weed/filer/mysql/mysql_store.go | |
| parent | 96354208c57c69b05a9c94fc26ae13860f1f5008 (diff) | |
| download | seaweedfs-4c5b752b040bbbee34fdc1db61fe6e210fb11961.tar.xz seaweedfs-4c5b752b040bbbee34fdc1db61fe6e210fb11961.zip | |
restructuring sql stores
Diffstat (limited to 'weed/filer/mysql/mysql_store.go')
| -rw-r--r-- | weed/filer/mysql/mysql_store.go | 45 |
1 files changed, 37 insertions, 8 deletions
diff --git a/weed/filer/mysql/mysql_store.go b/weed/filer/mysql/mysql_store.go index 70f729fc9..479d2eed1 100644 --- a/weed/filer/mysql/mysql_store.go +++ b/weed/filer/mysql/mysql_store.go @@ -15,6 +15,41 @@ const ( CONNECTION_URL_PATTERN = "%s:%s@tcp(%s:%d)/%s?charset=utf8" ) +type SqlGenMysql struct { +} + +var ( + _ = abstract_sql.SqlGenerator(&SqlGenMysql{}) +) + +func (gen *SqlGenMysql) GetSqlInsert(bucket string) string { + return "INSERT INTO filemeta (dirhash,name,directory,meta) VALUES(?,?,?,?)" +} + +func (gen *SqlGenMysql) GetSqlUpdate(bucket string) string { + return "UPDATE filemeta SET meta=? WHERE dirhash=? AND name=? AND directory=?" +} + +func (gen *SqlGenMysql) GetSqlFind(bucket string) string { + return "SELECT meta FROM filemeta WHERE dirhash=? AND name=? AND directory=?" +} + +func (gen *SqlGenMysql) GetSqlDelete(bucket string) string { + return "DELETE FROM filemeta WHERE dirhash=? AND name=? AND directory=?" +} + +func (gen *SqlGenMysql) GetSqlDeleteFolderChildren(bucket string) string { + return "DELETE FROM filemeta WHERE dirhash=? AND directory=?" +} + +func (gen *SqlGenMysql) GetSqlListExclusive(bucket string) string { + return "SELECT NAME, meta FROM filemeta WHERE dirhash=? AND name>? AND directory=? AND name like ? ORDER BY NAME ASC LIMIT ?" +} + +func (gen *SqlGenMysql) GetSqlListInclusive(bucket string) string { + return "SELECT NAME, meta FROM filemeta WHERE dirhash=? AND name>=? AND directory=? AND name like ? ORDER BY NAME ASC LIMIT ?" +} + func init() { filer.Stores = append(filer.Stores, &MysqlStore{}) } @@ -43,14 +78,8 @@ func (store *MysqlStore) Initialize(configuration util.Configuration, prefix str func (store *MysqlStore) initialize(user, password, hostname string, port int, database string, maxIdle, maxOpen, maxLifetimeSeconds int, interpolateParams bool) (err error) { - // - store.SqlInsert = "INSERT INTO filemeta (dirhash,name,directory,meta) VALUES(?,?,?,?)" - store.SqlUpdate = "UPDATE filemeta SET meta=? WHERE dirhash=? AND name=? AND directory=?" - store.SqlFind = "SELECT meta FROM filemeta WHERE dirhash=? AND name=? AND directory=?" - store.SqlDelete = "DELETE FROM filemeta WHERE dirhash=? AND name=? AND directory=?" - store.SqlDeleteFolderChildren = "DELETE FROM filemeta WHERE dirhash=? AND directory=?" - store.SqlListExclusive = "SELECT NAME, meta FROM filemeta WHERE dirhash=? AND name>? AND directory=? AND name like ? ORDER BY NAME ASC LIMIT ?" - store.SqlListInclusive = "SELECT NAME, meta FROM filemeta WHERE dirhash=? AND name>=? AND directory=? AND name like ? ORDER BY NAME ASC LIMIT ?" + + store.SqlGenerator = &SqlGenMysql{} sqlUrl := fmt.Sprintf(CONNECTION_URL_PATTERN, user, password, hostname, port, database) if interpolateParams { |
