]> git.evergreen-ils.org Git - Evergreen.git/commit
LP#1851413: Restore assumed order of full_path
authorMike Rylander <mrylander@gmail.com>
Tue, 5 Nov 2019 17:30:10 +0000 (12:30 -0500)
committerGalen Charlton <gmc@equinoxinitiative.org>
Fri, 11 Sep 2020 15:11:05 +0000 (11:11 -0400)
commitc421e1efe5ee699e014bd765148fa22c75377cbf
treeb92bb1f055e28e2e69e5be6a5102a76e295bdb42
parentff6e0b57c096ea2b02dfab585f26a64a3df717db
LP#1851413: Restore assumed order of full_path

Some code, including UI rendering code in the reporting interfaces,
assumes that the order of the full_path stored procedure will be the
same as for the ancestors and descendants procedures, which is tree
order from top to bottom. However, because the full_path procedure
simply UNIONs the other two together without an explicit ORDER BY,
that may not be -- and for org hierarchies that have been modified
heavily, often is not -- the case in practice. This is due to
internals of query planning in Postgres.

The easiest place to see this issues is in the report interface.
Select a template folder that is not currently shared, choose Manage
Folder, select Share Folder, click Go, and see the dropdown of options.
Under some circumstances, the list of org units in the dropdown there
are incorrectly ordered (should be from top of the tree down), and some
that should be available are disabled.

This commit uses the org unit type depth to order the output as assumed.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/sql/Pg/020.schema.functions.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.function.restore_full_path_order.sql [new file with mode: 0644]