i am capped at 9args per a bug somewhere between pq and postgres but heck if i care
parent
5557c0920a
commit
c4a7eaf04a
16
storage.go
16
storage.go
|
|
@ -43,7 +43,7 @@ func NewStorage(ctx context.Context, driver Driver) (Storage, error) {
|
|||
|
||||
func (s Storage) GetEvent(ctx context.Context, ID string) (model.Event, error) {
|
||||
v := model.Event{}
|
||||
err := s.selectOne(ctx, "events", &v, "ID = ?", ID)
|
||||
err := s.selectOne(ctx, "events", &v, "ID = $1", ID)
|
||||
return v, err
|
||||
}
|
||||
|
||||
|
|
@ -53,7 +53,7 @@ func (s Storage) UpsertEvent(ctx context.Context, event model.Event) error {
|
|||
|
||||
func (s Storage) GetMessage(ctx context.Context, ID string) (model.Message, error) {
|
||||
v := model.Message{}
|
||||
err := s.selectOne(ctx, "messages", &v, "ID = ?", ID)
|
||||
err := s.selectOne(ctx, "messages", &v, "ID = $1", ID)
|
||||
return v, err
|
||||
}
|
||||
|
||||
|
|
@ -63,7 +63,7 @@ func (s Storage) UpsertMessage(ctx context.Context, message model.Message) error
|
|||
|
||||
func (s Storage) GetThread(ctx context.Context, ID string) (model.Thread, error) {
|
||||
v := model.Thread{}
|
||||
err := s.selectOne(ctx, "threads", &v, "ID = ?", ID)
|
||||
err := s.selectOne(ctx, "threads", &v, "ID = $1", ID)
|
||||
return v, err
|
||||
}
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ func (s Storage) UpsertThread(ctx context.Context, thread model.Thread) error {
|
|||
}
|
||||
|
||||
func (s Storage) selectOne(ctx context.Context, table string, v any, clause string, args ...any) error {
|
||||
if questions := strings.Count(clause, "?"); questions != len(args) {
|
||||
if questions := strings.Count(clause, "$"); questions != len(args) {
|
||||
return fmt.Errorf("expected %v args for clause but found %v", questions, len(args))
|
||||
}
|
||||
|
||||
|
|
@ -115,10 +115,6 @@ func (s Storage) upsert(ctx context.Context, table string, v any) error {
|
|||
return err
|
||||
}
|
||||
|
||||
for i := range keys {
|
||||
values = append(values, values[i])
|
||||
}
|
||||
|
||||
q := fmt.Sprintf(`
|
||||
INSERT INTO %s (%s) VALUES (%s)
|
||||
ON CONFLICT (ID) DO UPDATE SET %s
|
||||
|
|
@ -144,11 +140,11 @@ func keysArgsKeyargsValues(v any) ([]string, []string, []string, []any, error) {
|
|||
}
|
||||
args := make([]string, len(keys))
|
||||
for i := range args {
|
||||
args[i] = "?"
|
||||
args[i] = fmt.Sprintf("$%d", i+1)
|
||||
}
|
||||
keyArgs := make([]string, len(keys))
|
||||
for i := range keyArgs {
|
||||
keyArgs[i] = fmt.Sprintf("%s=?", keys[i])
|
||||
keyArgs[i] = fmt.Sprintf("%s=$%d", keys[i], i+1)
|
||||
}
|
||||
values := make([]any, len(keys))
|
||||
for i := range values {
|
||||
|
|
|
|||
Loading…
Reference in New Issue