dbicdh/PostgreSQL/deploy/2/002-extract_crashing_functions.sql
author Vincent Tondellier <tonton@team1664.org>
Sat, 09 May 2015 23:28:45 +0200
changeset 69 5794f095a709
parent 61 3a0ca02556da
child 76 6a33901e2721
permissions -rw-r--r--
Fix DB relations (even if they are not used)


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
);