Skip to content

Instantly share code, notes, and snippets.

View thomas-mcdonald's full-sized avatar

Thomas McDonald thomas-mcdonald

View GitHub Profile
libref_dev=# EXPLAIN ANALYZE SELECT "functions".* FROM "functions" INNER JOIN "klasses" ON "klasses"."id" = "functions"."klass_id" INNER JOIN "versions" ON "versions"."id" = "klasses"."version_id" WHERE "versions"."project_id" = 2 AND "functions"."slug" = 'ActionController/ParameterEncoding/ClassMethods/instance/skip_parameter_encoding' ORDER BY string_to_array(regexp_replace(versions.name, '[^0-9.]', '', 'g'), '.')::int[] ASC;
QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Sort (cost=3189.68..3189.69 rows=1 width=1279) (actual time=45.787..45.788 rows=2 loops=1)
Sort Key: ((string_to_array(regexp_replace((versions.name)::text, '[^0-9.]'::text, ''::text, 'g'::text), '.'::text))::integer[])
Sort Method: quicksort Memory: 29kB
-> Nested Loop (cost=18.84..3189.67 rows=1 width=1279) (actual time=3.918..45.772 r
SELECT
functions.id,
functions.slug,
ts_rank(setweight(to_tsvector('english', functions.name), 'A') || setweight(to_tsvector('english', coalesce(functions.search_docs,'')), 'B'), query) as rank
FROM (
SELECT DISTINCT on (functions.slug) functions.*
FROM functions
INNER JOIN "klasses" ON "klasses"."id" = "functions"."klass_id"
INNER JOIN "versions" ON "versions"."id" = "klasses"."version_id"
ORDER BY functions.slug ASC, string_to_array(regexp_replace(versions.name, '[^0-9.]', '', 'g'), '.')::int[] DESC