question: public static void appendSecondaryIndexTypes ( Dataset dataset , ARecordType recordType , ARecordType metaRecordType , Index index , boolean primaryKeysOnly , List < Object > dest ) throws AlgebricksException { if ( ! primaryKeysOnly ) { switch ( index . getIndexType ( ) ) { case BTREE : case SINGLE_PARTITION_WORD_INVIX : case SINGLE_PARTITION_NGRAM_INVIX : { dest . addAll ( KeyFieldTypeUtils . getBTreeIndexKeyTypes ( index , recordType , metaRecordType ) ) ; break ; } case RTREE : { dest . addAll ( KeyFieldTypeUtils . getRTreeIndexKeyTypes ( index , recordType , metaRecordType ) ) ; break ; } case LENGTH_PARTITIONED_NGRAM_INVIX : case LENGTH_PARTITIONED_WORD_INVIX : default : break ; } } if ( dataset . getDatasetType ( ) == DatasetType . EXTERNAL ) { try { appendExternalRecPrimaryKeys ( dataset , dest ) ; } catch ( AsterixException e ) { throw new AlgebricksException ( e ) ; } } else { dest . addAll ( KeyFieldTypeUtils . getPartitoningKeyTypes ( dataset , recordType , metaRecordType ) ) ; } }
target:  Appends the types of the fields produced by the given secondary index to dest.