@Override protected R visitValues(Values node, C context) { for (Expression row : node.getRows()) { process(row, context); } return null; }
public static Values values(Row... row) { return new Values(ImmutableList.copyOf(row)); }
@Override protected Void visitValues(Values node, Integer indent) { builder.append(" VALUES "); boolean first = true; for (Expression row : node.getRows()) { builder.append("\n") .append(indentString(indent)) .append(first ? " " : ", "); builder.append(formatExpression(row, parameters)); first = false; } builder.append('\n'); return null; }
@Override public Node visitInlineTable(SqlBaseParser.InlineTableContext context) { return new Values(getLocation(context), visit(context.expression(), Expression.class)); }
@Override protected Scope visitValues(Values node, Optional<Scope> scope) checkState(node.getRows().size() >= 1); List<List<Type>> rowTypes = node.getRows().stream() .map(row -> analyzeExpression(row, createScope(scope)).getType(row)) .map(type -> { for (Expression row : node.getRows()) { if (row instanceof Row) { List<Expression> items = ((Row) row).getItems();
@Override protected Node visitShowCatalogs(ShowCatalogs node, Void context) { List<Expression> rows = listCatalogs(session, metadata, accessControl).keySet().stream() .map(name -> row(new StringLiteral(name))) .collect(toList()); Optional<Expression> predicate = Optional.empty(); Optional<String> likePattern = node.getLikePattern(); if (likePattern.isPresent()) { predicate = Optional.of(new LikePredicate(identifier("Catalog"), new StringLiteral(likePattern.get()), Optional.empty())); } return simpleQuery( selectList(new AllColumns()), aliased(new Values(rows), "catalogs", ImmutableList.of("Catalog")), predicate, Optional.of(ordering(ascending("Catalog")))); }
@Override protected RelationPlan visitValues(Values node, Void context) { Scope scope = analysis.getScope(node); ImmutableList.Builder<Symbol> outputSymbolsBuilder = ImmutableList.builder(); for (Field field : scope.getRelationType().getVisibleFields()) { Symbol symbol = symbolAllocator.newSymbol(field); outputSymbolsBuilder.add(symbol); } ImmutableList.Builder<List<Expression>> rows = ImmutableList.builder(); for (Expression row : node.getRows()) { ImmutableList.Builder<Expression> values = ImmutableList.builder(); if (row instanceof Row) { for (Expression item : ((Row) row).getItems()) { Expression expression = Coercer.addCoercions(item, analysis); values.add(ExpressionTreeRewriter.rewriteWith(new ParameterRewriter(analysis.getParameters(), analysis), expression)); } } else { Expression expression = Coercer.addCoercions(row, analysis); values.add(ExpressionTreeRewriter.rewriteWith(new ParameterRewriter(analysis.getParameters(), analysis), expression)); } rows.add(values.build()); } ValuesNode valuesNode = new ValuesNode(idAllocator.getNextId(), outputSymbolsBuilder.build(), rows.build()); return new RelationPlan(valuesNode, scope, outputSymbolsBuilder.build()); }
.map(entry -> aliasedName(entry.getKey(), entry.getValue())) .collect(toImmutableList())), aliased(new Values(rows.build()), "functions", ImmutableList.copyOf(columns.keySet())), ordering( new SortItem(
@Override protected Void visitValues(Values node, Integer indent) { builder.append(" VALUES "); boolean first = true; for (Expression row : node.getRows()) { builder.append("\n") .append(indentString(indent)) .append(first ? " " : ", "); builder.append(formatExpression(row, tableNameMapper, columnNameMapper, queryWithTables, escapeIdentifier)); first = false; } builder.append('\n'); return null; }
aliasedName("description", "Description")), aliased( new Values(rows.build()), "session", ImmutableList.of("name", "value", "default", "type", "description", "include")),
@Override protected R visitValues(Values node, C context) { for (Expression row : node.getRows()) { process(row, context); } return null; }
query(new Values(ImmutableList.of(new LongLiteral("1")))), Optional.of(ImmutableList.of(identifier("x"))))))), new Table(QualifiedName.of("t")),
@Override protected R visitValues(Values node, C context) { for (Expression row : node.getRows()) { process(row, context); } return null; }
private Node rewriteShowStats(ShowStats node, Table table, Constraint<ColumnHandle> constraint) { TableHandle tableHandle = getTableHandle(node, table.getName()); TableStatistics tableStatistics = metadata.getTableStatistics(session, tableHandle, constraint); List<String> statsColumnNames = buildColumnsNames(); List<SelectItem> selectItems = buildSelectItems(statsColumnNames); TableMetadata tableMetadata = metadata.getTableMetadata(session, tableHandle); Map<String, ColumnHandle> columnHandles = metadata.getColumnHandles(session, tableHandle); List<Expression> resultRows = buildStatisticsRows(tableMetadata, columnHandles, tableStatistics); return simpleQuery(selectAll(selectItems), aliased(new Values(resultRows), "table_stats_for_" + table.getName(), statsColumnNames)); }
@Override protected Void visitValues(Values node, Integer indent) { builder.append(" VALUES "); boolean first = true; for (Expression row : node.getRows()) { builder.append("\n") .append(indentString(indent)) .append(first ? " " : ", "); builder.append(formatExpression(row, parameters)); first = false; } builder.append('\n'); return null; }
new Values(ImmutableList.of(new LongLiteral("1"))), Optional.empty(), Optional.empty()));
@Override protected Void visitValues(Values node, Integer indent) { builder.append(" VALUES "); boolean first = true; for (Expression row : node.getRows()) { builder.append("\n") .append(indentString(indent)) .append(first ? " " : ", "); builder.append(formatExpression(row)); first = false; } builder.append('\n'); return null; }
public static Values values(Row... row) { return new Values(ImmutableList.copyOf(row)); }
@Override protected Void visitValues(Values node, Integer indent) { builder.append(" VALUES "); boolean first = true; for (Expression row : node.getRows()) { builder.append("\n") .append(indentString(indent)) .append(first ? " " : ", "); builder.append(formatExpression(row)); first = false; } builder.append('\n'); return null; }
public static Values values(Row... row) { return new Values(ImmutableList.copyOf(row)); }