we already have 0740
authorChris Sharp <csharp@georgialibraries.org>
Tue, 24 Jan 2017 01:29:34 +0000 (20:29 -0500)
committerChris Sharp <csharp@georgialibraries.org>
Tue, 24 Jan 2017 01:29:34 +0000 (20:29 -0500)
Open-ILS/src/sql/Pg/version-upgrade/2.3.0-2.3.1-upgrade-db.sql

index ecccf41..8f3f907 100644 (file)
 BEGIN;
 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.3.1', :eg_version);
 
-SELECT evergreen.upgrade_deps_block_check('0740', :eg_version);
-
-CREATE OR REPLACE
-    FUNCTION metabib.suggest_browse_entries(
-        raw_query_text  TEXT,   -- actually typed by humans at the UI level
-        search_class    TEXT,   -- 'alias' or 'class' or 'class|field..', etc
-        headline_opts   TEXT,   -- markup options for ts_headline()
-        visibility_org  INTEGER,-- null if you don't want opac visibility test
-        query_limit     INTEGER,-- use in LIMIT clause of interal query
-        normalization   INTEGER -- argument to TS_RANK_CD()
-    ) RETURNS TABLE (
-        value                   TEXT,   -- plain
-        field                   INTEGER,
-        buoyant_and_class_match BOOL,
-        field_match             BOOL,
-        field_weight            INTEGER,
-        rank                    REAL,
-        buoyant                 BOOL,
-        match                   TEXT    -- marked up
-    ) AS $func$
-DECLARE
-    prepared_query_texts    TEXT[];
-    query                   TSQUERY;
-    plain_query             TSQUERY;
-    opac_visibility_join    TEXT;
-    search_class_join       TEXT;
-    r_fields                RECORD;
-BEGIN
-    prepared_query_texts := metabib.autosuggest_prepare_tsquery(raw_query_text);
-
-    query := TO_TSQUERY('keyword', prepared_query_texts[1]);
-    plain_query := TO_TSQUERY('keyword', prepared_query_texts[2]);
-
-    visibility_org := NULLIF(visibility_org,-1);
-    IF visibility_org IS NOT NULL THEN
-        opac_visibility_join := '
-    JOIN asset.opac_visible_copies aovc ON (
-        aovc.record = x.source AND
-        aovc.circ_lib IN (SELECT id FROM actor.org_unit_descendants($4))
-    )';
-    ELSE
-        opac_visibility_join := '';
-    END IF;
-
-    -- The following determines whether we only provide suggestsons matching
-    -- the user's selected search_class, or whether we show other suggestions
-    -- too. The reason for MIN() is that for search_classes like
-    -- 'title|proper|uniform' you would otherwise get multiple rows.  The
-    -- implication is that if title as a class doesn't have restrict,
-    -- nor does the proper field, but the uniform field does, you're going
-    -- to get 'false' for your overall evaluation of 'should we restrict?'
-    -- To invert that, change from MIN() to MAX().
-
-    SELECT
-        INTO r_fields
-            MIN(cmc.restrict::INT) AS restrict_class,
-            MIN(cmf.restrict::INT) AS restrict_field
-        FROM metabib.search_class_to_registered_components(search_class)
-            AS _registered (field_class TEXT, field INT)
-        JOIN
-            config.metabib_class cmc ON (cmc.name = _registered.field_class)
-        LEFT JOIN
-            config.metabib_field cmf ON (cmf.id = _registered.field);
-
-    -- evaluate 'should we restrict?'
-    IF r_fields.restrict_field::BOOL OR r_fields.restrict_class::BOOL THEN
-        search_class_join := '
-    JOIN
-        metabib.search_class_to_registered_components($2)
-        AS _registered (field_class TEXT, field INT) ON (
-            (_registered.field IS NULL AND
-                _registered.field_class = cmf.field_class) OR
-            (_registered.field = cmf.id)
-        )
-    ';
-    ELSE
-        search_class_join := '
-    LEFT JOIN
-        metabib.search_class_to_registered_components($2)
-        AS _registered (field_class TEXT, field INT) ON (
-            _registered.field_class = cmc.name
-        )
-    ';
-    END IF;
-
-    RETURN QUERY EXECUTE '
-SELECT  DISTINCT
-        x.value,
-        x.id,
-        x.push,
-        x.restrict,
-        x.weight,
-        x.ts_rank_cd,
-        x.buoyant,
-        TS_HEADLINE(value, $7, $3)
-  FROM  (SELECT DISTINCT
-                mbe.value,
-                cmf.id,
-                cmc.buoyant AND _registered.field_class IS NOT NULL AS push,
-                _registered.field = cmf.id AS restrict,
-                cmf.weight,
-                TS_RANK_CD(mbe.index_vector, $1, $6),
-                cmc.buoyant,
-                mbedm.source
-          FROM  metabib.browse_entry_def_map mbedm
-                JOIN (SELECT * FROM metabib.browse_entry WHERE index_vector @@ $1 LIMIT 10000) mbe ON (mbe.id = mbedm.entry)
-                JOIN config.metabib_field cmf ON (cmf.id = mbedm.def)
-                JOIN config.metabib_class cmc ON (cmf.field_class = cmc.name)
-                '  || search_class_join || '
-          ORDER BY 3 DESC, 4 DESC NULLS LAST, 5 DESC, 6 DESC, 7 DESC, 1 ASC
-          LIMIT 1000) AS x
-        ' || opac_visibility_join || '
-  ORDER BY 3 DESC, 4 DESC NULLS LAST, 5 DESC, 6 DESC, 7 DESC, 1 ASC
-  LIMIT $5
-'   -- sic, repeat the order by clause in the outer select too
-    USING
-        query, search_class, headline_opts,
-        visibility_org, query_limit, normalization, plain_query
-        ;
-
-    -- sort order:
-    --  buoyant AND chosen class = match class
-    --  chosen field = match field
-    --  field weight
-    --  rank
-    --  buoyancy
-    --  value itself
-
-END;
-$func$ LANGUAGE PLPGSQL;
+-- SELECT evergreen.upgrade_deps_block_check('0740', :eg_version);
+-- 
+-- CREATE OR REPLACE
+--     FUNCTION metabib.suggest_browse_entries(
+--         raw_query_text  TEXT,   -- actually typed by humans at the UI level
+--         search_class    TEXT,   -- 'alias' or 'class' or 'class|field..', etc
+--         headline_opts   TEXT,   -- markup options for ts_headline()
+--         visibility_org  INTEGER,-- null if you don't want opac visibility test
+--         query_limit     INTEGER,-- use in LIMIT clause of interal query
+--         normalization   INTEGER -- argument to TS_RANK_CD()
+--     ) RETURNS TABLE (
+--         value                   TEXT,   -- plain
+--         field                   INTEGER,
+--         buoyant_and_class_match BOOL,
+--         field_match             BOOL,
+--         field_weight            INTEGER,
+--         rank                    REAL,
+--         buoyant                 BOOL,
+--         match                   TEXT    -- marked up
+--     ) AS $func$
+-- DECLARE
+--     prepared_query_texts    TEXT[];
+--     query                   TSQUERY;
+--     plain_query             TSQUERY;
+--     opac_visibility_join    TEXT;
+--     search_class_join       TEXT;
+--     r_fields                RECORD;
+-- BEGIN
+--     prepared_query_texts := metabib.autosuggest_prepare_tsquery(raw_query_text);
+-- 
+--     query := TO_TSQUERY('keyword', prepared_query_texts[1]);
+--     plain_query := TO_TSQUERY('keyword', prepared_query_texts[2]);
+-- 
+--     visibility_org := NULLIF(visibility_org,-1);
+--     IF visibility_org IS NOT NULL THEN
+--         opac_visibility_join := '
+--     JOIN asset.opac_visible_copies aovc ON (
+--         aovc.record = x.source AND
+--         aovc.circ_lib IN (SELECT id FROM actor.org_unit_descendants($4))
+--     )';
+--     ELSE
+--         opac_visibility_join := '';
+--     END IF;
+-- 
+--     -- The following determines whether we only provide suggestsons matching
+--     -- the user's selected search_class, or whether we show other suggestions
+--     -- too. The reason for MIN() is that for search_classes like
+--     -- 'title|proper|uniform' you would otherwise get multiple rows.  The
+--     -- implication is that if title as a class doesn't have restrict,
+--     -- nor does the proper field, but the uniform field does, you're going
+--     -- to get 'false' for your overall evaluation of 'should we restrict?'
+--     -- To invert that, change from MIN() to MAX().
+-- 
+--     SELECT
+--         INTO r_fields
+--             MIN(cmc.restrict::INT) AS restrict_class,
+--             MIN(cmf.restrict::INT) AS restrict_field
+--         FROM metabib.search_class_to_registered_components(search_class)
+--             AS _registered (field_class TEXT, field INT)
+--         JOIN
+--             config.metabib_class cmc ON (cmc.name = _registered.field_class)
+--         LEFT JOIN
+--             config.metabib_field cmf ON (cmf.id = _registered.field);
+-- 
+--     -- evaluate 'should we restrict?'
+--     IF r_fields.restrict_field::BOOL OR r_fields.restrict_class::BOOL THEN
+--         search_class_join := '
+--     JOIN
+--         metabib.search_class_to_registered_components($2)
+--         AS _registered (field_class TEXT, field INT) ON (
+--             (_registered.field IS NULL AND
+--                 _registered.field_class = cmf.field_class) OR
+--             (_registered.field = cmf.id)
+--         )
+--     ';
+--     ELSE
+--         search_class_join := '
+--     LEFT JOIN
+--         metabib.search_class_to_registered_components($2)
+--         AS _registered (field_class TEXT, field INT) ON (
+--             _registered.field_class = cmc.name
+--         )
+--     ';
+--     END IF;
+-- 
+--     RETURN QUERY EXECUTE '
+-- SELECT  DISTINCT
+--         x.value,
+--         x.id,
+--         x.push,
+--         x.restrict,
+--         x.weight,
+--         x.ts_rank_cd,
+--         x.buoyant,
+--         TS_HEADLINE(value, $7, $3)
+--   FROM  (SELECT DISTINCT
+--                 mbe.value,
+--                 cmf.id,
+--                 cmc.buoyant AND _registered.field_class IS NOT NULL AS push,
+--                 _registered.field = cmf.id AS restrict,
+--                 cmf.weight,
+--                 TS_RANK_CD(mbe.index_vector, $1, $6),
+--                 cmc.buoyant,
+--                 mbedm.source
+--           FROM  metabib.browse_entry_def_map mbedm
+--                 JOIN (SELECT * FROM metabib.browse_entry WHERE index_vector @@ $1 LIMIT 10000) mbe ON (mbe.id = mbedm.entry)
+--                 JOIN config.metabib_field cmf ON (cmf.id = mbedm.def)
+--                 JOIN config.metabib_class cmc ON (cmf.field_class = cmc.name)
+--                 '  || search_class_join || '
+--           ORDER BY 3 DESC, 4 DESC NULLS LAST, 5 DESC, 6 DESC, 7 DESC, 1 ASC
+--           LIMIT 1000) AS x
+--         ' || opac_visibility_join || '
+--   ORDER BY 3 DESC, 4 DESC NULLS LAST, 5 DESC, 6 DESC, 7 DESC, 1 ASC
+--   LIMIT $5
+-- '   -- sic, repeat the order by clause in the outer select too
+--     USING
+--         query, search_class, headline_opts,
+--         visibility_org, query_limit, normalization, plain_query
+--         ;
+-- 
+--     -- sort order:
+--     --  buoyant AND chosen class = match class
+--     --  chosen field = match field
+--     --  field weight
+--     --  rank
+--     --  buoyancy
+--     --  value itself
+-- 
+-- END;
+-- $func$ LANGUAGE PLPGSQL;
 
 
 SELECT evergreen.upgrade_deps_block_check('0742', :eg_version);