func (s *Server) execute(query []byte) ([]byte, error) { output, err := s.sql.Execute(s.cluster.State(), string(query)) if err != nil { var msg string if output != nil && len(output.Stderr) > 0 { template := `Error executing %#v (%s) SQLite error: %s` msg = fmt.Sprintf(template, query, err.Error(), util.FmtOutput(output.Stderr)) } else { msg = err.Error() } return nil, errors.New(msg) } formatted := fmt.Sprintf("SequenceNumber: %d\n%s", output.SequenceNumber, output.Stdout) return []byte(formatted), nil }
// Writes a value to a key. func (c *SqlCommand) Apply(server raft.Server) (interface{}, error) { db := server.Context().(*sql.SQL) output, err := db.Execute("tehrafts", inflate(c.Query)) if err != nil { var msg string if output != nil && len(output.Stderr) > 0 { template := `Error executing %#v (%s) SQLite error: %s` msg = fmt.Sprintf(template, c.Query, err.Error(), util.FmtOutput(output.Stderr)) } else { msg = err.Error() } return nil, errors.New(msg) } formatted := fmt.Sprintf("SequenceNumber: %d\n%s", output.SequenceNumber, output.Stdout) return []byte(formatted), nil }