UPDATE _element SET counters = COALESCE ( counters || ( TG_RELNAME::text => ( SELECT (COALESCE ((counters->(TG_RELNAME::text))::int, 0) + 1)::text FROM _element WHERE _element.id = NEW.id ) ), ( TG_RELNAME::text => ( SELECT (COALESCE ((counters->(TG_RELNAME::text))::int, 0) + 1)::text FROM _element WHERE _element.id = NEW.id ) ) ) WHERE _element.path @> NEW.path;