[open-ils-commits] [GIT] Evergreen ILS branch master updated. d0dacd71c7392c9ed6661ef303f6d1c2d4d96a24

Evergreen Git git at git.evergreen-ils.org
Wed Jan 17 13:18:53 EST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, master has been updated
       via  d0dacd71c7392c9ed6661ef303f6d1c2d4d96a24 (commit)
       via  48270054bea622d481a422a2e724aa22bc109609 (commit)
       via  02cfe27d07cf93b612825e45a6975bcb2d5e80b8 (commit)
      from  56bcda57b3d8a364abc883afe9e27563bef8f6cd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit d0dacd71c7392c9ed6661ef303f6d1c2d4d96a24
Author: Kathy Lussier <klussier at masslnc.org>
Date:   Wed Jan 17 13:17:02 2018 -0500

    LP#1743639: Stamping upgrade script for copy location group visibility
    
    Signed-off-by: Kathy Lussier <klussier at masslnc.org>

diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index d47b2b4..650c5ec 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -92,7 +92,7 @@ CREATE TRIGGER no_overlapping_deps
     BEFORE INSERT OR UPDATE ON config.db_patch_dependencies
     FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
 
-INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1085', :eg_version); -- miker/kmlussier
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1086', :eg_version); -- miker/kmlussier
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql b/Open-ILS/src/sql/Pg/upgrade/1086.function.copy_location_group_visible.sql
similarity index 86%
rename from Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql
rename to Open-ILS/src/sql/Pg/upgrade/1086.function.copy_location_group_visible.sql
index ca49b54..eac6591 100644
--- a/Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/1086.function.copy_location_group_visible.sql
@@ -1,5 +1,7 @@
 BEGIN;
 
+SELECT evergreen.upgrade_deps_block_check('1086', :eg_version);
+
 CREATE OR REPLACE FUNCTION asset.location_group_default () RETURNS TEXT AS $f$
     SELECT '!()'::TEXT; -- For now, as there's no way to cause a location group to hide all copies.
 /*

commit 48270054bea622d481a422a2e724aa22bc109609
Author: Mike Rylander <mrylander at gmail.com>
Date:   Tue Jan 16 16:26:31 2018 -0500

    LP#1743639: Test location as proxy for location group
    
    Location groups are a table remove from copies, and can cause very large
    updates to the copy vis cache.  So, we will expand location groups to
    locations, in situ, to avoid this problem and the need to supply a trigger
    to update th copy vis cache for groups.  This will allow us to reclaim
    the location group bit in the visibility cache namespace if necessary, at
    a later date.
    
    Signed-off-by: Mike Rylander <mrylander at gmail.com>
    Signed-off-by: Kathy Lussier <klussier at masslnc.org>

diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
index 9a02d33..1a3d40a 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
@@ -1511,15 +1511,17 @@ sub flatten {
             } elsif ($filter->name eq 'locations') {
                 if (@{$filter->args} > 0) {
                     my $negate = $filter->negate ? 'TRUE' : 'FALSE';
+                    my $filter_args = join(",", map(int, @{$filter->args}));
                     push @{$vis_filter{'c_attr'}},
-                        "search.calculate_visibility_attribute_test('location','{".join(',', @{$filter->args})."}',$negate)";
+                        "search.calculate_visibility_attribute_test('location',$filter_args,$negate)";
                 }
 
             } elsif ($filter->name eq 'location_groups') {
                 if (@{$filter->args} > 0) {
                     my $negate = $filter->negate ? 'TRUE' : 'FALSE';
+                    my $filter_args = join(",", map(int, @{$filter->args}));
                     push @{$vis_filter{'c_attr'}},
-                        "search.calculate_visibility_attribute_test('location_group','{".join(',', @{$filter->args})."}',$negate)";
+                        "search.calculate_visibility_attribute_test('location',(SELECT ARRAY_AGG(location) FROM asset.copy_location_group_map WHERE lgroup IN ($filter_args)),$negate)";
                 }
 
             } elsif ($filter->name eq 'statuses') {
diff --git a/Open-ILS/src/sql/Pg/300.schema.staged_search.sql b/Open-ILS/src/sql/Pg/300.schema.staged_search.sql
index 5735263..5157aaf 100644
--- a/Open-ILS/src/sql/Pg/300.schema.staged_search.sql
+++ b/Open-ILS/src/sql/Pg/300.schema.staged_search.sql
@@ -761,7 +761,7 @@ CREATE OR REPLACE FUNCTION asset.location_group_default () RETURNS TEXT AS $f$
       FROM  asset.copy_location_group
       WHERE NOT opac_visible;
 */
