Project

General

Profile

« Previous | Next » 

Revision 2543

schemas/vegbien.sql, functions.sql: Cast functions: Fixed bug where invalid value exceptions were not being caught, because implicit conversions to the return type apparently only happen outside the block containing the RETURN statement (i.e. at the end of the function). Fixed by adding explicit type conversion to return type, so that type conversion would happen inside try block.

View differences:

schemas/functions.sql
27 27
    AS $$
28 28
BEGIN
29 29
    BEGIN
30
        RETURN value;
30
        RETURN value::boolean;
31 31
    EXCEPTION
32 32
        WHEN data_exception THEN
33 33
            RAISE WARNING '%', SQLERRM;
......
47 47
    AS $$
48 48
BEGIN
49 49
    BEGIN
50
        RETURN value;
50
        RETURN value::double precision;
51 51
    EXCEPTION
52 52
        WHEN data_exception THEN
53 53
            RAISE WARNING '%', SQLERRM;
......
67 67
    AS $$
68 68
BEGIN
69 69
    BEGIN
70
        RETURN value;
70
        RETURN value::timestamp with time zone;
71 71
    EXCEPTION
72 72
        WHEN data_exception THEN
73 73
            RAISE WARNING '%', SQLERRM;
schemas/vegbien.sql
202 202
    AS $$
203 203
BEGIN
204 204
    BEGIN
205
        RETURN value;
205
        RETURN value::growthform;
206 206
    EXCEPTION
207 207
        WHEN data_exception THEN
208 208
            RAISE WARNING '%', SQLERRM;
......
272 272
    AS $$
273 273
BEGIN
274 274
    BEGIN
275
        RETURN value;
275
        RETURN value::placerank;
276 276
    EXCEPTION
277 277
        WHEN data_exception THEN
278 278
            RAISE WARNING '%', SQLERRM;
......
342 342
    AS $$
343 343
BEGIN
344 344
    BEGIN
345
        RETURN value;
345
        RETURN value::taxonrank;
346 346
    EXCEPTION
347 347
        WHEN data_exception THEN
348 348
            RAISE WARNING '%', SQLERRM;

Also available in: Unified diff