public void generateOutputSchema ( Database db ) { // default behavior: just copy the input schema // to the output schema assert ( m_children . size ( ) == 1 ) ; AbstractPlanNode childNode = m_children . get ( 0 ) ; childNode . generateOutputSchema ( db ) ; // Replace the expressions in our children's columns with TVEs. When // we resolve the indexes in these TVEs they will point back at the // correct input column, which we are assuming that the child node // has filled in with whatever expression was here before the replacement. // Output schemas defined using this standard algorithm // are just cached "fillers" that satisfy the legacy // resolveColumnIndexes/generateOutputSchema/getOutputSchema protocol // until it can be fixed up -- see the FIXME comment on generateOutputSchema. m_hasSignificantOutputSchema = false ; m_outputSchema = childNode . getOutputSchema ( ) . copyAndReplaceWithTVE ( ) ; }
Generate the output schema for this node based on the output schemas of its children . The generated schema consists of the complete set of columns but is not yet ordered .