From 66620b64f7d28ec1294258594d458697258d722e Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 24 Jul 2012 15:25:58 -0400 Subject: [PATCH] simple stored function to check parseability of MARCXML blobs Signed-off-by: Galen Charlton --- sql/base/base.sql | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-) diff --git a/sql/base/base.sql b/sql/base/base.sql index ab7b654..deeaa3c 100644 --- a/sql/base/base.sql +++ b/sql/base/base.sql @@ -1625,4 +1625,23 @@ END; $$ LANGUAGE plpgsql; +CREATE OR REPLACE FUNCTION migration_tools.marc_parses( TEXT ) RETURNS BOOLEAN AS $func$ + +use MARC::Record; +use MARC::File::XML (BinaryEncoding => 'UTF-8'); +use MARC::Charset; + +MARC::Charset->assume_unicode(1); + +my $xml = shift; + +eval { my $r = MARC::Record->new_from_xml( $xml ); }; +if ($@) { + return 0; +} else { + return 1; +} + +$func$ LANGUAGE PLPERLU; +COMMENT ON FUNCTION migration_tools.marc_parses(TEXT) IS 'Return boolean indicating if MARCXML string is parseable by MARC::File::XML'; -- 1.7.2.5