()
| 1971 | } |
| 1972 | |
| 1973 | func 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 | } |
nothing calls this directly
no test coverage detected