MCPcopy Index your code
hub / github.com/wavetermdev/waveterm / dbGetFileParts

Function dbGetFileParts

pkg/filestore/blockstore_dbops.go:65–84  ·  view source on GitHub ↗
(ctx context.Context, zoneId string, name string, parts []int)

Source from the content-addressed store, hash-verified

63}
64
65func dbGetFileParts(ctx context.Context, zoneId string, name string, parts []int) (map[int]*DataCacheEntry, error) {
66 if len(parts) == 0 {
67 return nil, nil
68 }
69 return WithTxRtn(ctx, func(tx *TxWrap) (map[int]*DataCacheEntry, error) {
70 var data []*DataCacheEntry
71 query := "SELECT partidx, data FROM db_file_data WHERE zoneid = ? AND name = ? AND partidx IN (SELECT value FROM json_each(?))"
72 tx.Select(&data, query, zoneId, name, dbutil.QuickJsonArr(parts))
73 rtn := make(map[int]*DataCacheEntry)
74 for _, d := range data {
75 if cap(d.Data) != int(partDataSize) {
76 newData := make([]byte, len(d.Data), partDataSize)
77 copy(newData, d.Data)
78 d.Data = newData
79 }
80 rtn[d.PartIdx] = d
81 }
82 return rtn, nil
83 })
84}
85
86func dbGetZoneFiles(ctx context.Context, zoneId string) ([]*WaveFile, error) {
87 return WithTxRtn(ctx, func(tx *TxWrap) ([]*WaveFile, error) {

Callers 2

loadDataPartsForReadMethod · 0.85

Calls 2

QuickJsonArrFunction · 0.92
WithTxRtnFunction · 0.70

Tested by

no test coverage detected