protect 0-param normalizers from null params value
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 16 Oct 2009 00:20:16 +0000 (00:20 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 16 Oct 2009 00:20:16 +0000 (00:20 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@14463 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/sql/Pg/upgrade/0034.schema.in-db-indexing-normalization.sql

index e73b3f2..bb8a0d5 100644 (file)
@@ -12,13 +12,20 @@ BEGIN
         IF TG_TABLE_NAME::TEXT ~ 'field_entry$' THEN
                 FOR normalizer IN
                        SELECT  n.func AS func,
+                               n.param_count AS param_count,
                                m.params AS params
                          FROM  config.index_normalizer n
                                JOIN config.metabib_field_index_norm_map m ON (m.norm = n.id)
                          WHERE field = NEW.field
                          ORDER BY m.pos
                LOOP
-                       EXECUTE 'SELECT ' || normalizer.func || '(' || quote_literal( value ) || ',' || BTRIM(normalizer.params,'[]') || ')' INTO value;
+                       EXECUTE 'SELECT ' || normalizer.func || '(' ||
+                                       quote_literal( value ) || 
+                                       CASE
+                                               WHEN normalizer.param_count > 0 THEN ',' || BTRIM(normalizer.params,'[]')
+                                               ELSE ''
+                                       END || 
+                               ')' INTO value;
                END LOOP;
         END IF;