question: public void prepare ( ) { for ( int i = 0 ; i < indexConditions . size ( ) ; i ++ ) { IndexCondition condition = indexConditions . get ( i ) ; if ( ! condition . isAlwaysFalse ( ) ) { Column col = condition . getColumn ( ) ; if ( col . getColumnId ( ) >= 0 ) { if ( index . getColumnIndex ( col ) < 0 ) { indexConditions . remove ( i ) ; i -- ; } } } } if ( nestedJoin != null ) { if ( SysProperties . CHECK && nestedJoin == this ) { DbException . throwInternalError ( "self join" ) ; } nestedJoin . prepare ( ) ; } if ( join != null ) { if ( SysProperties . CHECK && join == this ) { DbException . throwInternalError ( "self join" ) ; } join . prepare ( ) ; } if ( filterCondition != null ) { filterCondition = filterCondition . optimize ( session ) ; } if ( joinCondition != null ) { joinCondition = joinCondition . optimize ( session ) ; } }
target:  Prepare reading rows. This method will remove all index conditions that can not be used, and optimize the conditions.