The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

use strict;
use XML::Comma;
use XML::Comma::Util qw( dbg );

use Getopt::Long;
my ($doc_type, $index_name, $module); 
my %args = ( 'type=s', \$doc_type,
             'index=s', \$index_name,
             'module=s', \$module );
&GetOptions ( %args );

if ( $module ) {
  eval "use $module";
  if ( $@ ) { die "bad module load: $@\n" }
#  $module->new();
}

if ( ! $doc_type or ! $index_name ) {
  die "usage: comma-drop-index.pl [ -module <module to load> ] -type <document_type> -index <index_name>\n"
}

my $index = XML::Comma::Def->read(name=>$doc_type)->get_index($index_name);
my @tables;

push @tables, $index->data_table_name();
push @tables, $index->sql_get_sort_tables();
push @tables, $index->sql_get_bcollection_table();

foreach my $textsearch ( $index->elements('textsearch') ) {
  my $name = $textsearch->element('name')->get();
  print "dropping textsearch tables for '$name'\n";
  $index->sql_drop_textsearch_tables ( $name );
}

foreach ( @tables ) {
  print "dropping: $_\n";
  $index->drop_table ( $_ );
}