diff --git a/http.go b/http.go index 336aa42..e0e0f8d 100644 --- a/http.go +++ b/http.go @@ -134,7 +134,7 @@ func httpServer(ctx context.Context, app *appState) error { var end int64 err = db.QueryRowContext(ctx, ` - select count(*) n from twts + select count(*) n from twts JOIN ( SELECT feed_id, @@ -159,29 +159,31 @@ func httpServer(ctx context.Context, app *appState) error { attribute.Int64("offset-start", offset-int64(limit)), attribute.Int64("max", end), )) + qry := ` + SELECT + feed_id, + hash, + conv, + nick, + uri, + text + FROM twts + JOIN ( + SELECT + feed_id, + nick, + uri + FROM feeds + where ` + uriarg + ` + ) using (feed_id) + order by ulid asc + limit ? + offset ? + ` + fmt.Println(qry, args) w.Header().Set("Content-Type", "text/plain; charset=utf-8") rows, err := db.QueryContext( - ctx, - `SELECT - feed_id, - hash, - conv, - nick, - uri, - text - FROM twts - JOIN ( - SELECT - feed_id, - nick, - uri - FROM feeds - where `+uriarg+` - ) using (feed_id) - order by ulid asc - limit ? - offset ? - `, args..., + ctx, qry, args..., ) if err != nil { span.RecordError(err) @@ -239,25 +241,27 @@ func httpServer(ctx context.Context, app *appState) error { args = append(args, feed_id, feed_id) } - rows, err := db.QueryContext( - ctx, - `SELECT + qry := ` + SELECT + feed_id, + uri, + nick, + last_scan_on, + coalesce(last_twt_on, last_scan_on) last_twt_on + FROM feeds + left join ( + select feed_id, - uri, - nick, - last_scan_on, - last_twt_on - FROM feeds - left join ( - select - feed_id, - max(strftime('%Y-%m-%dT%H:%M:%fZ', (substring(text, 1, instr(text, ' ')-1)))) last_twt_on - from twts group by feed_id - ) using (feed_id) - `+where+` - order by nick, uri - `, args..., - ) + max(strftime('%Y-%m-%dT%H:%M:%fZ', (substring(text, 1, instr(text, ' ')-1)))) last_twt_on + from twts + group by feed_id + ) using (feed_id) + ` + where + ` + order by nick, uri + ` + fmt.Println(qry, args) + + rows, err := db.QueryContext(ctx, qry, args...) if err != nil { span.RecordError(err) return