MCPcopy Index your code
hub / github.com/CovenantSQL/CovenantSQL / writeQuery

Method writeQuery

worker/db.go:397–433  ·  view source on GitHub ↗
(request *types.Request)

Source from the content-addressed store, hash-verified

395}
396
397func (db *Database) writeQuery(request *types.Request) (tracker *x.QueryTracker, response *types.Response, err error) {
398 // check database size first, wal/kayak/chain database size is not included
399 if db.cfg.SpaceLimit > 0 {
400 path := filepath.Join(db.cfg.DataDir, StorageFileName)
401 var statInfo os.FileInfo
402 if statInfo, err = os.Stat(path); err != nil {
403 if !os.IsNotExist(err) {
404 return
405 }
406 } else {
407 if uint64(statInfo.Size()) > db.cfg.SpaceLimit {
408 // rejected
409 err = ErrSpaceLimitExceeded
410 return
411 }
412 }
413 }
414
415 // call kayak runtime Process
416 var result interface{}
417 if result, _, err = db.kayakRuntime.Apply(request.GetContext(), request); err != nil {
418 err = errors.Wrap(err, "apply failed")
419 return
420 }
421
422 var (
423 tr *TrackerAndResponse
424 ok bool
425 )
426 if tr, ok = (result).(*TrackerAndResponse); !ok {
427 err = errors.Wrap(err, "invalid response type")
428 return
429 }
430 tracker = tr.Tracker
431 response = tr.Response
432 return
433}
434
435func (db *Database) saveAck(ackHeader *types.SignedAckHeader) (err error) {
436 return db.chain.VerifyAndPushAckedQuery(ackHeader)

Callers 1

QueryMethod · 0.95

Calls 3

StatMethod · 0.80
GetContextMethod · 0.65
ApplyMethod · 0.45

Tested by

no test coverage detected