MCPcopy Create free account
hub / github.com/bytebase/bytebase / getSheet

Method getSheet

backend/store/sheet.go:60–106  ·  view source on GitHub ↗

getSheet is the internal helper for fetching a single sheet by SHA256.

(ctx context.Context, sha256Hex string, loadFull bool)

Source from the content-addressed store, hash-verified

58
59// getSheet is the internal helper for fetching a single sheet by SHA256.
60func (s *Store) getSheet(ctx context.Context, sha256Hex string, loadFull bool) (*SheetMessage, error) {
61 statementField := fmt.Sprintf("LEFT(content, %d)", common.MaxSheetSize)
62 if loadFull {
63 statementField = "content"
64 }
65
66 q := qb.Q().Space(fmt.Sprintf(`
67 SELECT
68 %s,
69 OCTET_LENGTH(content)
70 FROM sheet_blob
71 WHERE sha256 = decode(?, 'hex')`, statementField), sha256Hex)
72
73 query, args, err := q.ToSQL()
74 if err != nil {
75 return nil, errors.Wrapf(err, "failed to build sql")
76 }
77
78 rows, err := s.GetDB().QueryContext(ctx, query, args...)
79 if err != nil {
80 return nil, err
81 }
82 defer rows.Close()
83
84 var sheet *SheetMessage
85 if rows.Next() {
86 sheet = &SheetMessage{
87 Sha256: sha256Hex,
88 }
89 if err := rows.Scan(
90 &sheet.Statement,
91 &sheet.Size,
92 ); err != nil {
93 return nil, err
94 }
95 }
96
97 if err := rows.Err(); err != nil {
98 return nil, err
99 }
100
101 if sheet == nil {
102 return nil, nil
103 }
104
105 return sheet, nil
106}
107
108// CreateSheets creates sheet blobs using content-addressed storage.
109// Each sheet is identified by the SHA256 hash of its statement.

Callers 8

GetSheetTruncatedMethod · 0.95
GetSheetFullMethod · 0.95
ReleaseFileDetailPanelFunction · 0.80
useTaskRunLogDataFunction · 0.80
RevisionDetailPanelFunction · 0.80
createSheetSliceFunction · 0.80
downloadSheetFunction · 0.80
downloadSheetFunction · 0.80

Calls 8

GetDBMethod · 0.95
QFunction · 0.92
SpaceMethod · 0.80
ToSQLMethod · 0.80
QueryContextMethod · 0.80
ScanMethod · 0.80
CloseMethod · 0.65
NextMethod · 0.45

Tested by

no test coverage detected