com.facebook.presto.execution.QueryStateMachine.begin()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(14.3k)|赞(0)|评价(0)|浏览(92)

本文整理了Java中com.facebook.presto.execution.QueryStateMachine.begin方法的一些代码示例,展示了QueryStateMachine.begin的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryStateMachine.begin方法的具体详情如下:
包路径:com.facebook.presto.execution.QueryStateMachine
类名称:QueryStateMachine
方法名:begin

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());
}

相关文章

微信公众号

最新文章

更多