Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions presto-analyzer/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,6 @@
<optional>true</optional>
</dependency>

<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
</dependency>

<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
/*
* 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 com.facebook.presto.spi.analyzer.QueryAnalysis;
import com.facebook.presto.spi.function.FunctionKind;

import java.util.Map;
import java.util.Optional;
import java.util.Set;

public class BuiltInQueryAnalysis
implements QueryAnalysis
{
private final Analysis analysis;

public BuiltInQueryAnalysis(Analysis analysis)
{
this.analysis = analysis;
}

public Analysis getAnalysis()
{
return analysis;
}

@Override
public String getUpdateType()
{
return analysis.getUpdateType();
}

@Override
public Optional<String> getExpandedQuery()
{
return analysis.getExpandedQuery();
}

@Override
public Map<FunctionKind, Set<String>> getInvokedFunctions()
{
return analysis.getInvokedFunctions();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@ private <C> void createQueryInternal(QueryId queryId, String slug, int retryCoun

DispatchQuery dispatchQuery = dispatchQueryFactory.createDispatchQuery(
session,
analyzerProvider,
query,
preparedQuery,
slug,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import com.facebook.presto.common.analyzer.PreparedQuery;
import com.facebook.presto.common.resourceGroups.QueryType;
import com.facebook.presto.spi.WarningCollector;
import com.facebook.presto.spi.analyzer.AnalyzerProvider;
import com.facebook.presto.spi.resourceGroups.ResourceGroupId;

import java.util.Optional;
Expand All @@ -31,6 +32,7 @@ public interface DispatchQueryFactory
* This interface API is defined to setting up all preparation works for query before it being executed.
*
* @param session the session
* @param analyzerProvider the analyzer provider
* @param query the query
* @param preparedQuery the prepared query
* @param slug the unique query slug for each {@code Query} object
Expand All @@ -43,6 +45,7 @@ public interface DispatchQueryFactory
*/
DispatchQuery createDispatchQuery(
Session session,
AnalyzerProvider analyzerProvider,
String query,
PreparedQuery preparedQuery,
String slug,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@
import com.facebook.presto.metadata.Metadata;
import com.facebook.presto.spi.PrestoException;
import com.facebook.presto.spi.WarningCollector;
import com.facebook.presto.spi.analyzer.AnalyzerProvider;
import com.facebook.presto.spi.resourceGroups.ResourceGroupId;
import com.facebook.presto.spi.security.AccessControl;
import com.facebook.presto.sql.analyzer.BuiltInQueryPreparer;
import com.facebook.presto.tracing.NoopTracerProvider;
import com.facebook.presto.tracing.QueryStateTracingListener;
import com.facebook.presto.transaction.TransactionManager;
Expand All @@ -43,7 +43,6 @@
import java.util.function.Consumer;

import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED;
import static com.google.common.base.Preconditions.checkState;
import static java.util.Objects.requireNonNull;

/**
Expand Down Expand Up @@ -118,6 +117,7 @@ public LocalDispatchQueryFactory(
* to the {@link ResourceGroupManager}. This is no-op for no disaggregated coordinator setup
*
* @param session the session
* @param analyzerProvider the analyzer provider
* @param query the query
* @param preparedQuery the prepared query
* @param slug the unique query slug for each {@code Query} object
Expand All @@ -131,6 +131,7 @@ public LocalDispatchQueryFactory(
@Override
public DispatchQuery createDispatchQuery(
Session session,
AnalyzerProvider analyzerProvider,
String query,
PreparedQuery preparedQuery,
String slug,
Expand Down Expand Up @@ -163,9 +164,7 @@ public DispatchQuery createDispatchQuery(
throw new PrestoException(NOT_SUPPORTED, "Unsupported statement type: " + preparedQuery.getStatementClass().getSimpleName());
}

//TODO: PreparedQuery should be passed all the way to analyzer
checkState(preparedQuery instanceof BuiltInQueryPreparer.BuiltInPreparedQuery, "Unsupported prepared query type: %s", preparedQuery.getClass().getSimpleName());
return queryExecutionFactory.createQueryExecution((BuiltInQueryPreparer.BuiltInPreparedQuery) preparedQuery, stateMachine, slug, retryCount, warningCollector, queryType);
return queryExecutionFactory.createQueryExecution(analyzerProvider, preparedQuery, stateMachine, slug, retryCount, warningCollector, queryType);
});

return new LocalDispatchQuery(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@
*/
package com.facebook.presto.execution;

import com.facebook.presto.common.analyzer.PreparedQuery;
import com.facebook.presto.common.resourceGroups.QueryType;
import com.facebook.presto.metadata.Metadata;
import com.facebook.presto.metadata.MetadataManager;
import com.facebook.presto.spi.WarningCollector;
import com.facebook.presto.spi.analyzer.AnalyzerProvider;
import com.facebook.presto.spi.security.AccessControl;
import com.facebook.presto.sql.analyzer.BuiltInQueryPreparer;
import com.facebook.presto.sql.tree.Expression;
Expand All @@ -31,6 +33,7 @@
import java.util.Optional;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import static java.util.Objects.requireNonNull;

public class DDLDefinitionExecution<T extends Statement>
Expand Down Expand Up @@ -82,14 +85,19 @@ public DDLDefinitionExecutionFactory(

@Override
public DDLDefinitionExecution<?> createQueryExecution(
BuiltInQueryPreparer.BuiltInPreparedQuery preparedQuery,
AnalyzerProvider analyzerProvider,
PreparedQuery preparedQuery,
QueryStateMachine stateMachine,
String slug,
int retryCount,
WarningCollector warningCollector,
Optional<QueryType> queryType)
{
return createDDLDefinitionExecution(preparedQuery.getStatement(), preparedQuery.getParameters(), stateMachine, slug, retryCount);
//TODO: PreparedQuery should be passed all the way to analyzer
checkState(preparedQuery instanceof BuiltInQueryPreparer.BuiltInPreparedQuery, "Unsupported prepared query type: %s", preparedQuery.getClass().getSimpleName());
BuiltInQueryPreparer.BuiltInPreparedQuery builtInQueryPreparer = (BuiltInQueryPreparer.BuiltInPreparedQuery) preparedQuery;

return createDDLDefinitionExecution(builtInQueryPreparer.getStatement(), builtInQueryPreparer.getParameters(), stateMachine, slug, retryCount);
}

private <T extends Statement> DDLDefinitionExecution<T> createDDLDefinitionExecution(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,16 @@
*/
package com.facebook.presto.execution;

import com.facebook.presto.common.analyzer.PreparedQuery;
import com.facebook.presto.common.resourceGroups.QueryType;
import com.facebook.presto.common.type.Type;
import com.facebook.presto.execution.QueryTracker.TrackedQuery;
import com.facebook.presto.execution.StateMachine.StateChangeListener;
import com.facebook.presto.memory.VersionedMemoryPoolId;
import com.facebook.presto.server.BasicQueryInfo;
import com.facebook.presto.spi.WarningCollector;
import com.facebook.presto.spi.analyzer.AnalyzerProvider;
import com.facebook.presto.spi.resourceGroups.ResourceGroupQueryLimits;
import com.facebook.presto.sql.analyzer.BuiltInQueryPreparer.BuiltInPreparedQuery;
import com.facebook.presto.sql.planner.Plan;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
Expand Down Expand Up @@ -103,7 +104,8 @@ public interface QueryExecution
interface QueryExecutionFactory<T extends QueryExecution>
{
T createQueryExecution(
BuiltInPreparedQuery preparedQuery,
AnalyzerProvider analyzerProvider,
PreparedQuery preparedQuery,
QueryStateMachine stateMachine,
String slug,
int retryCount,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@
*/
package com.facebook.presto.execution;

import com.facebook.presto.common.analyzer.PreparedQuery;
import com.facebook.presto.common.resourceGroups.QueryType;
import com.facebook.presto.metadata.Metadata;
import com.facebook.presto.metadata.MetadataManager;
import com.facebook.presto.spi.WarningCollector;
import com.facebook.presto.spi.analyzer.AnalyzerProvider;
import com.facebook.presto.spi.security.AccessControl;
import com.facebook.presto.sql.analyzer.BuiltInQueryPreparer;
import com.facebook.presto.sql.tree.Expression;
Expand All @@ -31,6 +33,7 @@
import java.util.Optional;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import static java.util.Objects.requireNonNull;

public class SessionDefinitionExecution<T extends Statement>
Expand Down Expand Up @@ -82,14 +85,18 @@ public SessionDefinitionExecutionFactory(

@Override
public SessionDefinitionExecution<?> createQueryExecution(
BuiltInQueryPreparer.BuiltInPreparedQuery preparedQuery,
AnalyzerProvider analyzerProvider,
PreparedQuery preparedQuery,
QueryStateMachine stateMachine,
String slug,
int retryCount,
WarningCollector warningCollector,
Optional<QueryType> queryType)
{
return createSessionDefinitionExecution(preparedQuery.getStatement(), preparedQuery.getParameters(), stateMachine, slug, retryCount);
//TODO: PreparedQuery should be passed all the way to analyzer
checkState(preparedQuery instanceof BuiltInQueryPreparer.BuiltInPreparedQuery, "Unsupported prepared query type: %s", preparedQuery.getClass().getSimpleName());
BuiltInQueryPreparer.BuiltInPreparedQuery builtInQueryPreparer = (BuiltInQueryPreparer.BuiltInPreparedQuery) preparedQuery;
return createSessionDefinitionExecution(builtInQueryPreparer.getStatement(), builtInQueryPreparer.getParameters(), stateMachine, slug, retryCount);
}

private <T extends Statement> SessionDefinitionExecution<T> createSessionDefinitionExecution(
Expand Down
Loading