Munged trunk merge
authorMike Rylander <mrylander@gmail.com>
Tue, 3 May 2011 23:54:59 +0000 (19:54 -0400)
committerMike Rylander <mrylander@gmail.com>
Tue, 3 May 2011 23:54:59 +0000 (19:54 -0400)
1  2 
Open-ILS/examples/fm_IDL.xml
Open-ILS/src/sql/Pg/012.schema.vandelay.sql
Open-ILS/src/sql/Pg/030.schema.metabib.sql

Simple merge
@@@ -420,6 -426,86 +420,7 @@@ $func$ LANGUAGE PLPGSQL
  --             )x(record int, tag text, ind1 text, ind2 text, subfield text, value text);
  -- $func$ LANGUAGE SQL;
  
 -CREATE OR REPLACE FUNCTION biblio.flatten_marc ( TEXT ) RETURNS SETOF metabib.full_rec AS $func$
 -
 -use MARC::Record;
 -use MARC::File::XML (BinaryEncoding => 'UTF-8');
 -use MARC::Charset;
 -
 -MARC::Charset->assume_unicode(1);
 -
 -my $xml = shift;
 -my $r = MARC::Record->new_from_xml( $xml );
 -
 -return_next( { tag => 'LDR', value => $r->leader } );
 -
 -for my $f ( $r->fields ) {
 -      if ($f->is_control_field) {
 -              return_next({ tag => $f->tag, value => $f->data });
 -      } else {
 -              for my $s ($f->subfields) {
 -                      return_next({
 -                              tag      => $f->tag,
 -                              ind1     => $f->indicator(1),
 -                              ind2     => $f->indicator(2),
 -                              subfield => $s->[0],
 -                              value    => $s->[1]
 -                      });
 -
 -                      if ( $f->tag eq '245' and $s->[0] eq 'a' ) {
 -                              my $trim = $f->indicator(2) || 0;
 -                              return_next({
 -                                      tag      => 'tnf',
 -                                      ind1     => $f->indicator(1),
 -                                      ind2     => $f->indicator(2),
 -                                      subfield => 'a',
 -                                      value    => substr( $s->[1], $trim )
 -                              });
 -                      }
 -              }
 -      }
 -}
 -
 -return undef;
 -
 -$func$ LANGUAGE PLPERLU;
 -
 -CREATE OR REPLACE FUNCTION vandelay.marc21_record_type( marc TEXT ) RETURNS config.marc21_rec_type_map AS $func$
 -DECLARE
 -      ldr         TEXT;
 -      tval        TEXT;
 -      tval_rec    RECORD;
 -      bval        TEXT;
 -      bval_rec    RECORD;
 -    retval      config.marc21_rec_type_map%ROWTYPE;
 -BEGIN
 -    ldr := oils_xpath_string( '//*[local-name()="leader"]', marc );
 -
 -    IF ldr IS NULL OR ldr = '' THEN
 -        SELECT * INTO retval FROM config.marc21_rec_type_map WHERE code = 'BKS';
 -        RETURN retval;
 -    END IF;
 -
 -    SELECT * INTO tval_rec FROM config.marc21_ff_pos_map WHERE fixed_field = 'Type' LIMIT 1; -- They're all the same
 -    SELECT * INTO bval_rec FROM config.marc21_ff_pos_map WHERE fixed_field = 'BLvl' LIMIT 1; -- They're all the same
 -
 -
 -    tval := SUBSTRING( ldr, tval_rec.start_pos + 1, tval_rec.length );
 -    bval := SUBSTRING( ldr, bval_rec.start_pos + 1, bval_rec.length );
 -
 -    -- RAISE NOTICE 'type %, blvl %, ldr %', tval, bval, ldr;
 -
 -    SELECT * INTO retval FROM config.marc21_rec_type_map WHERE type_val LIKE '%' || tval || '%' AND blvl_val LIKE '%' || bval || '%';
 -
 -
 -    IF retval.code IS NULL THEN
 -        SELECT * INTO retval FROM config.marc21_rec_type_map WHERE code = 'BKS';
 -    END IF;
 -
 -    RETURN retval;
 -END;
 -$func$ LANGUAGE PLPGSQL;
  CREATE OR REPLACE FUNCTION biblio.marc21_record_type( rid BIGINT ) RETURNS config.marc21_rec_type_map AS $func$
      SELECT * FROM vandelay.marc21_record_type( (SELECT marc FROM biblio.record_entry WHERE id = $1) );
  $func$ LANGUAGE SQL;