diff -r 7ad91b3d5562 -r 3a0ca02556da dbicdh/PostgreSQL/deploy/2/002-extract_crashing_functions.sql --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dbicdh/PostgreSQL/deploy/2/002-extract_crashing_functions.sql Mon Feb 09 00:06:34 2015 +0100 @@ -0,0 +1,22 @@ + +CREATE OR REPLACE FUNCTION extract_crashing_functions (processed_json jsonb) RETURNS text AS +$$ + -- extract threads[crashing_idx]->frames[*]->function + SELECT string_agg(functions, E'\n') + FROM ( + SELECT jsonb_array_elements( + (($1 #> ARRAY['threads', $1->'crash_info'->>'crashing_thread'])->'frames') + )->>'function' AS functions + ) AS frames +$$ +LANGUAGE sql IMMUTABLE; + +-- This extension is the contrib modules +CREATE EXTENSION IF NOT EXISTS pg_trgm; + +-- Used for searching function in the crashing thread backtrace +-- Search will be really slow if this index is not present +CREATE INDEX crash_datas_idx_extract_crashing_functions ON crash_datas USING gin ( + extract_crashing_functions(processed) gin_trgm_ops +); +