private static function getFlagsSelect($statement, $flags)
    {
        $flags['querytype'] = 'SELECT';
        $flags['is_select'] = true;

        if (! empty($statement->from)) {
            $flags['select_from'] = true;
        }

        if ($statement->options->has('DISTINCT')) {
            $flags['distinct'] = true;
        }

        if (! empty($statement->group) || ! empty($statement->having)) {
            $flags['is_group'] = true;
        }

        if (! empty($statement->into)
            && ($statement->into->type === 'OUTFILE')
        ) {
            $flags['is_export'] = true;
        }

        $expressions = $statement->expr;
        if (! empty($statement->join)) {
            foreach ($statement->join as $join) {
                $expressions[] = $join->expr;
            }
        }

        foreach ($expressions as $expr) {
            if (! empty($expr->function)) {
                if ($expr->function === 'COUNT') {
                    $flags['is_count'] = true;
                } elseif (in_array($expr->function, static::$FUNCTIONS)) {
                    $flags['is_func'] = true;
                }
            }
            if (! empty($expr->subquery)) {
                $flags['is_subquery'] = true;
            }
        }

        if (! empty($statement->procedure)
            && ($statement->procedure->name === 'ANALYSE')
        ) {
            $flags['is_analyse'] = true;
        }

        if (! empty($statement->group)) {
            $flags['group'] = true;
        }

        if (! empty($statement->having)) {
            $flags['having'] = true;
        }

        if (! empty($statement->union)) {
            $flags['union'] = true;
        }

        if (! empty($statement->join)) {
            $flags['join'] = true;
        }

        return $flags;
    }
private static function getFlagsSelect($statement, $flags)
    {
        $flags['querytype'] = 'SELECT';
        $flags['is_select'] = true;

        if (! empty($statement->from)) {
            $flags['select_from'] = true;
        }

        if ($statement->options->has('DISTINCT')) {
            $flags['distinct'] = true;
        }

        if (! empty($statement->group) || ! empty($statement->having)) {
            $flags['is_group'] = true;
        }

        if (! empty($statement->into)
            && ($statement->into->type === 'OUTFILE')
        ) {
            $flags['is_export'] = true;
        }

        $expressions = $statement->expr;
        if (! empty($statement->join)) {
            foreach ($statement->join as $join) {
                $expressions[] = $join->expr;
            }
        }

        foreach ($expressions as $expr) {
            if (! empty($expr->function)) {
                if ($expr->function === 'COUNT') {
                    $flags['is_count'] = true;
                } elseif (in_array($expr->function, static::$FUNCTIONS)) {
                    $flags['is_func'] = true;
                }
            }
            if (! empty($expr->subquery)) {
                $flags['is_subquery'] = true;
            }
        }

        if (! empty($statement->procedure)
            && ($statement->procedure->name === 'ANALYSE')
        ) {
            $flags['is_analyse'] = true;
        }

        if (! empty($statement->group)) {
            $flags['group'] = true;
        }

        if (! empty($statement->having)) {
            $flags['having'] = true;
        }

        if (! empty($statement->union)) {
            $flags['union'] = true;
        }

        if (! empty($statement->join)) {
            $flags['join'] = true;
        }

        return $flags;
    }
private static function getFlagsSelect ( $ statement , $ flags ) { $ flags [ 'querytype' ] = 'SELECT' ; $ flags [ 'is_select' ] = true ; if ( ! empty ( $ statement -> from ) ) { $ flags [ 'select_from' ] = true ; } if ( $ statement -> options -> has ( 'DISTINCT' ) ) { $ flags [ 'distinct' ] = true ; } if ( ! empty ( $ statement -> group ) || ! empty ( $ statement -> having ) ) { $ flags [ 'is_group' ] = true ; } if ( ! empty ( $ statement -> into ) && ( $ statement -> into -> type === 'OUTFILE' ) ) { $ flags [ 'is_export' ] = true ; } $ expressions = $ statement -> expr ; if ( ! empty ( $ statement -> join ) ) { foreach ( $ statement -> join as $ join ) { $ expressions [ ] = $ join -> expr ; } } foreach ( $ expressions as $ expr ) { if ( ! empty ( $ expr -> function ) ) { if ( $ expr -> function === 'COUNT' ) { $ flags [ 'is_count' ] = true ; } elseif ( in_array ( $ expr -> function , static :: $ FUNCTIONS ) ) { $ flags [ 'is_func' ] = true ; } } if ( ! empty ( $ expr -> subquery ) ) { $ flags [ 'is_subquery' ] = true ; } } if ( ! empty ( $ statement -> procedure ) && ( $ statement -> procedure -> name === 'ANALYSE' ) ) { $ flags [ 'is_analyse' ] = true ; } if ( ! empty ( $ statement -> group ) ) { $ flags [ 'group' ] = true ; } if ( ! empty ( $ statement -> having ) ) { $ flags [ 'having' ] = true ; } if ( ! empty ( $ statement -> union ) ) { $ flags [ 'union' ] = true ; } if ( ! empty ( $ statement -> join ) ) { $ flags [ 'join' ] = true ; } return $ flags ; }
Gets an array with flags select statement has.

@param SelectStatement $statement the statement to be processed
@param array           $flags     flags set so far

@return array
Gets an array with flags select statement has .