io.prestosql.sql.tree.QualifiedName.getParts()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(12.9k)|赞(0)|评价(0)|浏览(116)

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

QualifiedName.getParts介绍

暂无

代码示例

代码示例来源:origin: prestosql/presto

public boolean hasSuffix(QualifiedName suffix)
{
  if (parts.size() < suffix.getParts().size()) {
    return false;
  }
  int start = parts.size() - suffix.getParts().size();
  return parts.subList(start, parts.size()).equals(suffix.getParts());
}

代码示例来源:origin: io.prestosql/presto-parser

public boolean hasSuffix(QualifiedName suffix)
{
  if (parts.size() < suffix.getParts().size()) {
    return false;
  }
  int start = parts.size() - suffix.getParts().size();
  return parts.subList(start, parts.size()).equals(suffix.getParts());
}

代码示例来源:origin: io.prestosql/presto-parser

public static String formatQualifiedName(QualifiedName name)
{
  return name.getParts().stream()
      .map(ExpressionFormatter::formatIdentifier)
      .collect(joining("."));
}

代码示例来源:origin: prestosql/presto

public static String formatQualifiedName(QualifiedName name)
{
  return name.getParts().stream()
      .map(ExpressionFormatter::formatIdentifier)
      .collect(joining("."));
}

代码示例来源:origin: prestosql/presto

@Override
protected Void visitTable(Table node, Integer indentLevel)
{
  String name = Joiner.on('.').join(node.getName().getParts());
  print(indentLevel, "Table[" + name + "]");
  return null;
}

代码示例来源:origin: io.prestosql/presto-parser

@Override
protected Void visitTable(Table node, Integer indentLevel)
{
  String name = Joiner.on('.').join(node.getName().getParts());
  print(indentLevel, "Table[" + name + "]");
  return null;
}

代码示例来源:origin: io.prestosql/presto-parser

@Override
protected Void visitFunctionCall(FunctionCall node, Integer indentLevel)
{
  String name = Joiner.on('.').join(node.getName().getParts());
  print(indentLevel, "FunctionCall[" + name + "]");
  super.visitFunctionCall(node, indentLevel + 1);
  return null;
}

代码示例来源:origin: prestosql/presto

@Override
protected Void visitFunctionCall(FunctionCall node, Integer indentLevel)
{
  String name = Joiner.on('.').join(node.getName().getParts());
  print(indentLevel, "FunctionCall[" + name + "]");
  super.visitFunctionCall(node, indentLevel + 1);
  return null;
}

代码示例来源:origin: io.prestosql/presto-main

public static QualifiedObjectName createQualifiedObjectName(Session session, Node node, QualifiedName name)
{
  requireNonNull(session, "session is null");
  requireNonNull(name, "name is null");
  if (name.getParts().size() > 3) {
    throw new PrestoException(SYNTAX_ERROR, format("Too many dots in table name: %s", name));
  }
  List<String> parts = Lists.reverse(name.getParts());
  String objectName = parts.get(0);
  String schemaName = (parts.size() > 1) ? parts.get(1) : session.getSchema().orElseThrow(() ->
      new SemanticException(SCHEMA_NOT_SPECIFIED, node, "Schema must be specified when session schema is not set"));
  String catalogName = (parts.size() > 2) ? parts.get(2) : session.getCatalog().orElseThrow(() ->
      new SemanticException(CATALOG_NOT_SPECIFIED, node, "Catalog must be specified when session catalog is not set"));
  return new QualifiedObjectName(catalogName, schemaName, objectName);
}

代码示例来源:origin: prestosql/presto

private static List<String> tryParseParts(Expression base, String fieldName)
{
  if (base instanceof Identifier) {
    return ImmutableList.of(((Identifier) base).getValue(), fieldName);
  }
  else if (base instanceof DereferenceExpression) {
    QualifiedName baseQualifiedName = getQualifiedName((DereferenceExpression) base);
    if (baseQualifiedName != null) {
      List<String> newList = new ArrayList<>(baseQualifiedName.getParts());
      newList.add(fieldName);
      return newList;
    }
  }
  return null;
}

代码示例来源:origin: prestosql/presto

public static QualifiedObjectName createQualifiedObjectName(Session session, Node node, QualifiedName name)
{
  requireNonNull(session, "session is null");
  requireNonNull(name, "name is null");
  if (name.getParts().size() > 3) {
    throw new PrestoException(SYNTAX_ERROR, format("Too many dots in table name: %s", name));
  }
  List<String> parts = Lists.reverse(name.getParts());
  String objectName = parts.get(0);
  String schemaName = (parts.size() > 1) ? parts.get(1) : session.getSchema().orElseThrow(() ->
      new SemanticException(SCHEMA_NOT_SPECIFIED, node, "Schema must be specified when session schema is not set"));
  String catalogName = (parts.size() > 2) ? parts.get(2) : session.getCatalog().orElseThrow(() ->
      new SemanticException(CATALOG_NOT_SPECIFIED, node, "Catalog must be specified when session catalog is not set"));
  return new QualifiedObjectName(catalogName, schemaName, objectName);
}

