X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=sql%2Fbase%2Fbase.sql;h=1c25fcc21bd73aa13e81d94ed9f39dae42e13765;hp=5c1174b904be992ab23329e7ce360ccba00a3ae0;hb=8116ae8e275e305ee91d3aea06df40ffab1f07ab;hpb=8a2e714085d823872527e19fddcdee6e1ca54e34 diff --git a/sql/base/base.sql b/sql/base/base.sql index 5c1174b..1c25fcc 100644 --- a/sql/base/base.sql +++ b/sql/base/base.sql @@ -481,10 +481,6 @@ CREATE OR REPLACE FUNCTION migration_tools.name_parse_out_fuller_last_first_midd suffix := 'II'; temp := BTRIM(REGEXP_REPLACE( temp, E'II', '' )); END IF; - IF temp like '%IV%' THEN - suffix := 'IV'; - temp := BTRIM(REGEXP_REPLACE( temp, E'IV', '' )); - END IF; IF temp ~ ',' THEN family_name = BTRIM(REGEXP_REPLACE(temp,'^(.*?,).*$','\1')); @@ -2558,6 +2554,21 @@ CREATE OR REPLACE FUNCTION migration_tools.duplicate_template_but_change_delay ( END; $$ LANGUAGE PLPGSQL STRICT VOLATILE; +CREATE OR REPLACE FUNCTION migration_tools.get_marc_leader (TEXT) RETURNS TEXT AS $$ + my ($marcxml) = @_; + + use MARC::Record; + use MARC::File::XML; + use MARC::Field; + + my $field; + eval { + my $marc = MARC::Record->new_from_xml($marcxml, 'UTF-8'); + $field = $marc->leader(); + }; + return $field; +$$ LANGUAGE PLPERLU STABLE; + CREATE OR REPLACE FUNCTION migration_tools.get_marc_tag (TEXT, TEXT, TEXT, TEXT) RETURNS TEXT AS $$ my ($marcxml, $tag, $subfield, $delimiter) = @_; @@ -2676,3 +2687,27 @@ CREATE OR REPLACE FUNCTION migration_tools.push_bib_sequence(INTEGER) RETURNS BI END; $$ LANGUAGE PLPGSQL STRICT VOLATILE; +-- set a new salted password + +CREATE OR REPLACE FUNCTION migration_tools.set_salted_passwd(INTEGER,TEXT) RETURNS BOOLEAN AS $$ + DECLARE + usr_id ALIAS FOR $1; + plain_passwd ALIAS FOR $2; + plain_salt TEXT; + md5_passwd TEXT; + BEGIN + + SELECT actor.create_salt('main') INTO plain_salt; + + SELECT MD5(plain_passwd) INTO md5_passwd; + + PERFORM actor.set_passwd(usr_id, 'main', MD5(plain_salt || md5_passwd), plain_salt); + + RETURN TRUE; + + END; +$$ LANGUAGE PLPGSQL STRICT VOLATILE; + + + +