#!/bin/bash
-grep -i 'CREATE OR REPLACE FUNCTION' *.sql | perl -ne 'if (/^(.+?):.*(migration_tools.+?)[ \(].*$/) { print "# $1:$2\n"; }' | sort
+grep -i 'CREATE OR REPLACE FUNCTION' *.sql | perl -ne 'if (/^(.+?):.*(migration_tools.+?)[ \(].*$/) { print "# $1:$2\n"; }' | sort | uniq
+# 00-infrastructure.sql:migration_tools.assert
# 00-infrastructure.sql:migration_tools.build
# 00-infrastructure.sql:migration_tools.build_base_staging_tables
# 00-infrastructure.sql:migration_tools.build_specific_base_staging_table
# 01-marc.sql:migration_tools.get_marc_tags
# 01-marc.sql:migration_tools.get_marc_tags_filtered
# 01-marc.sql:migration_tools.insert_tags
-# 01-marc.sql:migration_tools.insert_tags
-# 01-marc.sql:migration_tools.make_stub_bib
# 01-marc.sql:migration_tools.make_stub_bib
# 01-marc.sql:migration_tools.marc_parses
# 01-marc.sql:migration_tools.merge_marc_fields
# 01-marc.sql:migration_tools.owner_change_sf9_substring_match
# 01-marc.sql:migration_tools.owner_change_sf9_substring_match2
# 01-marc.sql:migration_tools.set_008
-# 01-marc.sql:migration_tools.set_008
# 01-marc.sql:migration_tools.set_indicator
# 01-marc.sql:migration_tools.set_leader
-# 01-marc.sql:migration_tools.set_leader
-# 01-marc.sql:migration_tools.strip_tag
# 01-marc.sql:migration_tools.strip_tag
# 02-barcodes.sql:migration_tools.add_codabar_checkdigit
# 02-barcodes.sql:migration_tools.add_code39mod43_checkdigit
# 02-barcodes.sql:migration_tools.rebarcode
# 03-items.sql:migration_tools.change_call_number
# 03-items.sql:migration_tools.change_owning_lib
-# 03-items.sql:migration_tools.change_owning_lib
# 04-names.sql:migration_tools.name_parse_out_first_middle_last_comma_suffix
# 04-names.sql:migration_tools.name_parse_out_fuller_last_first_middle_and_random_affix
# 04-names.sql:migration_tools.name_parse_out_fuller_last_first_middle_and_random_affix2
# 07-eg-specific.sql:migration_tools.find_circ_matrix_matchpoint
# 07-eg-specific.sql:migration_tools.find_hold_matrix_matchpoint
# 07-eg-specific.sql:migration_tools.find_hold_matrix_matchpoint2
+# 07-eg-specific.sql:migration_tools.find_mig_shelf
+# 07-eg-specific.sql:migration_tools.find_shelf
# 07-eg-specific.sql:migration_tools.get_copy_price
+# 07-eg-specific.sql:migration_tools.handle_actor_barcode_collisions
+# 07-eg-specific.sql:migration_tools.handle_actor_barcode_collisions2
+# 07-eg-specific.sql:migration_tools.handle_actor_sc_and_sce
+# 07-eg-specific.sql:migration_tools.handle_asset_barcode_collisions
+# 07-eg-specific.sql:migration_tools.handle_asset_barcode_collisions2
+# 07-eg-specific.sql:migration_tools.handle_asset_sc_and_sce
+# 07-eg-specific.sql:migration_tools.handle_barred_or_blocked
+# 07-eg-specific.sql:migration_tools.handle_circmod
+# 07-eg-specific.sql:migration_tools.handle_item_barcode
+# 07-eg-specific.sql:migration_tools.handle_not_migrate
+# 07-eg-specific.sql:migration_tools.handle_org
+# 07-eg-specific.sql:migration_tools.handle_profile
+# 07-eg-specific.sql:migration_tools._handle_shelf
+# 07-eg-specific.sql:migration_tools.handle_shelf
+# 07-eg-specific.sql:migration_tools.handle_status
+# 07-eg-specific.sql:migration_tools.handle_user_barcode
# 07-eg-specific.sql:migration_tools.insert_metarecords_for_incumbent_database
# 07-eg-specific.sql:migration_tools.insert_metarecords_for_pristine_database
+# 07-eg-specific.sql:migration_tools.is_circ_rule_safe_to_delete
# 07-eg-specific.sql:migration_tools.is_staff_profile
# 07-eg-specific.sql:migration_tools.reset_event
+# 07-eg-specific.sql:migration_tools.set_salted_passwd
# 07-eg-specific.sql:migration_tools.simple_export_library_config
# 07-eg-specific.sql:migration_tools.simple_import_library_config
+# 07-eg-specific.sql:migration_tools.vivicate_actor_sc_and_sce
+# 07-eg-specific.sql:migration_tools.vivicate_asset_sc_and_sce
# 08-casting-and-validation.sql:migration_tools.attempt_cast
# 08-casting-and-validation.sql:migration_tools.attempt_date
# 08-casting-and-validation.sql:migration_tools.attempt_money
# 08-casting-and-validation.sql:migration_tools.attempt_money_from_pennies
# 08-casting-and-validation.sql:migration_tools.attempt_money_from_pennies6
# 08-casting-and-validation.sql:migration_tools.attempt_timestamptz
+# 09-misc.sql:migration_tools.btrim_columns
+# 09-misc.sql:migration_tools.btrim_lcolumns
# 09-misc.sql:migration_tools.is_blank
+# 09-misc.sql:migration_tools.null_empty_columns
+# 09-misc.sql:migration_tools.null_empty_lcolumns
# 10-staging.sql:migration_tools.simple_import_new_rows_by_value
# 10-staging.sql:migration_tools.split_rows_on_column_with_delimiter
# 10-staging.sql:migration_tools.stage_not_applicable_asset_stat_cats
# 21-fixed-fields.sql:migration_tools.stage_vlist
# 21-fixed-fields.sql:migration_tools.view_staged_vlist
# 22-anyarray.sql:migration_tools.anyarray_concat
-# 22-anyarray.sql:migration_tools.anyarray_concat
-# 22-anyarray.sql:migration_tools.anyarray_concat_uniq
# 22-anyarray.sql:migration_tools.anyarray_concat_uniq
# 22-anyarray.sql:migration_tools.anyarray_diff
# 22-anyarray.sql:migration_tools.anyarray_diff_uniq
# 22-anyarray.sql:migration_tools.anyarray_numeric_only
# 22-anyarray.sql:migration_tools.anyarray_ranges
# 22-anyarray.sql:migration_tools.anyarray_remove
-# 22-anyarray.sql:migration_tools.anyarray_remove
# 22-anyarray.sql:migration_tools.anyarray_remove_null
# 22-anyarray.sql:migration_tools.anyarray_sort
# 22-anyarray.sql:migration_tools.anyarray_uniq
# 99-deprecated.sql:migration_tools.base_circ_field_map
# 99-deprecated.sql:migration_tools.base_copy_location_map
# 99-deprecated.sql:migration_tools.base_item_dynamic_field_map
+# 99-deprecated.sql:migration_tools.debug_exec
+# 99-deprecated.sql:migration_tools.exec
+# 99-deprecated.sql:migration_tools.handle_link
+# 99-deprecated.sql:migration_tools.handle_link2
+# 99-deprecated.sql:migration_tools.handle_link3
+# 99-deprecated.sql:migration_tools.handle_link3_concat_skip_null
+# 99-deprecated.sql:migration_tools.handle_link3_skip_false
+# 99-deprecated.sql:migration_tools.handle_link3_skip_null
+# 99-deprecated.sql:migration_tools.handle_link3_skip_null_or_empty_string
+# 99-deprecated.sql:migration_tools.handle_link3_skip_true
# 99-deprecated.sql:migration_tools.insert_856_9
# 99-deprecated.sql:migration_tools.insert_856_9_conditional
+# 99-deprecated.sql:migration_tools.insert_base_into_production
+# 99-deprecated.sql:migration_tools.insert_into_production
# 99-deprecated.sql:migration_tools.is_staff_profile
+# 99-deprecated.sql:migration_tools.log
# 99-deprecated.sql:migration_tools.map_base_circ_table_dynamic
# 99-deprecated.sql:migration_tools.map_base_item_table_dynamic
# 99-deprecated.sql:migration_tools.map_base_item_table_locations
# 99-deprecated.sql:migration_tools.map_base_patron_profile
+# 99-deprecated.sql:migration_tools.push_bib_sequence
# 99-deprecated.sql:migration_tools.refresh_opac_visible_copies
-# base.sql:migration_tools.assert
-# base.sql:migration_tools.assert
-# base.sql:migration_tools.assert
-# base.sql:migration_tools.btrim_columns
-# base.sql:migration_tools.btrim_lcolumns
-# base.sql:migration_tools.build
-# base.sql:migration_tools.build_base_staging_tables
-# base.sql:migration_tools.build_specific_base_staging_table
-# base.sql:migration_tools.country_code
-# base.sql:migration_tools.create_linked_legacy_table_from
-# base.sql:migration_tools.debug_exec
-# base.sql:migration_tools.exec
-# base.sql:migration_tools.find_mig_shelf
-# base.sql:migration_tools.find_shelf
-# base.sql:migration_tools.handle_actor_barcode_collisions
-# base.sql:migration_tools.handle_actor_barcode_collisions2
-# base.sql:migration_tools.handle_actor_sc_and_sce
-# base.sql:migration_tools.handle_asset_barcode_collisions
-# base.sql:migration_tools.handle_asset_barcode_collisions2
-# base.sql:migration_tools.handle_asset_sc_and_sce
-# base.sql:migration_tools.handle_barred_or_blocked
-# base.sql:migration_tools.handle_circmod
-# base.sql:migration_tools.handle_item_barcode
-# base.sql:migration_tools.handle_link
-# base.sql:migration_tools.handle_link2
-# base.sql:migration_tools.handle_link3
-# base.sql:migration_tools.handle_link3_concat_skip_null
-# base.sql:migration_tools.handle_link3_skip_false
-# base.sql:migration_tools.handle_link3_skip_null
-# base.sql:migration_tools.handle_link3_skip_null_or_empty_string
-# base.sql:migration_tools.handle_link3_skip_true
-# base.sql:migration_tools.handle_not_migrate
-# base.sql:migration_tools.handle_org
-# base.sql:migration_tools.handle_profile
-# base.sql:migration_tools._handle_shelf
-# base.sql:migration_tools.handle_shelf
-# base.sql:migration_tools.handle_status
-# base.sql:migration_tools.handle_user_barcode
-# base.sql:migration_tools.init
-# base.sql:migration_tools.insert_base_into_production
-# base.sql:migration_tools.insert_into_production
-# base.sql:migration_tools.is_circ_rule_safe_to_delete
-# base.sql:migration_tools.log
-# base.sql:migration_tools.null_empty_columns
-# base.sql:migration_tools.null_empty_lcolumns
-# base.sql:migration_tools.production_tables
-# base.sql:migration_tools.push_bib_sequence
-# base.sql:migration_tools.set_salted_passwd
-# base.sql:migration_tools.vivicate_actor_sc_and_sce
-# base.sql:migration_tools.vivicate_asset_sc_and_sce