comparison schema/search_functions.sql @ 3735:96230eadf96e

Added some optimizer hints to search functions.
author Sascha Wilde <wilde@intevation.de>
date Mon, 24 Jun 2019 11:49:08 +0200
parents 1504856c9378
children 4cc3b28fd87b
comparison
equal deleted inserted replaced
3734:1504856c9378 3735:96230eadf96e
10 10
11 -- Author(s): 11 -- Author(s):
12 -- * Sascha Wilde <wilde@intevation.de> 12 -- * Sascha Wilde <wilde@intevation.de>
13 13
14 CREATE OR REPLACE FUNCTION search_hectometre(search_string text) RETURNS jsonb 14 CREATE OR REPLACE FUNCTION search_hectometre(search_string text) RETURNS jsonb
15 LANGUAGE plpgsql 15 LANGUAGE plpgsql STABLE PARALLEL SAFE
16 AS $$ 16 AS $$
17 DECLARE 17 DECLARE
18 _result jsonb; 18 _result jsonb;
19 BEGIN 19 BEGIN
20 IF search_string SIMILAR TO '[0-9]+' THEN 20 IF search_string SIMILAR TO '[0-9]+' THEN
31 RETURN _result; 31 RETURN _result;
32 END; 32 END;
33 $$; 33 $$;
34 34
35 CREATE OR REPLACE FUNCTION search_bottlenecks(search_string text) RETURNS jsonb 35 CREATE OR REPLACE FUNCTION search_bottlenecks(search_string text) RETURNS jsonb
36 LANGUAGE plpgsql 36 LANGUAGE plpgsql STABLE PARALLEL SAFE
37 AS $$ 37 AS $$
38 DECLARE 38 DECLARE
39 _result jsonb; 39 _result jsonb;
40 BEGIN 40 BEGIN
41 SELECT COALESCE(json_agg(r),'[]') 41 SELECT COALESCE(json_agg(r),'[]')
49 RETURN _result; 49 RETURN _result;
50 END; 50 END;
51 $$; 51 $$;
52 52
53 CREATE OR REPLACE FUNCTION search_cities(search_string text) RETURNS jsonb 53 CREATE OR REPLACE FUNCTION search_cities(search_string text) RETURNS jsonb
54 LANGUAGE plpgsql 54 LANGUAGE plpgsql STABLE PARALLEL SAFE
55 AS $$ 55 AS $$
56 DECLARE 56 DECLARE
57 _result jsonb; 57 _result jsonb;
58 BEGIN 58 BEGIN
59 SELECT COALESCE(json_agg(r),'[]') 59 SELECT COALESCE(json_agg(r),'[]')
71 RETURN _result; 71 RETURN _result;
72 END; 72 END;
73 $$; 73 $$;
74 74
75 CREATE OR REPLACE FUNCTION search_gauges(search_string text) RETURNS jsonb 75 CREATE OR REPLACE FUNCTION search_gauges(search_string text) RETURNS jsonb
76 LANGUAGE plpgsql 76 LANGUAGE plpgsql STABLE PARALLEL SAFE
77 AS $$ 77 AS $$
78 DECLARE 78 DECLARE
79 _result jsonb; 79 _result jsonb;
80 BEGIN 80 BEGIN
81 IF is_ISRSstring(search_string) THEN 81 IF is_ISRSstring(search_string) THEN
102 RETURN _result; 102 RETURN _result;
103 END; 103 END;
104 $$; 104 $$;
105 105
106 CREATE OR REPLACE FUNCTION search_sections(search_string text) RETURNS jsonb 106 CREATE OR REPLACE FUNCTION search_sections(search_string text) RETURNS jsonb
107 LANGUAGE plpgsql 107 LANGUAGE plpgsql STABLE PARALLEL SAFE
108 AS $$ 108 AS $$
109 DECLARE 109 DECLARE
110 _result jsonb; 110 _result jsonb;
111 BEGIN 111 BEGIN
112 SELECT COALESCE(json_agg(r),'[]') 112 SELECT COALESCE(json_agg(r),'[]')
121 RETURN _result; 121 RETURN _result;
122 END; 122 END;
123 $$; 123 $$;
124 124
125 CREATE OR REPLACE FUNCTION search_most(search_string text) RETURNS jsonb 125 CREATE OR REPLACE FUNCTION search_most(search_string text) RETURNS jsonb
126 LANGUAGE plpgsql 126 LANGUAGE plpgsql STABLE PARALLEL SAFE
127 AS $$ 127 AS $$
128 BEGIN 128 BEGIN
129 RETURN search_hectometre(search_string) 129 RETURN search_hectometre(search_string)
130 || search_bottlenecks(search_string) 130 || search_bottlenecks(search_string)
131 || search_gauges(search_string) 131 || search_gauges(search_string)