if(query.isHasAgg() && !query.isTimeSeries()) { recordMapper = (RecordMapper<E>) new AggreagteRecordMapper(query, jdbcEntityDefinition); }else{
if(query.isHasAgg() && !query.isTimeSeries()) { recordMapper = (RecordMapper<E>) new AggreagteRecordMapper(query, jdbcEntityDefinition); }else{
@Override @SuppressWarnings("unchecked") public <E extends Object> QueryResult<E> query(CompiledQuery query, EntityDefinition entityDefinition) throws IOException { QueryResult<E> result = new QueryResult<E>(); try { JdbcEntityDefinition jdbcEntityDefinition = JdbcEntityDefinitionManager.getJdbcEntityDefinition(entityDefinition); JdbcEntityReader reader = new JdbcEntityReaderImpl(jdbcEntityDefinition); List<E> entities = reader.query(query); result.setData(entities); if(entities!=null) { result.setSize(entities.size()); }else{ result.setSize(0); } if(query.isHasAgg()){ result.setEntityType((Class<E>) Map.class); }else { result.setEntityType((Class<E>) entityDefinition.getEntityClass()); } result.setFirstTimestamp(reader.getResultFirstTimestamp()); result.setLastTimestamp(reader.getResultLastTimestamp()); result.setSuccess(true); } catch (Exception e) { LOG.error(e.getMessage(), e); result.setSuccess(false); throw new IOException(e.getCause()); } return result; }
@Override @SuppressWarnings("unchecked") public <E extends Object> QueryResult<E> query(CompiledQuery query, EntityDefinition entityDefinition) throws IOException { QueryResult<E> result = new QueryResult<E>(); try { JdbcEntityDefinition jdbcEntityDefinition = JdbcEntityDefinitionManager.getJdbcEntityDefinition(entityDefinition); JdbcEntityReader reader = new JdbcEntityReaderImpl(jdbcEntityDefinition); List<E> entities = reader.query(query); result.setData(entities); if(entities!=null) { result.setSize(entities.size()); }else{ result.setSize(0); } if(query.isHasAgg()){ result.setEntityType((Class<E>) Map.class); }else { result.setEntityType((Class<E>) entityDefinition.getEntityClass()); } result.setFirstTimestamp(reader.getResultFirstTimestamp()); result.setLastTimestamp(reader.getResultLastTimestamp()); result.setSuccess(true); } catch (Exception e) { LOG.error(e.getMessage(), e); result.setSuccess(false); throw new IOException(e.getCause()); } return result; }
@Override public ModifyResult<String> delete(CompiledQuery query, EntityDefinition entityDefinition) throws IOException { if (query.isHasAgg()) { throw new IOException("delete by aggregation query is not supported"); .select(query.getSearchCondition().getOutputFields()) .from(query.getServiceName(), query.getRawQuery().getMetricName()).where(query.getSearchCondition()) .groupBy(query.isHasAgg(), query.getGroupByFields(), query.getAggregateFunctionTypes(), query.getAggregateFields()) .timeSeries(query.getRawQuery().isTimeSeries(), query.getRawQuery().getIntervalmin()) .treeAgg(query.getRawQuery().isTreeAgg())
if(query.isHasAgg()){ throw new IOException("delete by aggregation query is not supported"); .select(query.getSearchCondition().getOutputFields()) .from(query.getServiceName(),query.getRawQuery().getMetricName()).where(query.getSearchCondition()) .groupBy(query.isHasAgg(), query.getGroupByFields(), query.getAggregateFunctionTypes(), query.getAggregateFields()) .timeSeries(query.getRawQuery().isTimeSeries(),query.getRawQuery().getIntervalmin()) .treeAgg(query.getRawQuery().isTreeAgg())
.select(query.getSearchCondition().getOutputFields()) .from(query.getServiceName(),query.getRawQuery().getMetricName()).where(query.getSearchCondition()) .groupBy(query.isHasAgg(), query.getGroupByFields(), query.getAggregateFunctionTypes(), query.getAggregateFields()) .timeSeries(query.getRawQuery().isTimeSeries(),query.getRawQuery().getIntervalmin()) .treeAgg(query.getRawQuery().isTreeAgg()) result.setLastTimestamp(reader.getLastTimestamp()); result.setSize(entities.size()); if(!query.isHasAgg()) result.setEntityType((Class<E>) entityDefinition.getEntityClass()); result.setSuccess(true); } catch (Exception e) {
.select(query.getSearchCondition().getOutputFields()) .from(query.getServiceName(), query.getRawQuery().getMetricName()).where(query.getSearchCondition()) .groupBy(query.isHasAgg(), query.getGroupByFields(), query.getAggregateFunctionTypes(), query.getAggregateFields()) .timeSeries(query.getRawQuery().isTimeSeries(), query.getRawQuery().getIntervalmin()) .treeAgg(query.getRawQuery().isTreeAgg()) result.setLastTimestamp(reader.getLastTimestamp()); result.setSize(entities.size()); if (!query.isHasAgg()) { result.setEntityType((Class<E>) entityDefinition.getEntityClass()); } else {
@Test public void testCreatedCompiledQuery() throws QueryCompileException, IOException { RawQuery rawQuery = new RawQuery(); rawQuery.setQuery(queryStr); rawQuery.setStartTime(startTime); rawQuery.setEndTime(endTime); rawQuery.setPageSize(pageSize); CompiledQuery query = new CompiledQuery(rawQuery); Assert.assertEquals(baseTimestamp, query.getStartTime()); Assert.assertEquals(baseTimestamp + 2000, query.getEndTime()); Assert.assertEquals(rawQuery.isTreeAgg(), query.isHasAgg()); Assert.assertEquals(rawQuery.isTimeSeries(), query.isTimeSeries()); RawQuery raw2 = RawQuery.build().query(queryStr).startTime(startTime) .endTime(endTime).pageSize(pageSize).done(); Assert.assertEquals(rawQuery.toString(), raw2.toString()); } }