Revision 6229
Added by Aaron Marcuse-Kubitza over 12 years ago
schemas/functions.sql | ||
---|---|---|
147 | 147 |
AS $$ |
148 | 148 |
DECLARE |
149 | 149 |
match text := map -> value; |
150 |
default_ text := map -> '*'; |
|
151 | 150 |
BEGIN |
152 | 151 |
IF match IS NOT NULL THEN RETURN match; |
153 |
ELSIF default_ = '*' THEN RETURN value; |
|
154 |
ELSE RETURN default_; |
|
152 |
ELSE |
|
153 |
DECLARE |
|
154 |
default_ text := map -> '*'; |
|
155 |
BEGIN |
|
156 |
IF default_ = '*' THEN RETURN value; |
|
157 |
ELSIF default_ IS NOT NULL OR map ? '*' THEN RETURN default_; -- default provided |
|
158 |
ELSE RAISE 'Invalid map value: %', value USING ERRCODE = 'data_exception'; |
|
159 |
END IF; |
|
160 |
END; |
|
155 | 161 |
END IF; |
156 | 162 |
END; |
157 | 163 |
$$; |
Also available in: Unified diff
schemas/functions.sql: _map(): Raise data_exception if value not in map and no default provided (not the same as a NULL default value)