Page MenuHomeMusing Studio

No OneTemporary

diff --git a/query/builder.go b/query/builder.go
new file mode 100644
index 0000000..01916f6
--- /dev/null
+++ b/query/builder.go
@@ -0,0 +1,92 @@
+// Package query assists in building SQL queries.
+package query
+
+import (
+ "database/sql"
+)
+
+type Update struct {
+ Updates, Conditions string
+ Params []interface{}
+
+ sep string
+}
+
+func NewUpdate() *Update {
+ return &Update{}
+}
+
+func (u *Update) Set(v, property string) *Update {
+ if v != "" {
+ u.Updates += u.sep + property + " = ?"
+ u.sep = ", "
+ u.Params = append(u.Params, v)
+ }
+ return u
+}
+
+func (u *Update) SetBytes(v []byte, property string) *Update {
+ if len(v) > 0 {
+ u.Updates += u.sep + property + " = ?"
+ u.sep = ", "
+ u.Params = append(u.Params, v)
+ }
+ return u
+}
+
+func (u *Update) SetStringPtr(v *string, property string) *Update {
+ if v != nil {
+ u.Updates += u.sep + property + " = ?"
+ u.sep = ", "
+ u.Params = append(u.Params, v)
+ }
+ return u
+}
+
+func (u *Update) SetIntPtr(v *int, property string) *Update {
+ if v != nil {
+ u.Updates += u.sep + property + " = ?"
+ u.sep = ", "
+ u.Params = append(u.Params, v)
+ }
+ return u
+}
+
+func (u *Update) SetBoolPtr(v *bool, property string) *Update {
+ if v != nil {
+ u.Updates += u.sep + property + " = ?"
+ u.sep = ", "
+ u.Params = append(u.Params, v)
+ }
+ return u
+}
+
+func (u *Update) SetNullBool(v *sql.NullBool, property string) *Update {
+ if v != nil {
+ u.Updates += u.sep + property + " = ?"
+ u.sep = ", "
+ u.Params = append(u.Params, v)
+ }
+ return u
+}
+
+func (u *Update) SetNullString(v *sql.NullString, property string) *Update {
+ if v != nil {
+ u.Updates += u.sep + property + " = ?"
+ u.sep = ", "
+ u.Params = append(u.Params, v)
+ }
+ return u
+}
+
+func (u *Update) Append(v interface{}) {
+ u.Params = append(u.Params, v)
+}
+
+func (u *Update) Where(condition string, params ...interface{}) *Update {
+ u.Conditions = condition
+ for _, p := range params {
+ u.Append(p)
+ }
+ return u
+}

File Metadata

Mime Type
text/x-diff
Expires
Thu, May 15, 7:41 AM (12 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3239571

Event Timeline