MCPcopy Create free account
hub / github.com/apache/kvrocks-controller / List

Method List

store/engine/postgresql/postgresql.go:181–220  ·  view source on GitHub ↗
(ctx context.Context, prefix string)

Source from the content-addressed store, hash-verified

179}
180
181func (p *Postgresql) List(ctx context.Context, prefix string) ([]engine.Entry, error) {
182 prefixWithWildcard := prefix + "%"
183 query := "SELECT key, value from kv WHERE key LIKE $1"
184 rows, err := p.db.Query(query, prefixWithWildcard)
185 if err != nil {
186 return nil, err
187 }
188 defer rows.Close()
189
190 prefixLen := len(prefix)
191 entries := make([]engine.Entry, 0)
192 for rows.Next() {
193 var key string
194 var value []byte
195
196 err := rows.Scan(&key, &value)
197 if err != nil {
198 return nil, err
199 }
200
201 if key == prefix {
202 continue
203 }
204
205 key = strings.TrimLeft(key[prefixLen+1:], "/")
206 if strings.ContainsRune(key, '/') {
207 continue
208 }
209 entries = append(entries, engine.Entry{
210 Key: key,
211 Value: value,
212 })
213 }
214
215 if err := rows.Err(); err != nil {
216 return nil, err
217 }
218
219 return entries, nil
220}
221
222func (p *Postgresql) electLoop() {
223 defer p.wg.Done()

Callers

nothing calls this directly

Calls 1

CloseMethod · 0.65

Tested by

no test coverage detected