代码示例来源:origin: io.prestosql/presto-main

public static CatalogSchemaName createCatalogSchemaName(Session session, Node node, Optional<QualifiedName> schema)
{
  String catalogName = session.getCatalog().orElse(null);
  String schemaName = session.getSchema().orElse(null);
  if (schema.isPresent()) {
    List<String> parts = schema.get().getParts();
    if (parts.size() > 2) {
      throw new SemanticException(INVALID_SCHEMA_NAME, node, "Too many parts in schema name: %s", schema.get());
    }
    if (parts.size() == 2) {
      catalogName = parts.get(0);
    }
    schemaName = schema.get().getSuffix();
  }
  if (catalogName == null) {
    throw new SemanticException(CATALOG_NOT_SPECIFIED, node, "Catalog must be specified when session catalog is not set");
  }
  if (schemaName == null) {
    throw new SemanticException(SCHEMA_NOT_SPECIFIED, node, "Schema must be specified when session schema is not set");
  }
  return new CatalogSchemaName(catalogName, schemaName);
}

代码示例来源:origin: prestosql/presto

public static CatalogSchemaName createCatalogSchemaName(Session session, Node node, Optional<QualifiedName> schema)
{
  String catalogName = session.getCatalog().orElse(null);
  String schemaName = session.getSchema().orElse(null);
  if (schema.isPresent()) {
    List<String> parts = schema.get().getParts();
    if (parts.size() > 2) {
      throw new SemanticException(INVALID_SCHEMA_NAME, node, "Too many parts in schema name: %s", schema.get());
    }
    if (parts.size() == 2) {
      catalogName = parts.get(0);
    }
    schemaName = schema.get().getSuffix();
  }
  if (catalogName == null) {
    throw new SemanticException(CATALOG_NOT_SPECIFIED, node, "Catalog must be specified when session catalog is not set");
  }
  if (schemaName == null) {
    throw new SemanticException(SCHEMA_NOT_SPECIFIED, node, "Schema must be specified when session schema is not set");
  }
  return new CatalogSchemaName(catalogName, schemaName);
}

代码示例来源:origin: prestosql/presto

public static Expression from(QualifiedName name)
{
  Expression result = null;
  for (String part : name.getParts()) {
    if (result == null) {
      result = new Identifier(part);
    }
    else {
      result = new DereferenceExpression(result, new Identifier(part));
    }
  }
  return result;
}

代码示例来源:origin: io.prestosql/presto-parser

public static Expression from(QualifiedName name)
{
  Expression result = null;
  for (String part : name.getParts()) {
    if (result == null) {
      result = new Identifier(part);
    }
    else {
      result = new DereferenceExpression(result, new Identifier(part));
    }
  }
  return result;
}

代码示例来源:origin: io.prestosql/presto-main

@Override
  public ListenableFuture<?> execute(ResetSession statement, TransactionManager transactionManager, Metadata metadata, AccessControl accessControl, QueryStateMachine stateMachine, List<Expression> parameters)
  {
    List<String> parts = statement.getName().getParts();
    if (parts.size() > 2) {
      throw new SemanticException(INVALID_SESSION_PROPERTY, statement, "Invalid session property '%s'", statement.getName());
    }

    // validate the property name
    if (parts.size() == 1) {
      metadata.getSessionPropertyManager().getSystemSessionPropertyMetadata(parts.get(0))
          .orElseThrow(() -> new SemanticException(INVALID_SESSION_PROPERTY, statement, "Session property %s does not exist", statement.getName()));
    }
    else {
      ConnectorId connectorId = metadata.getCatalogHandle(stateMachine.getSession(), parts.get(0))
          .orElseThrow(() -> new SemanticException(MISSING_CATALOG, statement, "Catalog %s does not exist", parts.get(0)));
      metadata.getSessionPropertyManager().getConnectorSessionPropertyMetadata(connectorId, parts.get(1))
          .orElseThrow(() -> new SemanticException(INVALID_SESSION_PROPERTY, statement, "Session property %s does not exist", statement.getName()));
    }

    stateMachine.addResetSessionProperties(statement.getName().toString());

    return immediateFuture(null);
  }
}

代码示例来源:origin: prestosql/presto

