Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.facebook.presto.sql.analyzer;
import static com.facebook.presto.sql.analyzer.SemanticErrorCode.CANNOT_HAVE_AGGREGATIONS_OR_WINDOWS;
import static com.google.common.base.Preconditions.checkNotNull;
public class Analyzer
    private final Metadata metadata;
    private final SqlParser sqlParser;
    private final Session session;
    private final Optional<QueryExplainerqueryExplainer;
    private final boolean experimentalSyntaxEnabled;
    public Analyzer(Session sessionMetadata metadataSqlParser sqlParserOptional<QueryExplainerqueryExplainerboolean experimentalSyntaxEnabled)
    {
        this. = checkNotNull(session"session is null");
        this. = checkNotNull(metadata"metadata is null");
        this. = checkNotNull(sqlParser"sqlParser is null");
        this. = checkNotNull(queryExplainer"query explainer is null");
        this. = experimentalSyntaxEnabled;
    }
    public Analysis analyze(Statement statement)
    {
        Analysis analysis = new Analysis();
        TupleDescriptor outputDescriptor = analyzer.process(statementnew AnalysisContext());
        analysis.setOutputDescriptor(outputDescriptor);
        return analysis;
    }
    static void verifyNoAggregatesOrWindowFunctions(Metadata metadataExpression predicateString clause)
    {
        AggregateExtractor extractor = new AggregateExtractor(metadata);
        extractor.process(predicatenull);
        WindowFunctionExtractor windowExtractor = new WindowFunctionExtractor();
        windowExtractor.process(predicatenull);
        List<FunctionCallfound = ImmutableList.copyOf(Iterables.concat(extractor.getAggregates(), windowExtractor.getWindowFunctions()));
        if (!found.isEmpty()) {
            throw new SemanticException(predicate"%s clause cannot contain aggregations or window functions: %s"clausefound);
        }
    }
New to GrepCode? Check out our FAQ X