Fix issue with change in copy "floating" datatype
authorJeff Godin <jgodin@tadl.org>
Thu, 13 Feb 2014 20:26:25 +0000 (15:26 -0500)
committerGalen Charlton <gmc@esilibrary.com>
Thu, 13 Feb 2014 20:35:43 +0000 (15:35 -0500)
In recent versions of Evergreen, asset.copy.floating changed from a bool
to an int, which results in an error like the following:

 operator does not exist: integer = boolean
 SELECT CASE floating WHEN TRUE THEN 'Y' ELSE NULL END FROM a...

This change attempts to accommodate this change in datatype in a
backward-compatible way.

Signed-off-by: Jeff Godin <jgodin@tadl.org>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
collectionHQ/functions.sql

index 0cea710..52f1e8c 100644 (file)
@@ -128,7 +128,7 @@ CREATE OR REPLACE FUNCTION collectionHQ.write_item_rows_to_stdout (TEXT, INT) RE
       WHERE id = lms_bib_id;
       SELECT collectionHQ.attempt_price(ac.price::TEXT), barcode, ac.status,
              REPLACE(create_date::DATE::TEXT, '-', ''),
-             CASE floating WHEN TRUE THEN 'Y' ELSE NULL END
+             CASE WHEN floating::int > 0 THEN 'Y' ELSE NULL END
       INTO price, bar_code, status, date_added, rotating_stock
       FROM asset.copy ac 
       WHERE id = item;