本文整理了Java中io.prestosql.sql.tree.QualifiedName.getParts
方法的一些代码示例,展示了QualifiedName.getParts
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QualifiedName.getParts
方法的具体详情如下:
包路径:io.prestosql.sql.tree.QualifiedName
类名称: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_"));
内容来源于网络,如有侵权,请联系作者删除!