MCPcopy Create free account
hub / github.com/GoEdgeLab/EdgeNode / Init

Method Init

internal/caches/list_file_db_sqlite.go:123–186  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

121}
122
123func (this *SQLiteFileListDB) Init() error {
124 this.itemsTableName = "cacheItems"
125
126 // 创建
127 var err = this.initTables(1)
128 if err != nil {
129 return fmt.Errorf("init tables failed: %w", err)
130 }
131
132 // 常用语句
133 this.existsByHashStmt, err = this.readDB.Prepare(`SELECT "expiredAt" FROM "` + this.itemsTableName + `" INDEXED BY "hash" WHERE "hash"=? AND expiredAt>? LIMIT 1`)
134 if err != nil {
135 return err
136 }
137
138 this.insertSQL = `INSERT INTO "` + this.itemsTableName + `" ("hash", "key", "headerSize", "bodySize", "metaSize", "expiredAt", "staleAt", "host", "serverId", "createdAt") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
139 this.insertStmt, err = this.writeDB.Prepare(this.insertSQL)
140 if err != nil {
141 return err
142 }
143
144 this.selectByHashStmt, err = this.readDB.Prepare(`SELECT "key", "headerSize", "bodySize", "metaSize", "expiredAt" FROM "` + this.itemsTableName + `" WHERE "hash"=? LIMIT 1`)
145 if err != nil {
146 return err
147 }
148
149 this.selectHashListStmt, err = this.readDB.Prepare(`SELECT "id", "hash" FROM "` + this.itemsTableName + `" WHERE id>? ORDER BY id ASC LIMIT 2000`)
150 if err != nil {
151 return err
152 }
153
154 this.deleteByHashSQL = `DELETE FROM "` + this.itemsTableName + `" WHERE "hash"=?`
155 this.deleteByHashStmt, err = this.writeDB.Prepare(this.deleteByHashSQL)
156 if err != nil {
157 return err
158 }
159
160 this.statStmt, err = this.readDB.Prepare(`SELECT COUNT(*), IFNULL(SUM(headerSize+bodySize+metaSize), 0), IFNULL(SUM(headerSize+bodySize), 0) FROM "` + this.itemsTableName + `"`)
161 if err != nil {
162 return err
163 }
164
165 this.purgeStmt, err = this.readDB.Prepare(`SELECT "hash" FROM "` + this.itemsTableName + `" WHERE staleAt<=? LIMIT ?`)
166 if err != nil {
167 return err
168 }
169
170 this.deleteAllStmt, err = this.writeDB.Prepare(`DELETE FROM "` + this.itemsTableName + `"`)
171 if err != nil {
172 return err
173 }
174
175 this.listOlderItemsStmt, err = this.readDB.Prepare(`SELECT "hash" FROM "` + this.itemsTableName + `" ORDER BY "id" ASC LIMIT ?`)
176 if err != nil {
177 return err
178 }
179
180 this.isReady = true

Callers 1

loadHashMapMethod · 0.95

Calls 4

initTablesMethod · 0.95
loadHashMapMethod · 0.95
ErrorfMethod · 0.80
PrepareMethod · 0.45

Tested by

no test coverage detected