-$f$ LANGUAGE SQL STABLE;
+$f$ LANGUAGE SQL IMMUTABLE;
 
 CREATE OR REPLACE FUNCTION asset.location_default () RETURNS TEXT AS $f$
     SELECT  '!(' || ARRAY_TO_STRING(ARRAY_AGG(search.calculate_visibility_attribute(id, 'location')),'|') || ')'
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql
index 7b457c6..ca49b54 100644
--- a/Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql
@@ -7,7 +7,7 @@ CREATE OR REPLACE FUNCTION asset.location_group_default () RETURNS TEXT AS $f$
       FROM  asset.copy_location_group
       WHERE NOT opac_visible;
 */
-$f$ LANGUAGE SQL STABLE;
+$f$ LANGUAGE SQL IMMUTABLE;
 
 COMMIT;
 

commit 02cfe27d07cf93b612825e45a6975bcb2d5e80b8
Author: Mike Rylander <mrylander at gmail.com>
Date:   Tue Jan 16 14:39:08 2018 -0500

    LP#1743639: opac_visible on acplg is not what it seems
    
    The asset.copy_location_group table has a column called opac_visible.
    However, unlike other tables with a column of that name, it controls the
    visibility of the location group itself, not the visibility of the copies
    within the group.  This is regretable because the 3.0+ search code thinks
    that it should hide copies.
    
    This commit adjusts the default location group filter applied to patron
    searches so that they act as expected.
    
    Signed-off-by: Mike Rylander <mrylander at gmail.com>
    Signed-off-by: Kathy Lussier <klussier at masslnc.org>

diff --git a/Open-ILS/src/sql/Pg/300.schema.staged_search.sql b/Open-ILS/src/sql/Pg/300.schema.staged_search.sql
index c6cfdf4..5735263 100644
--- a/Open-ILS/src/sql/Pg/300.schema.staged_search.sql
+++ b/Open-ILS/src/sql/Pg/300.schema.staged_search.sql
@@ -755,9 +755,12 @@ $f$ LANGUAGE SQL STABLE;
 
 -- Copy-oriented defaults for search
 CREATE OR REPLACE FUNCTION asset.location_group_default () RETURNS TEXT AS $f$
+    SELECT '!()'::TEXT; -- For now, as there's no way to cause a location group to hide all copies.
+/*
     SELECT  '!(' || ARRAY_TO_STRING(ARRAY_AGG(search.calculate_visibility_attribute(id, 'location_group')),'|') || ')'
       FROM  asset.copy_location_group
       WHERE NOT opac_visible;
+*/
 $f$ LANGUAGE SQL STABLE;
 
 CREATE OR REPLACE FUNCTION asset.location_default () RETURNS TEXT AS $f$
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql
new file mode 100644
index 0000000..7b457c6
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.function.copy_location_group_visible.sql
@@ -0,0 +1,13 @@
+BEGIN;
+
+CREATE OR REPLACE FUNCTION asset.location_group_default () RETURNS TEXT AS $f$
+    SELECT '!()'::TEXT; -- For now, as there's no way to cause a location group to hide all copies.
+/*
+    SELECT  '!(' || ARRAY_TO_STRING(ARRAY_AGG(search.calculate_visibility_attribute(id, 'location_group')),'|') || ')'
+      FROM  asset.copy_location_group
+      WHERE NOT opac_visible;
+*/
+$f$ LANGUAGE SQL STABLE;
+
+COMMIT;
+

-----------------------------------------------------------------------

Summary of changes:
 .../Application/Storage/Driver/Pg/QueryParser.pm   |    6 ++++--
 Open-ILS/src/sql/Pg/002.schema.config.sql          |    2 +-
 Open-ILS/src/sql/Pg/300.schema.staged_search.sql   |    5 ++++-
 .../1086.function.copy_location_group_visible.sql  |   15 +++++++++++++++
 4 files changed, 24 insertions(+), 4 deletions(-)
 create mode 100644 Open-ILS/src/sql/Pg/upgrade/1086.function.copy_location_group_visible.sql


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list