protected CompletableFuture<List<SchemaField>> metadata(RequestContext context, String query) { StringBuilder builder = new StringBuilder(); Query queryStatement = (Query) SqlUtil.parseSql(query); CompletableFuture<List<SchemaField>> f = new CompletableFuture<>(); try { new RakamSqlFormatter.Formatter(builder, qualifiedName -> queryExecutor.formatTableReference(context.project, qualifiedName, Optional.empty(), ImmutableMap.of()), escapeIdentifier) .process(queryStatement, 1); } catch (Exception e) { f.completeExceptionally(e); } QueryExecution execution = queryExecutor.executeRawQuery(context, builder.toString() + " limit 0", ZoneOffset.UTC, ImmutableMap.of()); execution.getResult().thenAccept(result -> { if (result.isFailed()) { f.completeExceptionally(new RakamException(result.getError().message, INTERNAL_SERVER_ERROR)); } else { f.complete(result.getMetadata()); } }); return f; }
public CompletableFuture<List<SchemaField>> metadata(RequestContext context, String query) { StringBuilder builder = new StringBuilder(); Query queryStatement; try { queryStatement = (Query) SqlUtil.parseSql(checkNotNull(query, "query is required")); } catch (Exception e) { throw new RakamException("Unable to parse query: " + e.getMessage(), BAD_REQUEST); } Map<String, String> map = new HashMap<>(); new RakamSqlFormatter.Formatter(builder, qualifiedName -> executor.formatTableReference(context.project, qualifiedName, Optional.empty(), map), escapeIdentifier) .process(queryStatement, 1); QueryExecution execution = executor .executeRawQuery(context, builder.toString() + " limit 0", map); CompletableFuture<List<SchemaField>> f = new CompletableFuture<>(); execution.getResult().thenAccept(result -> { if (result.isFailed()) { f.completeExceptionally(new RakamException(result.getError().message, HttpResponseStatus.INTERNAL_SERVER_ERROR)); } else { f.complete(result.getMetadata()); } }); return f; } }
public String buildQuery(RequestContext context, String query, Optional<QuerySampling> sample, String defaultSchema, Integer maxLimit, Map<MaterializedView, MaterializedViewExecution> materializedViews, Map<String, String> sessionParameters) { Query statement; Function<QualifiedName, String> tableNameMapper = tableNameMapper(context, materializedViews, sample, defaultSchema, sessionParameters); Statement queryStatement = SqlUtil.parseSql(query); if ((queryStatement instanceof Query)) { statement = (Query) queryStatement;
Query statement = (Query) SqlUtil.parseSql(materializedView.query);
Query statement = (Query) SqlUtil.parseSql(materializedView.query);
GARequest.ReportRequest reportRequest = new GARequest.ReportRequest(); Query statement = (Query) SqlUtil.parseSql(query); QueryBody queryBody = statement.getQueryBody(); if (queryBody instanceof QuerySpecification) {