mirror of
https://github.com/fiatjaf/khatru.git
synced 2025-03-18 05:42:19 +01:00
added filter handling to query.go and sort "created_by" descending
This commit is contained in:
parent
0442b02394
commit
82e4174073
@ -226,8 +226,6 @@ func (s *Server) handleWebsocket(w http.ResponseWriter, r *http.Request) {
|
||||
advancedQuerier.BeforeQuery(filter)
|
||||
}
|
||||
|
||||
// TODO: Program calls SQL once for each filter in filters array.
|
||||
// Maybe can replace with a single SQL query?
|
||||
events, err := store.QueryEvents(filter)
|
||||
if err != nil {
|
||||
s.Log.Errorf("store: %v", err)
|
||||
|
@ -39,7 +39,7 @@ CREATE TABLE IF NOT EXISTS event (
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS ididx ON event USING btree (id text_pattern_ops);
|
||||
CREATE INDEX IF NOT EXISTS pubkeyprefix ON event USING btree (pubkey text_pattern_ops);
|
||||
CREATE INDEX IF NOT EXISTS timeidx ON event (created_at);
|
||||
CREATE INDEX IF NOT EXISTS timeidx ON event (created_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS kindidx ON event (kind);
|
||||
CREATE INDEX IF NOT EXISTS arbitrarytagvalues ON event USING gin (tagvalues);
|
||||
`)
|
||||
|
@ -128,11 +128,17 @@ func (b PostgresBackend) QueryEvents(filter *nostr.Filter) (events []nostr.Event
|
||||
conditions = append(conditions, "true")
|
||||
}
|
||||
|
||||
if filter.Limit < 1 || filter.Limit > 100 {
|
||||
params = append(params, 100)
|
||||
} else {
|
||||
params = append(params, filter.Limit)
|
||||
}
|
||||
|
||||
query := b.DB.Rebind(`SELECT
|
||||
id, pubkey, created_at, kind, tags, content, sig
|
||||
FROM event WHERE ` +
|
||||
strings.Join(conditions, " AND ") +
|
||||
" ORDER BY created_at LIMIT 100")
|
||||
" ORDER BY created_at DESC LIMIT ?")
|
||||
|
||||
rows, err := b.DB.Query(query, params...)
|
||||
if err != nil && err != sql.ErrNoRows {
|
||||
|
Loading…
x
Reference in New Issue
Block a user