MCPcopy
hub / github.com/etcd-io/bbolt / ExampleDB_Begin

Function ExampleDB_Begin

db_test.go:1973–2030  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1971}
1972
1973func ExampleDB_Begin() {
1974 // Open the database.
1975 db, err := bolt.Open(tempfile(), 0600, nil)
1976 if err != nil {
1977 log.Fatal(err)
1978 }
1979 defer os.Remove(db.Path())
1980
1981 // Create a bucket using a read-write transaction.
1982 if err = db.Update(func(tx *bolt.Tx) error {
1983 _, err := tx.CreateBucket([]byte("widgets"))
1984 return err
1985 }); err != nil {
1986 log.Fatal(err)
1987 }
1988
1989 // Create several keys in a transaction.
1990 tx, err := db.Begin(true)
1991 if err != nil {
1992 log.Fatal(err)
1993 }
1994 b := tx.Bucket([]byte("widgets"))
1995 if err = b.Put([]byte("john"), []byte("blue")); err != nil {
1996 log.Fatal(err)
1997 }
1998 if err = b.Put([]byte("abby"), []byte("red")); err != nil {
1999 log.Fatal(err)
2000 }
2001 if err = b.Put([]byte("zephyr"), []byte("purple")); err != nil {
2002 log.Fatal(err)
2003 }
2004 if err = tx.Commit(); err != nil {
2005 log.Fatal(err)
2006 }
2007
2008 // Iterate over the values in sorted key order.
2009 tx, err = db.Begin(false)
2010 if err != nil {
2011 log.Fatal(err)
2012 }
2013 c := tx.Bucket([]byte("widgets")).Cursor()
2014 for k, v := c.First(); k != nil; k, v = c.Next() {
2015 fmt.Printf("%s likes %s\n", k, v)
2016 }
2017
2018 if err = tx.Rollback(); err != nil {
2019 log.Fatal(err)
2020 }
2021
2022 if err = db.Close(); err != nil {
2023 log.Fatal(err)
2024 }
2025
2026 // Output:
2027 // abby likes red
2028 // john likes blue
2029 // zephyr likes purple
2030}

Callers

nothing calls this directly

Calls 14

tempfileFunction · 0.85
UpdateMethod · 0.80
BeginMethod · 0.80
CommitMethod · 0.80
FirstMethod · 0.80
NextMethod · 0.80
FatalMethod · 0.65
RollbackMethod · 0.65
PathMethod · 0.45
CreateBucketMethod · 0.45
BucketMethod · 0.45
PutMethod · 0.45

Tested by

no test coverage detected