Skip to content

Instantly share code, notes, and snippets.

@drsnyder
Created March 29, 2012 17:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save drsnyder/2240252 to your computer and use it in GitHub Desktop.
Save drsnyder/2240252 to your computer and use it in GitHub Desktop.
Getting display order
(defn display-order-page-sql [ids scores]
(sql/with-conn
(sql/query (format "WITH display_order AS (
SELECT UNNEST(ARRAY[%s]) AS id,
UNNEST(ARRAY[%s]) AS pos
)
SELECT * FROM display_order
JOIN forum_posts ON (
display_order.id = forum_posts.id
)
ORDER BY display_order.pos DESC",
(clojure.string/join "," ids),
(clojure.string/join "," scores)))))
(defn display-order-page [domain thread_id offset limit]
(let [c (new-container (container-key domain thread_id))
objects (with c (fn [c] (page c offset limit)))
ids (map #(ident %) objects)
scores (map #(score %) objects)]
(display-order-page-sql ids scores)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment