From: miker Date: Sat, 27 Mar 2010 20:49:49 +0000 (+0000) Subject: safer date1 number sanitization X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=e0742449355143d3db2da814ea3d7a10864aa07d;p=evergreen%2Fpines.git safer date1 number sanitization git-svn-id: svn://svn.open-ils.org/ILS/trunk@16025 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm index de1d79a460..ace362a22e 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm @@ -465,7 +465,7 @@ sub toSQL { SQL } elsif ($sort_filter eq 'pubdate') { my $default = $desc eq 'DESC' ? '0' : '99999'; - $rank = "COALESCE( FIRST(NULLIF(REGEXP_REPLACE(mrd.date1, E'\\\\D+', '0', 'g'),'0000')), '$default' )::INT"; + $rank = "COALESCE( FIRST(NULLIF(LPAD(REGEXP_REPLACE(mrd.date1, E'\\\\D+', '0', 'g'),4,'0'),'0000')), '$default' )::INT"; } elsif ($sort_filter eq 'create_date') { $rank = "( FIRST (( SELECT create_date FROM biblio.record_entry rbr WHERE rbr.id = m.source)) )::TIMESTAMPTZ"; } elsif ($sort_filter eq 'edit_date') { @@ -526,7 +526,7 @@ SELECT $key AS id, ARRAY_ACCUM(DISTINCT m.source) AS records, $rel AS rel, $rank AS rank, - COALESCE( FIRST(NULLIF(REGEXP_REPLACE(mrd.date1, E'\\\\D+', '0', 'g'),'')), '0' )::INT AS tie_break + COALESCE( FIRST(NULLIF(LPAD(REGEXP_REPLACE(mrd.date1, E'\\\\D+', '0', 'g'),4,'0'),'0000')), '0' )::INT AS tie_break FROM metabib.metarecord_source_map m JOIN metabib.rec_descriptor mrd ON (m.source = mrd.record) $$flat_plan{from}