pub fn finalize(&mut self) -> &Self {

        let involved_models = self.get_involved_tables();
        if involved_models.len() > 1 {
            // enumerate all columns when there is a join
            if self.enumerate_all {
                self.enumerate_involved_tables_columns(&involved_models);
            }
            self.rename_conflicting_columns(); // rename an enumerated columns that conflicts
        }
        let excluded_columns = &self.excluded_columns.clone();
        for i in excluded_columns {
            self.remove_from_enumerated(&i);
        }
        if self.excluded_columns.is_empty() && self.enumerated_fields.is_empty() {
            self.column_star();
        }
        self
    }
/// preprocess the missing fields of the query,
/// such as mentioning the columns of the from_table
/// enumerate the columns of the involved tables
/// skipping those which are explicitly ignored
/// the query will then be built and ready to be executed
/// if no enumerated fields and no excluded columns
/// do a select all
preprocess the missing fields of the query,
such as mentioning the columns of the from_table
enumerate the columns of the involved tables
skipping those which are explicitly ignored
the query will then be built and ready to be executed
if no enumerated fields and no excluded columns
do a select all
preprocess the missing fields of the query such as mentioning the columns of the from_table enumerate the columns of the involved tables skipping those which are explicitly ignored the query will then be built and ready to be executed if no enumerated fields and no excluded columns do a select all
pub fn finalize(&mut self) -> &Self {
        let involved_models = self.get_involved_tables();
        if involved_models.len() > 1 {
            // enumerate all columns when there is a join
            if self.enumerate_all {
                self.enumerate_involved_tables_columns(&involved_models);
            }
            self.rename_conflicting_columns(); // rename an enumerated columns that conflicts
        }
        let excluded_columns = &self.excluded_columns.clone();
        for i in excluded_columns {
            self.remove_from_enumerated(&i);
        }
        if self.excluded_columns.is_empty() && self.enumerated_fields.is_empty() {
            self.column_star();
        }
        self
    }
pub fn finalize ( & mut self ) -> & Self { let involved_models = self . get_involved_tables ( ) ; if involved_models . len ( ) > 1 { // enumerate all columns when there is a join if self . enumerate_all { self . enumerate_involved_tables_columns ( & involved_models ) ; } self . rename_conflicting_columns ( ) ; // rename an enumerated columns that conflicts } let excluded_columns = & self . excluded_columns . clone ( ) ; for i in excluded_columns { self . remove_from_enumerated ( & i ) ; } if self . excluded_columns . is_empty ( ) && self . enumerated_fields . is_empty ( ) { self . column_star ( ) ; } self }
preprocess the missing fields of the query,
such as mentioning the columns of the from_table
enumerate the columns of the involved tables
skipping those which are explicitly ignored
the query will then be built and ready to be executed
if no enumerated fields and no excluded columns
do a select all
preprocess the missing fields of the query such as mentioning the columns of the from_table enumerate the columns of the involved tables skipping those which are explicitly ignored the query will then be built and ready to be executed if no enumerated fields and no excluded columns do a select all
&mut self
&mut self