CREATE OR REPLACE FUNCTION logidze_filter_keys(obj jsonb, keys text[], include_columns boolean DEFAULT false) RETURNS jsonb AS $body$

-- version: 1
DECLARE
  res jsonb;
  key text;
BEGIN
  res := '{}';

  IF include_columns THEN
    FOREACH key IN ARRAY keys
    LOOP
      IF obj ? key THEN
        res = jsonb_insert(res, ARRAY[key], obj->key);
      END IF;
    END LOOP;
  ELSE
    res = obj;
    FOREACH key IN ARRAY keys
    LOOP
      res = res - key;
    END LOOP;
  END IF;

  RETURN res;
END;

$body$ LANGUAGE plpgsql;