本文整理了Java中com.facebook.presto.execution.QueryStateMachine.begin
方法的一些代码示例,展示了QueryStateMachine.begin
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryStateMachine.begin
方法的具体详情如下:
包路径:com.facebook.presto.execution.QueryStateMachine
类名称:QueryStateMachine
方法名:begin
[英]Created QueryStateMachines must be transitioned to terminal states to clean up resources.
[中]创建的QueryState机器必须转换为终端状态以清理资源。
代码示例来源:origin: prestodb/presto
private QueryStateMachine createQueryStateMachine(String query)
{
return QueryStateMachine.begin(
query,
TEST_SESSION,
URI.create("fake://uri"),
new ResourceGroupId("test"),
false,
transactionManager,
accessControl,
executor,
metadata,
WarningCollector.NOOP);
}
代码示例来源:origin: prestodb/presto
private <T extends Statement> DataDefinitionExecution<T> createDataDefinitionExecution(
String query,
Session session,
ResourceGroupId resourceGroup,
T statement,
List<Expression> parameters,
WarningCollector warningCollector)
{
@SuppressWarnings("unchecked")
DataDefinitionTask<T> task = (DataDefinitionTask<T>) tasks.get(statement.getClass());
checkArgument(task != null, "no task for statement: %s", statement.getClass().getSimpleName());
QueryStateMachine stateMachine = QueryStateMachine.begin(
query,
session,
locationFactory.createQueryLocation(session.getQueryId()),
resourceGroup,
task.isTransactionControl(),
transactionManager,
accessControl,
executor,
metadata,
warningCollector);
stateMachine.setUpdateType(task.getName());
return new DataDefinitionExecution<>(task, statement, transactionManager, metadata, accessControl, stateMachine, parameters);
}
}
代码示例来源:origin: prestodb/presto
private QueryStateMachine createQueryStateMachine(String query, Session session, TransactionManager transactionManager)
{
return QueryStateMachine.begin(
query,
session,
URI.create("fake://uri"),
new ResourceGroupId("test"),
true,
transactionManager,
new AccessControlManager(transactionManager),
executor,
metadata,
WarningCollector.NOOP);
}
代码示例来源:origin: prestodb/presto
private QueryStateMachine createQueryStateMachine(String query, Session session, TransactionManager transactionManager)
{
return QueryStateMachine.begin(
query,
session,
URI.create("fake://uri"),
new ResourceGroupId("test"),
true,
transactionManager,
new AccessControlManager(transactionManager),
executor,
metadata,
WarningCollector.NOOP);
}
代码示例来源:origin: prestodb/presto
private QueryStateMachine createQueryStateMachine(String query, Session session, TransactionManager transactionManager)
{
return QueryStateMachine.begin(
query,
session,
URI.create("fake://uri"),
new ResourceGroupId("test"),
true,
transactionManager,
new AllowAllAccessControl(),
executor,
metadata,
WarningCollector.NOOP);
}
代码示例来源:origin: prestodb/presto
requireNonNull(session, "session is null");
requireNonNull(self, "self is null");
this.stateMachine = QueryStateMachine.begin(
query,
session,
代码示例来源:origin: prestodb/presto
private void testSetSessionWithParameters(String property, Expression expression, String expectedValue, List<Expression> parameters)
{
QualifiedName qualifiedPropName = QualifiedName.of(CATALOG_NAME, property);
QueryStateMachine stateMachine = QueryStateMachine.begin(
format("set %s = 'old_value'", qualifiedPropName),
TEST_SESSION,
URI.create("fake://uri"),
new ResourceGroupId("test"),
false,
transactionManager,
accessControl,
executor,
metadata,
WarningCollector.NOOP);
getFutureValue(new SetSessionTask().execute(new SetSession(qualifiedPropName, expression), transactionManager, metadata, accessControl, stateMachine, parameters));
Map<String, String> sessionProperties = stateMachine.getSetSessionProperties();
assertEquals(sessionProperties, ImmutableMap.of(qualifiedPropName.toString(), expectedValue));
}
}
代码示例来源:origin: prestodb/presto
.build();
QueryStateMachine stateMachine = QueryStateMachine.begin(
"reset foo",
session,
代码示例来源:origin: prestodb/presto
private Set<String> executeDeallocate(String statementName, String sqlString, Session session)
{
TransactionManager transactionManager = createTestTransactionManager();
AccessControl accessControl = new AccessControlManager(transactionManager);
QueryStateMachine stateMachine = QueryStateMachine.begin(
sqlString,
session,
URI.create("fake://uri"),
new ResourceGroupId("test"),
false,
transactionManager,
accessControl,
executor,
metadata,
WarningCollector.NOOP);
Deallocate deallocate = new Deallocate(new Identifier(statementName));
new DeallocateTask().execute(deallocate, transactionManager, metadata, new AllowAllAccessControl(), stateMachine, emptyList());
return stateMachine.getDeallocatedPreparedStatements();
}
}
代码示例来源:origin: prestodb/presto
private Map<String, String> executePrepare(String statementName, Statement statement, String sqlString, Session session)
{
TransactionManager transactionManager = createTestTransactionManager();
QueryStateMachine stateMachine = QueryStateMachine.begin(
sqlString,
session,
URI.create("fake://uri"),
new ResourceGroupId("test"),
false,
transactionManager,
new AccessControlManager(transactionManager),
executor,
metadata,
WarningCollector.NOOP);
Prepare prepare = new Prepare(identifier(statementName), statement);
new PrepareTask(new SqlParser()).execute(prepare, transactionManager, metadata, new AllowAllAccessControl(), stateMachine, emptyList());
return stateMachine.getAddedPreparedStatements();
}
}
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
@Override
public DataDefinitionExecution<?> createQueryExecution(
QueryId queryId,
String query,
Session session,
Statement statement)
{
URI self = locationFactory.createQueryLocation(queryId);
DataDefinitionTask<Statement> task = getTask(statement);
checkArgument(task != null, "no task for statement: %s", statement.getClass().getSimpleName());
QueryStateMachine stateMachine = QueryStateMachine.begin(queryId, query, session, self, task.isTransactionControl(), transactionManager, executor);
stateMachine.setUpdateType(task.getName());
return new DataDefinitionExecution<>(task, statement, transactionManager, metadata, accessControl, stateMachine);
}
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
private QueryStateMachine createQueryStateMachine()
{
TransactionManager transactionManager = createTestTransactionManager();
QueryStateMachine stateMachine = QueryStateMachine.begin(QUERY_ID, QUERY, TEST_SESSION, LOCATION, false, transactionManager, executor);
stateMachine.setInputs(INPUTS);
stateMachine.setOutputFieldNames(OUTPUT_FIELD_NAMES);
stateMachine.setUpdateType(UPDATE_TYPE);
stateMachine.setMemoryPool(MEMORY_POOL);
for (Entry<String, String> entry : SET_SESSION_PROPERTIES.entrySet()) {
stateMachine.addSetSessionProperties(entry.getKey(), entry.getValue());
}
RESET_SESSION_PROPERTIES.forEach(stateMachine::addResetSessionProperties);
return stateMachine;
}
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
private void testSetSession(Expression expression, String expectedValue)
throws Exception
{
TransactionManager transactionManager = createTestTransactionManager();
QueryStateMachine stateMachine = QueryStateMachine.begin(new QueryId("query"), "set foo.bar = 'baz'", TEST_SESSION, URI.create("fake://uri"), false, transactionManager, executor);
new SetSessionTask().execute(new SetSession(QualifiedName.of("foo", "bar"), expression), transactionManager, metadata, new AllowAllAccessControl(), stateMachine).join();
Map<String, String> sessionProperties = stateMachine.getSetSessionProperties();
assertEquals(sessionProperties, ImmutableMap.of("foo.bar", expectedValue));
}
}
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
@Test
public void test()
throws Exception
{
Session session = TEST_SESSION.withSystemProperty("foo", "bar").withCatalogProperty("catalog", "baz", "blah");
TransactionManager transactionManager = createTestTransactionManager();
QueryStateMachine stateMachine = QueryStateMachine.begin(new QueryId("query"), "reset foo", session, URI.create("fake://uri"), false, transactionManager, executor);
new ResetSessionTask().execute(new ResetSession(QualifiedName.of("catalog", "baz")), transactionManager, metadata, new AllowAllAccessControl(), stateMachine).join();
Set<String> sessionProperties = stateMachine.getResetSessionProperties();
assertEquals(sessionProperties, ImmutableSet.of("catalog.baz"));
}
}
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
@Test
public void testCommit()
throws Exception
{
TransactionManager transactionManager = createTestTransactionManager();
Session session = sessionBuilder()
.setTransactionId(transactionManager.beginTransaction(false))
.build();
QueryStateMachine stateMachine = QueryStateMachine.begin(new QueryId("query"), "COMMIT", session, URI.create("fake://uri"), true, transactionManager, executor);
assertTrue(stateMachine.getSession().getTransactionId().isPresent());
assertEquals(transactionManager.getAllTransactionInfos().size(), 1);
new CommitTask().execute(new Commit(), transactionManager, metadata, new AllowAllAccessControl(), stateMachine).join();
assertTrue(stateMachine.getQueryInfoWithoutDetails().isClearTransactionId());
assertFalse(stateMachine.getQueryInfoWithoutDetails().getStartedTransactionId().isPresent());
assertTrue(transactionManager.getAllTransactionInfos().isEmpty());
}
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
@Test
public void testUnknownTransactionRollback()
throws Exception
{
TransactionManager transactionManager = createTestTransactionManager();
Session session = sessionBuilder()
.setTransactionId(TransactionId.create()) // Use a random transaction ID that is unknown to the system
.build();
QueryStateMachine stateMachine = QueryStateMachine.begin(new QueryId("query"), "ROLLBACK", session, URI.create("fake://uri"), true, transactionManager, executor);
new RollbackTask().execute(new Rollback(), transactionManager, metadata, new AllowAllAccessControl(), stateMachine).join();
assertTrue(stateMachine.getQueryInfoWithoutDetails().isClearTransactionId()); // Still issue clear signal
assertFalse(stateMachine.getQueryInfoWithoutDetails().getStartedTransactionId().isPresent());
assertTrue(transactionManager.getAllTransactionInfos().isEmpty());
}
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
@Test
public void testRollback()
throws Exception
{
TransactionManager transactionManager = createTestTransactionManager();
Session session = sessionBuilder()
.setTransactionId(transactionManager.beginTransaction(false))
.build();
QueryStateMachine stateMachine = QueryStateMachine.begin(new QueryId("query"), "ROLLBACK", session, URI.create("fake://uri"), true, transactionManager, executor);
assertTrue(stateMachine.getSession().getTransactionId().isPresent());
assertEquals(transactionManager.getAllTransactionInfos().size(), 1);
new RollbackTask().execute(new Rollback(), transactionManager, metadata, new AllowAllAccessControl(), stateMachine).join();
assertTrue(stateMachine.getQueryInfoWithoutDetails().isClearTransactionId());
assertFalse(stateMachine.getQueryInfoWithoutDetails().getStartedTransactionId().isPresent());
assertTrue(transactionManager.getAllTransactionInfos().isEmpty());
}
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
@Test
public void testStartTransaction()
throws Exception
{
Session session = sessionBuilder()
.setClientTransactionSupport()
.build();
TransactionManager transactionManager = createTestTransactionManager();
QueryStateMachine stateMachine = QueryStateMachine.begin(new QueryId("query"), "START TRANSACTION", session, URI.create("fake://uri"), true, transactionManager, executor);
assertFalse(stateMachine.getSession().getTransactionId().isPresent());
new StartTransactionTask().execute(new StartTransaction(ImmutableList.of()), transactionManager, metadata, new AllowAllAccessControl(), stateMachine).join();
assertFalse(stateMachine.getQueryInfoWithoutDetails().isClearTransactionId());
assertTrue(stateMachine.getQueryInfoWithoutDetails().getStartedTransactionId().isPresent());
assertEquals(transactionManager.getAllTransactionInfos().size(), 1);
TransactionInfo transactionInfo = transactionManager.getTransactionInfo(stateMachine.getQueryInfoWithoutDetails().getStartedTransactionId().get());
assertFalse(transactionInfo.isAutoCommitContext());
}
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
@Test
public void testNoTransactionRollback()
throws Exception
{
TransactionManager transactionManager = createTestTransactionManager();
Session session = sessionBuilder()
.build();
QueryStateMachine stateMachine = QueryStateMachine.begin(new QueryId("query"), "ROLLBACK", session, URI.create("fake://uri"), true, transactionManager, executor);
try {
try {
new RollbackTask().execute(new Rollback(), transactionManager, metadata, new AllowAllAccessControl(), stateMachine).join();
fail();
}
catch (CompletionException e) {
throw Throwables.propagate(e.getCause());
}
}
catch (PrestoException e) {
assertEquals(e.getErrorCode(), NOT_IN_TRANSACTION.toErrorCode());
}
assertFalse(stateMachine.getQueryInfoWithoutDetails().isClearTransactionId());
assertFalse(stateMachine.getQueryInfoWithoutDetails().getStartedTransactionId().isPresent());
assertTrue(transactionManager.getAllTransactionInfos().isEmpty());
}
代码示例来源:origin: uk.co.nichesolutions.presto/presto-main
@Test
public void testStartTransactionExplicitModes()
throws Exception
{
Session session = sessionBuilder()
.setClientTransactionSupport()
.build();
TransactionManager transactionManager = createTestTransactionManager();
QueryStateMachine stateMachine = QueryStateMachine.begin(new QueryId("query"), "START TRANSACTION", session, URI.create("fake://uri"), true, transactionManager, executor);
assertFalse(stateMachine.getSession().getTransactionId().isPresent());
new StartTransactionTask().execute(new StartTransaction(ImmutableList.of(new Isolation(Isolation.Level.SERIALIZABLE), new TransactionAccessMode(true))), transactionManager, metadata, new AllowAllAccessControl(), stateMachine).join();
assertFalse(stateMachine.getQueryInfoWithoutDetails().isClearTransactionId());
assertTrue(stateMachine.getQueryInfoWithoutDetails().getStartedTransactionId().isPresent());
assertEquals(transactionManager.getAllTransactionInfos().size(), 1);
TransactionInfo transactionInfo = transactionManager.getTransactionInfo(stateMachine.getQueryInfoWithoutDetails().getStartedTransactionId().get());
assertEquals(transactionInfo.getIsolationLevel(), IsolationLevel.SERIALIZABLE);
assertTrue(transactionInfo.isReadOnly());
assertFalse(transactionInfo.isAutoCommitContext());
}
内容来源于网络,如有侵权,请联系作者删除!