@Override
protected RelationType visitQuery(Query node, AnalysisContext parentContext)
{
AnalysisContext context = new AnalysisContext(parentContext);
if (node.getApproximate().isPresent()) {
if (!experimentalSyntaxEnabled) {
throw new SemanticException(NOT_SUPPORTED, node, "approximate queries are not enabled");
}
context.setApproximate(true);
}
analyzeWith(node, context);
RelationType descriptor = process(node.getQueryBody(), context);
analyzeOrderBy(node, descriptor, context);
analysis.setOutputDescriptor(node, descriptor);
analysis.setOutputExpressions(node, descriptorToFields(descriptor));
analysis.setStatement(node);
return descriptor;
}