Skip to content

Instantly share code, notes, and snippets.

@beefsack
Created September 8, 2014 14:53
Show Gist options
  • Select an option

  • Save beefsack/e212098e908ecce78c8b to your computer and use it in GitHub Desktop.

Select an option

Save beefsack/e212098e908ecce78c8b to your computer and use it in GitHub Desktop.
Example showing OldValue and NewValue empty
package main
import (
"log"
r "github.com/dancannon/gorethink"
"github.com/davecgh/go-spew/spew"
)
type Blah struct {
Id int `gorethink:"id,omitempty"`
Name string `gorethink:"name"`
}
func main() {
s, err := r.Connect(r.ConnectOpts{
Address: "localhost:28015",
})
if err != nil {
log.Fatal(err)
}
// Ignore errors here for the sake of brevity.
r.DbCreate("test").RunWrite(s)
r.Db("test").TableCreate("blah").RunWrite(s)
r.Db("test").Table("blah").Delete().RunWrite(s)
log.Print("Testing insert")
wr, err := r.Db("test").Table("blah").Insert(Blah{
Id: 1,
Name: "hello",
}, r.InsertOpts{
ReturnChanges: true,
}).RunWrite(s)
if err != nil {
log.Fatal(err)
}
spew.Dump(wr)
if wr.Inserted == 0 {
log.Printf("None were inserted", wr)
}
if wr.OldValue != nil {
log.Print("Old value was returned when it shouldn't have been")
}
if wr.NewValue == nil {
log.Print("New value was not returned")
}
log.Print("Testing update")
wr, err = r.Db("test").Table("blah").Limit(1).Update(Blah{
Id: 1,
Name: "hello2",
}, r.UpdateOpts{
ReturnChanges: true,
}).RunWrite(s)
if err != nil {
log.Fatal(err)
}
spew.Dump(wr)
if wr.Replaced == 0 {
log.Printf("None were updated", wr)
}
if wr.OldValue == nil {
log.Print("Old value was not returned")
}
if wr.NewValue == nil {
log.Print("New value was not returned")
}
log.Print("Testing replace")
wr, err = r.Db("test").Table("blah").Limit(1).Replace(Blah{
Id: 1,
Name: "hello3",
}, r.ReplaceOpts{
ReturnChanges: true,
}).RunWrite(s)
if err != nil {
log.Fatal(err)
}
spew.Dump(wr)
if wr.Replaced == 0 {
log.Printf("None were replaced", wr)
}
if wr.OldValue == nil {
log.Print("Old value was not returned")
}
if wr.NewValue == nil {
log.Print("New value was not returned")
}
log.Print("Testing Delete")
wr, err = r.Db("test").Table("blah").Limit(1).Delete(r.DeleteOpts{
ReturnChanges: true,
}).RunWrite(s)
if err != nil {
log.Fatal(err)
}
spew.Dump(wr)
if wr.Deleted == 0 {
log.Print("None were deleted", wr)
}
if wr.OldValue == nil {
log.Print("Old value was not returned")
}
if wr.NewValue != nil {
log.Print("New value was returned when it shouldn't have been")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment