#!/bin/tcsh -ef

#idx_Object_key|clustered located on seg4| _Object_key|0|0|0|Jun 12 2005 12:09AM|
#idx_Accession_key|nonclustered, unique located on seg5| _Accession_key|0|0|0|Jun 12 2005 12:12AM|
#idx_accID|nonclustered located on seg5| accID|0|0|0|Jun 12 2005 12:16AM|
#idx_numericPart|nonclustered located on seg5| numericPart|0|0|0|Jun 12 2005 12:19AM|
#idx_LogicalDB_key|nonclustered located on seg5| _LogicalDB_key|0|0|0|Jun 12 2005 12:23AM|
#idx_MGIType_key|nonclustered located on seg5| _MGIType_key|0|0|0|Jun 12 2005 12:26AM|
#idx_Object_MGIType|nonclustered located on seg5| _Object_key, _MGIType_key|0|0|0|Jun 12 2005 12:30AM|
#idx_prefixPart|nonclustered located on seg5| prefixPart|0|0|0|Jun 12 2005 12:33AM|
#idx_CreatedBy_key|nonclustered located on seg5| _CreatedBy_key|0|0|0|Jun 12 2005 12:37AM|
#idx_ModifiedBy_key|nonclustered located on seg5| _ModifiedBy_key|0|0|0|Jun 12 2005 12:40AM|
#
#CREATE INDEX part_of_name ON customer (name(10),age(4));

if ("$1" == "") then
    echo "error: no table name specified"
    exit 1
endif
if ("$jdb" == "") then
    echo "env var jdb not set.  should be something like jackson20060125"
    exit 1
endif

set table = "$1"
set outpath = "/san/sanvol1/visiGene/offline/jax/$jdb"
set sql = "sp_helpindex $table; -m bcp"

query "$sql" "bcp" > tempfields

sed -i -e 's/ //g' tempfields
sed -i -e 's/|/\t/g' tempfields

#cat tempfields
set fields = ( `cat tempfields` )

if ( "$fields" == "Objectdoesnothaveanyindexes." ) then
    echo "" > $outpath/${table}Idx.sql
    exit 0
endif

if ( -e $outpath/${table}Idx.sql ) then
    rm $outpath/${table}Idx.sql
endif

# make create-sql

while ("$fields" != "")
    set idxname = $fields[1] 
    shift fields
    set junk0 = $fields[1] 
    shift fields
    set idxexpr = $fields[1] 
    shift fields
    set junk1 = $fields[1] 
    shift fields
    set junk2 = $fields[1] 
    shift fields
    set junk3 = $fields[1] 
    shift fields
    set junkdate = $fields[1] 
    shift fields
    #echo $idxname
    echo "$idxexpr" > tempsubkeys
    sed -i -e 's/,/\t/g' tempsubkeys
    #cat tempsubkeys
    set subkeys = ( `cat tempsubkeys` )
    
    #drop index on table in jackson db
    #echo "" > tempsqlidx
    #echo "DROP INDEX $idxname on $table;" >> tempsqlidx
    #hgsql $jdb -e "source tempsqlidx"
    
    #create index on table in jackson db
    echo "" > tempsqlidx
    echo "CREATE INDEX $idxname on $table ("  >> tempsqlidx
    set sep = " "
    while ("$subkeys" != "")
	set subkey = $subkeys[1] 
    	shift subkeys
	#echo "  $subkey"
	#if ( ("$type" == "char") || ("$type" == "varchar") || ("$type" == "int") || ("$type" == "bit")) then
    	#    echo "$sep$field $type($length)" >> tempsqlidx
    	#else	    
	    echo "$sep$subkey" >> tempsqlidx
	#endif	    
    	set sep = ","
    end
    echo "); " >> tempsqlidx
    cat tempsqlidx >> $outpath/${table}Idx.sql

end
echo "analyze table $table;" >> $outpath/${table}Idx.sql
cat $outpath/${table}Idx.sql