@Override
  public ListenableFuture<?> execute(ResetSession statement, TransactionManager transactionManager, Metadata metadata, AccessControl accessControl, QueryStateMachine stateMachine, List<Expression> parameters)
  {
    List<String> parts = statement.getName().getParts();
    if (parts.size() > 2) {
      throw new SemanticException(INVALID_SESSION_PROPERTY, statement, "Invalid session property '%s'", statement.getName());
    }

    // validate the property name
    if (parts.size() == 1) {
      metadata.getSessionPropertyManager().getSystemSessionPropertyMetadata(parts.get(0))
          .orElseThrow(() -> new SemanticException(INVALID_SESSION_PROPERTY, statement, "Session property %s does not exist", statement.getName()));
    }
    else {
      ConnectorId connectorId = metadata.getCatalogHandle(stateMachine.getSession(), parts.get(0))
          .orElseThrow(() -> new SemanticException(MISSING_CATALOG, statement, "Catalog %s does not exist", parts.get(0)));
      metadata.getSessionPropertyManager().getConnectorSessionPropertyMetadata(connectorId, parts.get(1))
          .orElseThrow(() -> new SemanticException(INVALID_SESSION_PROPERTY, statement, "Session property %s does not exist", statement.getName()));
    }

    stateMachine.addResetSessionProperties(statement.getName().toString());

    return immediateFuture(null);
  }
}

代码示例来源:origin: prestosql/presto

@Test
public void testCreateTableAsSelectDifferentCatalog()
    throws Exception
{
  handle.execute("CREATE TABLE \"my_test_table2\" (column1 BIGINT, column2 DOUBLE)");
  SqlParser parser = new SqlParser();
  Query query = new Query(CATALOG, SCHEMA, ImmutableList.of(), "CREATE TABLE public.my_test_table2 AS SELECT 1 column1, 2E0 column2", ImmutableList.of(), null, null, ImmutableMap.of());
  QueryRewriter rewriter = new QueryRewriter(parser, URL, QualifiedName.of("other_catalog", "other_schema", "tmp_"), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), 1, new Duration(10, SECONDS));
  Query rewrittenQuery = rewriter.shadowQuery(query);
  assertEquals(rewrittenQuery.getPreQueries().size(), 1);
  CreateTableAsSelect createTableAs = (CreateTableAsSelect) parser.createStatement(rewrittenQuery.getPreQueries().get(0));
  assertEquals(createTableAs.getName().getParts().size(), 3);
  assertEquals(createTableAs.getName().getPrefix().get(), QualifiedName.of("other_catalog", "other_schema"));
  assertTrue(createTableAs.getName().getSuffix().startsWith("tmp_"));
  assertFalse(createTableAs.getName().getSuffix().contains("my_test_table"));
}

代码示例来源:origin: prestosql/presto

@Test
public void testCreateTableAsSelect()
    throws Exception
{
  handle.execute("CREATE TABLE \"my_test_table\" (column1 BIGINT, column2 DOUBLE)");
  SqlParser parser = new SqlParser();
  Query query = new Query(CATALOG, SCHEMA, ImmutableList.of(), "CREATE TABLE my_test_table AS SELECT 1 column1, CAST('2.0' AS DOUBLE) column2 LIMIT 1", ImmutableList.of(), null, null, ImmutableMap.of());
  QueryRewriter rewriter = new QueryRewriter(parser, URL, QualifiedName.of("tmp_"), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), 1, new Duration(10, SECONDS));
  Query rewrittenQuery = rewriter.shadowQuery(query);
  assertEquals(rewrittenQuery.getPreQueries().size(), 1);
  assertEquals(rewrittenQuery.getPostQueries().size(), 1);
  CreateTableAsSelect createTableAs = (CreateTableAsSelect) parser.createStatement(rewrittenQuery.getPreQueries().get(0));
  assertEquals(createTableAs.getName().getParts().size(), 1);
  assertTrue(createTableAs.getName().getSuffix().startsWith("tmp_"));
  assertFalse(createTableAs.getName().getSuffix().contains("my_test_table"));
  assertEquals(statementToQueryType(parser, rewrittenQuery.getQuery()), READ);
  Table table = new Table(createTableAs.getName());
  SingleColumn column1 = new SingleColumn(new FunctionCall(QualifiedName.of("checksum"), ImmutableList.of(new Identifier("COLUMN1"))));
  SingleColumn column2 = new SingleColumn(new FunctionCall(QualifiedName.of("checksum"), ImmutableList.of(new FunctionCall(QualifiedName.of("round"), ImmutableList.of(new Identifier("COLUMN2"), new LongLiteral("1"))))));
  Select select = new Select(false, ImmutableList.of(column1, column2));
  QuerySpecification querySpecification = new QuerySpecification(select, Optional.of(table), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty());
  assertEquals(parser.createStatement(rewrittenQuery.getQuery()), new io.prestosql.sql.tree.Query(Optional.empty(), querySpecification, Optional.empty(), Optional.empty()));
  assertEquals(parser.createStatement(rewrittenQuery.getPostQueries().get(0)), new DropTable(createTableAs.getName(), true));
}

代码示例来源:origin: prestosql/presto

assertEquals(createTable.getName().getParts().size(), 3);
assertEquals(createTable.getName().getPrefix().get(), QualifiedName.of("other_catalog", "other_schema"));
assertTrue(createTable.getName().getSuffix().startsWith("tmp_"));

相关文章