MCPcopy Create free account
hub / github.com/dolthub/doltgresql / updateSessionRootForDatabase

Function updateSessionRootForDatabase

core/context.go:495–582  ·  view source on GitHub ↗

updateSessionRootForDatabase updates the root for all changes made to root object collections within the context values.

(ctx *sql.Context, db string, cv *contextValues)

Source from the content-addressed store, hash-verified

493// updateSessionRootForDatabase updates the root for all changes made to root object collections within the context
494// values.
495func updateSessionRootForDatabase(ctx *sql.Context, db string, cv *contextValues) error {
496 session, root, err := getRootFromContextForDatabase(ctx, db)
497 if err != nil {
498 return err
499 }
500
501 newRoot := root
502 if cv.seqs != nil && cv.seqs[db] != nil {
503 retRoot, err := cv.seqs[db].UpdateRoot(ctx, newRoot)
504 if err != nil {
505 return err
506 }
507 newRoot = retRoot.(*RootValue)
508 delete(cv.seqs, db)
509 }
510
511 if cv.funcs != nil && cv.funcs[db] != nil && cv.funcs[db].DiffersFrom(ctx, root) {
512 retRoot, err := cv.funcs[db].UpdateRoot(ctx, newRoot)
513 if err != nil {
514 return err
515 }
516 newRoot = retRoot.(*RootValue)
517 delete(cv.funcs, db)
518 }
519
520 if cv.procs != nil && cv.procs[db] != nil && cv.procs[db].DiffersFrom(ctx, root) {
521 retRoot, err := cv.procs[db].UpdateRoot(ctx, newRoot)
522 if err != nil {
523 return err
524 }
525 newRoot = retRoot.(*RootValue)
526 delete(cv.procs, db)
527 }
528
529 if cv.trigs != nil && cv.trigs[db] != nil && cv.trigs[db].DiffersFrom(ctx, root) {
530 retRoot, err := cv.trigs[db].UpdateRoot(ctx, newRoot)
531 if err != nil {
532 return err
533 }
534 newRoot = retRoot.(*RootValue)
535 delete(cv.trigs, db)
536 }
537
538 if cv.exts != nil && cv.exts[db] != nil && cv.exts[db].DiffersFrom(ctx, root) {
539 retRoot, err := cv.exts[db].UpdateRoot(ctx, newRoot)
540 if err != nil {
541 return err
542 }
543 newRoot = retRoot.(*RootValue)
544 delete(cv.exts, db)
545 }
546
547 if cv.types != nil && cv.types[db] != nil {
548 retRoot, err := cv.types[db].UpdateRoot(ctx, newRoot)
549 if err != nil {
550 return err
551 }
552 newRoot = retRoot.(*RootValue)

Callers 1

Calls 4

rootValueChangedFunction · 0.85
UpdateRootMethod · 0.65
DiffersFromMethod · 0.45

Tested by

no test coverage detected