END IF;
END LOOP;
- -- anything will do as a fallback - just take the first name type thing there is
- RETURN trim((avals(name))[1]);
+ -- as a fallback - take the last element since it is the default name
+ RETURN trim((avals(name))[array_length(avals(name), 1)]);
END;
$$
LANGUAGE plpgsql IMMUTABLE;
location := ROW(null, null, null, hstore('ref', place.postcode), 'place',
'postcode', null, null, false, true, 5, 0)::addressline;
RETURN NEXT location;
+ ELSEIF place.address is not null and place.address ? 'postcode'
+ and not place.address->'postcode' SIMILAR TO '%(,|;)%' THEN
+ location := ROW(null, null, null, hstore('ref', place.address->'postcode'), 'place',
+ 'postcode', null, null, false, true, 5, 0)::addressline;
+ RETURN NEXT location;
END IF;
RETURN;