text: /* contrib/tsearch2/tsearch2--unpackaged--1.0.sql */
  
  -- complain if script is sourced in psql, rather than via CREATE EXTENSION
  \echo Use "CREATE EXTENSION tsearch2 FROM unpackaged" to load this file. \quit
  
  ALTER EXTENSION tsearch2 ADD type @extschema@.tsvector;
  ALTER EXTENSION tsearch2 ADD type @extschema@.tsquery;
  ALTER EXTENSION tsearch2 ADD type @extschema@.gtsvector;
  ALTER EXTENSION tsearch2 ADD type gtsq;
  ALTER EXTENSION tsearch2 ADD function lexize(oid,text);
  ALTER EXTENSION tsearch2 ADD function lexize(text,text);
  ALTER EXTENSION tsearch2 ADD function lexize(text);
  ALTER EXTENSION tsearch2 ADD function set_curdict(integer);
  ALTER EXTENSION tsearch2 ADD function set_curdict(text);
  ALTER EXTENSION tsearch2 ADD function dex_init(internal);
  ALTER EXTENSION tsearch2 ADD function dex_lexize(internal,internal,integer);
  ALTER EXTENSION tsearch2 ADD function snb_en_init(internal);
  ALTER EXTENSION tsearch2 ADD function snb_lexize(internal,internal,integer);
  ALTER EXTENSION tsearch2 ADD function snb_ru_init_koi8(internal);
  ALTER EXTENSION tsearch2 ADD function snb_ru_init_utf8(internal);
  ALTER EXTENSION tsearch2 ADD function snb_ru_init(internal);
  ALTER EXTENSION tsearch2 ADD function spell_init(internal);
  ALTER EXTENSION tsearch2 ADD function spell_lexize(internal,internal,integer);
  ALTER EXTENSION tsearch2 ADD function syn_init(internal);
  ALTER EXTENSION tsearch2 ADD function syn_lexize(internal,internal,integer);
  ALTER EXTENSION tsearch2 ADD function @extschema@.thesaurus_init(internal);
  ALTER EXTENSION tsearch2 ADD function thesaurus_lexize(internal,internal,integer,internal);
  ALTER EXTENSION tsearch2 ADD type tokentype;
  ALTER EXTENSION tsearch2 ADD function token_type(integer);
  ALTER EXTENSION tsearch2 ADD function token_type(text);
  ALTER EXTENSION tsearch2 ADD function token_type();
  ALTER EXTENSION tsearch2 ADD function set_curprs(integer);
  ALTER EXTENSION tsearch2 ADD function set_curprs(text);
  ALTER EXTENSION tsearch2 ADD type tokenout;
  ALTER EXTENSION tsearch2 ADD function parse(oid,text);
  ALTER EXTENSION tsearch2 ADD function parse(text,text);
  ALTER EXTENSION tsearch2 ADD function parse(text);
  ALTER EXTENSION tsearch2 ADD function @extschema@.prsd_start(internal,integer);
  ALTER EXTENSION tsearch2 ADD function prsd_getlexeme(internal,internal,internal);
  ALTER EXTENSION tsearch2 ADD function @extschema@.prsd_end(internal);
  ALTER EXTENSION tsearch2 ADD function @extschema@.prsd_lextype(internal);
  ALTER EXTENSION tsearch2 ADD function prsd_headline(internal,internal,internal);
  ALTER EXTENSION tsearch2 ADD function set_curcfg(integer);
  ALTER EXTENSION tsearch2 ADD function set_curcfg(text);
  ALTER EXTENSION tsearch2 ADD function show_curcfg();
  ALTER EXTENSION tsearch2 ADD function @extschema@.length(tsvector);
  ALTER EXTENSION tsearch2 ADD function to_tsvector(oid,text);
  ALTER EXTENSION tsearch2 ADD function to_tsvector(text,text);
  ALTER EXTENSION tsearch2 ADD function @extschema@.to_tsvector(text);
  ALTER EXTENSION tsearch2 ADD function @extschema@.strip(tsvector);
  ALTER EXTENSION tsearch2 ADD function @extschema@.setweight(tsvector,"char");
  ALTER EXTENSION tsearch2 ADD function concat(tsvector,tsvector);
  ALTER EXTENSION tsearch2 ADD function @extschema@.querytree(tsquery);
  ALTER EXTENSION tsearch2 ADD function to_tsquery(oid,text);
  ALTER EXTENSION tsearch2 ADD function to_tsquery(text,text);
  ALTER EXTENSION tsearch2 ADD function @extschema@.to_tsquery(text);
  ALTER EXTENSION tsearch2 ADD function plainto_tsquery(oid,text);
  ALTER EXTENSION tsearch2 ADD function plainto_tsquery(text,text);
  ALTER EXTENSION tsearch2 ADD function @extschema@.plainto_tsquery(text);
  ALTER EXTENSION tsearch2 ADD function tsearch2();
  ALTER EXTENSION tsearch2 ADD function rank(real[],tsvector,tsquery);
  ALTER EXTENSION tsearch2 ADD function rank(real[],tsvector,tsquery,integer);
  ALTER EXTENSION tsearch2 ADD function rank(tsvector,tsquery);
  ALTER EXTENSION tsearch2 ADD function rank(tsvector,tsquery,integer);
  ALTER EXTENSION tsearch2 ADD function rank_cd(real[],tsvector,tsquery);
  ALTER EXTENSION tsearch2 ADD function rank_cd(real[],tsvector,tsquery,integer);
  ALTER EXTENSION tsearch2 ADD function rank_cd(tsvector,tsquery);
  ALTER EXTENSION tsearch2 ADD function rank_cd(tsvector,tsquery,integer);
  ALTER EXTENSION tsearch2 ADD function headline(oid,text,tsquery,text);
  ALTER EXTENSION tsearch2 ADD function headline(oid,text,tsquery);
  ALTER EXTENSION tsearch2 ADD function headline(text,text,tsquery,text);
  ALTER EXTENSION tsearch2 ADD function headline(text,text,tsquery);
  ALTER EXTENSION tsearch2 ADD function headline(text,tsquery,text);
  ALTER EXTENSION tsearch2 ADD function headline(text,tsquery);
  ALTER EXTENSION tsearch2 ADD operator family gist_tsvector_ops using gist;
  ALTER EXTENSION tsearch2 ADD operator class gist_tsvector_ops using gist;
  ALTER EXTENSION tsearch2 ADD type statinfo;
  ALTER EXTENSION tsearch2 ADD function stat(text);
  ALTER EXTENSION tsearch2 ADD function stat(text,text);
  ALTER EXTENSION tsearch2 ADD function reset_tsearch();
  ALTER EXTENSION tsearch2 ADD function get_covers(tsvector,tsquery);
  ALTER EXTENSION tsearch2 ADD type tsdebug;
  ALTER EXTENSION tsearch2 ADD function _get_parser_from_curcfg();
  ALTER EXTENSION tsearch2 ADD function @extschema@.ts_debug(text);
  ALTER EXTENSION tsearch2 ADD function @extschema@.numnode(tsquery);
  ALTER EXTENSION tsearch2 ADD function @extschema@.tsquery_and(tsquery,tsquery);
  ALTER EXTENSION tsearch2 ADD function @extschema@.tsquery_or(tsquery,tsquery);
  ALTER EXTENSION tsearch2 ADD function @extschema@.tsquery_not(tsquery);
  ALTER EXTENSION tsearch2 ADD function rewrite(tsquery,text);
  ALTER EXTENSION tsearch2 ADD function rewrite(tsquery,tsquery,tsquery);
  ALTER EXTENSION tsearch2 ADD function rewrite_accum(tsquery,tsquery[]);
  ALTER EXTENSION tsearch2 ADD function rewrite_finish(tsquery);
  ALTER EXTENSION tsearch2 ADD function rewrite(tsquery[]);
  ALTER EXTENSION tsearch2 ADD function @extschema@.tsq_mcontains(tsquery,tsquery);
  ALTER EXTENSION tsearch2 ADD function @extschema@.tsq_mcontained(tsquery,tsquery);
  ALTER EXTENSION tsearch2 ADD operator family gist_tp_tsquery_ops using gist;
  ALTER EXTENSION tsearch2 ADD operator class gist_tp_tsquery_ops using gist;
  ALTER EXTENSION tsearch2 ADD operator family gin_tsvector_ops using gin;
  ALTER EXTENSION tsearch2 ADD operator class gin_tsvector_ops using gin;
  ALTER EXTENSION tsearch2 ADD operator family @extschema@.tsvector_ops using btree;
  ALTER EXTENSION tsearch2 ADD operator class @extschema@.tsvector_ops using btree;
  ALTER EXTENSION tsearch2 ADD operator family @extschema@.tsquery_ops using btree;
  ALTER EXTENSION tsearch2 ADD operator class @extschema@.tsquery_ops using btree;
  
  -- tsearch2 relies on the core functions gin_extract_tsvector,
  -- gin_extract_tsquery, and gin_tsquery_consistent, which changed signature in
  -- 9.1.  To support upgrading, pg_catalog contains entries for these functions
  -- with both the old and new signatures, and the former is what would have
  -- been added to our opclass during initial restore of a 9.0 dump script.
  -- Avert your eyes while we hack the pg_amproc entries to make them link to
  -- the new forms ...
  
  DO LANGUAGE plpgsql
  $$
  DECLARE
    my_schema_unquoted pg_catalog.text := pg_catalog.current_schema();
    my_schema pg_catalog.text := pg_catalog.quote_ident(pg_catalog.current_schema());
    old_path pg_catalog.text := pg_catalog.current_setting('search_path');
  BEGIN
  -- for safety, transiently set search_path to just pg_catalog+pg_temp
  PERFORM pg_catalog.set_config('search_path', 'pg_catalog, pg_temp', true);
  
  UPDATE pg_catalog.pg_amproc
  SET amproc = 'pg_catalog.gin_extract_tsvector(pg_catalog.tsvector,internal,internal)'::pg_catalog.regprocedure
  WHERE amprocfamily =
    (SELECT oid FROM pg_catalog.pg_opfamily WHERE opfname = 'gin_tsvector_ops' AND
       opfnamespace = (SELECT oid FROM pg_catalog.pg_namespace
                       WHERE nspname = my_schema_unquoted))
    AND amproclefttype = 'pg_catalog.tsvector'::pg_catalog.regtype
    AND amprocrighttype = 'pg_catalog.tsvector'::pg_catalog.regtype
    AND amprocnum = 2
    AND amproc = 'pg_catalog.gin_extract_tsvector(pg_catalog.tsvector,internal)'::pg_catalog.regprocedure;
  
  UPDATE pg_catalog.pg_amproc
  SET amproc = 'pg_catalog.gin_extract_tsquery(pg_catalog.tsquery,internal,smallint,internal,internal,internal,internal)'::pg_catalog.regprocedure
  WHERE amprocfamily =
    (SELECT oid FROM pg_catalog.pg_opfamily WHERE opfname = 'gin_tsvector_ops' AND
       opfnamespace = (SELECT oid FROM pg_catalog.pg_namespace
                       WHERE nspname = my_schema_unquoted))
    AND amproclefttype = 'pg_catalog.tsvector'::pg_catalog.regtype
    AND amprocrighttype = 'pg_catalog.tsvector'::pg_catalog.regtype
    AND amprocnum = 3
    AND amproc = 'pg_catalog.gin_extract_tsquery(pg_catalog.tsquery,internal,smallint,internal,internal)'::pg_catalog.regprocedure;
  
  UPDATE pg_catalog.pg_amproc
  SET amproc = 'pg_catalog.gin_tsquery_consistent(internal,smallint,pg_catalog.tsquery,integer,internal,internal,internal,internal)'::pg_catalog.regprocedure
  WHERE amprocfamily =
    (SELECT oid FROM pg_catalog.pg_opfamily WHERE opfname = 'gin_tsvector_ops' AND
       opfnamespace = (SELECT oid FROM pg_catalog.pg_namespace
                       WHERE nspname = my_schema_unquoted))
    AND amproclefttype = 'pg_catalog.tsvector'::pg_catalog.regtype
    AND amprocrighttype = 'pg_catalog.tsvector'::pg_catalog.regtype
    AND amprocnum = 4
    AND amproc = 'pg_catalog.gin_tsquery_consistent(internal,smallint,pg_catalog.tsquery,integer,internal,internal)'::pg_catalog.regprocedure;
  
  PERFORM pg_catalog.set_config('search_path', old_path, true);
  END
  $$;
  