diff --git a/pom.xml b/pom.xml index d83a51d8d..f8d0dde14 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.easy-query easy-query-all pom - 1.1.7 + 1.1.8 easy-query java object query distributed connector https://github.com/xuejmnet/easy-query diff --git a/samples/pom.xml b/samples/pom.xml index b1454ccf0..f90e536a2 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -5,7 +5,7 @@ easy-query-all com.easy-query - 1.1.7 + 1.1.8 4.0.0 @@ -40,7 +40,7 @@ com.easy-query sql-springboot-starter - 1.1.7 + 1.1.8 compile diff --git a/samples/spring-sharding-demo/pom.xml b/samples/spring-sharding-demo/pom.xml index d84d591cd..cac88ff03 100644 --- a/samples/spring-sharding-demo/pom.xml +++ b/samples/spring-sharding-demo/pom.xml @@ -46,13 +46,13 @@ com.easy-query sql-processor - 1.1.7 + 1.1.8 compile com.easy-query sql-springboot-starter - 1.1.7 + 1.1.8 compile diff --git a/samples/spring-sharding-demo/src/main/java/com/easy/query/springshardingdemo/controller/OrderController.java b/samples/spring-sharding-demo/src/main/java/com/easy/query/springshardingdemo/controller/OrderController.java index 00cb87f49..be0c5079f 100644 --- a/samples/spring-sharding-demo/src/main/java/com/easy/query/springshardingdemo/controller/OrderController.java +++ b/samples/spring-sharding-demo/src/main/java/com/easy/query/springshardingdemo/controller/OrderController.java @@ -1,6 +1,7 @@ package com.easy.query.springshardingdemo.controller; import com.easy.query.api.proxy.client.EasyProxyQuery; +import com.easy.query.core.api.pagination.EasyPageResult; import com.easy.query.springshardingdemo.domain.OrderEntity; import com.easy.query.springshardingdemo.domain.proxy.OrderEntityProxy; import com.easy.query.springshardingdemo.dto.OrderGroupWithAvgOrderNoVO; @@ -11,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; @@ -144,4 +146,15 @@ public Object groupByWithAvgOrderNo3() { long end = System.currentTimeMillis(); return Arrays.asList(list, (end - start) + "(ms)"); } + @GetMapping("/page") + public Object page(@RequestParam("pageIndex") Integer pageIndex,@RequestParam("pageSize") Integer pageSize) { + long start = System.currentTimeMillis(); + List userIds = Arrays.asList("小明", "小绿"); + EasyPageResult pageResult = easyProxyQuery.queryable(OrderEntityProxy.DEFAULT) + .where((filter, t) -> filter.in(t.userId(), userIds)) + .orderByAsc((order, t) -> order.column(t.userId())) + .toPageResult(pageIndex, pageSize); + long end = System.currentTimeMillis(); + return Arrays.asList(pageResult, (end - start) + "(ms)"); + } } diff --git a/samples/springbootdemo/pom.xml b/samples/springbootdemo/pom.xml index 5fbd75afa..30315c9d4 100644 --- a/samples/springbootdemo/pom.xml +++ b/samples/springbootdemo/pom.xml @@ -70,19 +70,19 @@ com.easy-query sql-core - 1.1.7 + 1.1.8 compile com.easy-query sql-api4j - 1.1.7 + 1.1.8 compile com.easy-query sql-springboot-starter - 1.1.7 + 1.1.8 compile diff --git a/sql-core/pom.xml b/sql-core/pom.xml index 9bbdf4750..1690007f9 100644 --- a/sql-core/pom.xml +++ b/sql-core/pom.xml @@ -5,7 +5,7 @@ easy-query-all com.easy-query - 1.1.7 + 1.1.8 4.0.0 diff --git a/sql-core/src/main/java/com/easy/query/core/basic/jdbc/executor/internal/merge/result/impl/memory/AbstractInMemoryStreamMergeResultSet.java b/sql-core/src/main/java/com/easy/query/core/basic/jdbc/executor/internal/merge/result/impl/memory/AbstractInMemoryStreamMergeResultSet.java index 61fc863cc..4a3a3cb97 100644 --- a/sql-core/src/main/java/com/easy/query/core/basic/jdbc/executor/internal/merge/result/impl/memory/AbstractInMemoryStreamMergeResultSet.java +++ b/sql-core/src/main/java/com/easy/query/core/basic/jdbc/executor/internal/merge/result/impl/memory/AbstractInMemoryStreamMergeResultSet.java @@ -15,6 +15,10 @@ import java.sql.SQLXML; import java.sql.Time; import java.sql.Timestamp; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; import java.util.Iterator; import java.util.List; import java.util.function.Function; @@ -123,6 +127,22 @@ public SQLXML getSQLXML(int columnIndex) throws SQLException { public Timestamp getTimestamp(int columnIndex) throws SQLException { Object value = currentResultSetRow.getValue(columnIndex); setWasNull(value == null); + if(this.wasNull){ + return null; + } + if(value instanceof Timestamp){ + return (Timestamp) value; + } + if(value instanceof LocalDateTime){ + return Timestamp.valueOf((LocalDateTime)value); + } + if(value instanceof LocalDate){ + long ts = ((LocalDate)value).atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli(); + return new Timestamp(ts); + } + if(value instanceof java.util.Date){ + return new Timestamp(((java.util.Date)value).getTime()); + } return (Timestamp) value; } @@ -130,6 +150,15 @@ public Timestamp getTimestamp(int columnIndex) throws SQLException { public Time getTime(int columnIndex) throws SQLException { Object value = currentResultSetRow.getValue(columnIndex); setWasNull(value == null); + if(this.wasNull){ + return null; + } + if(value instanceof Time){ + return (Time) value; + } + if(value instanceof LocalTime){ + return Time.valueOf((LocalTime)value); + } return (Time) value; } diff --git a/sql-core/src/main/java/com/easy/query/core/basic/jdbc/executor/internal/merge/result/impl/memory/EasyInMemoryGroupByOrderStreamMergeResultSet.java b/sql-core/src/main/java/com/easy/query/core/basic/jdbc/executor/internal/merge/result/impl/memory/EasyInMemoryGroupByOrderStreamMergeResultSet.java index 5df868c14..303142cc4 100644 --- a/sql-core/src/main/java/com/easy/query/core/basic/jdbc/executor/internal/merge/result/impl/memory/EasyInMemoryGroupByOrderStreamMergeResultSet.java +++ b/sql-core/src/main/java/com/easy/query/core/basic/jdbc/executor/internal/merge/result/impl/memory/EasyInMemoryGroupByOrderStreamMergeResultSet.java @@ -10,6 +10,7 @@ import com.easy.query.core.exception.EasyQuerySQLCommandException; import com.easy.query.core.expression.func.AggregationType; import com.easy.query.core.expression.segment.FuncColumnSegment; +import com.easy.query.core.expression.segment.MaybeAggregateColumnSegment; import com.easy.query.core.expression.segment.SQLSegment; import com.easy.query.core.logging.Log; import com.easy.query.core.logging.LogFactory; @@ -131,9 +132,9 @@ private List createAggregationUnitValues() { boolean aggregateColumn = EasySQLSegmentUtil.isAggregateColumn(sqlSegment); if(aggregateColumn){ - FuncColumnSegment maybeAggregateColumnSegment = (FuncColumnSegment) sqlSegment; + MaybeAggregateColumnSegment maybeAggregateColumnSegment = (MaybeAggregateColumnSegment) sqlSegment; AggregateValue aggregateValue = new AggregateValue(i, AggregationUnitFactory.create(maybeAggregateColumnSegment.getAggregationType())); - if(Objects.equals(AggregationType.AVG,maybeAggregateColumnSegment.getAggregationType())){ + if(maybeAggregateColumnSegment instanceof FuncColumnSegment &&Objects.equals(AggregationType.AVG,maybeAggregateColumnSegment.getAggregationType())){ Map aggregationTypeFuncColumnSegmentMap = streamMergeContext.getGroupMergeContext().getColumnMapping().get(maybeAggregateColumnSegment); if(aggregationTypeFuncColumnSegmentMap==null){ throw new UnsupportedOperationException("not found sum or count projects, avg column:" + EasyClassUtil.getInstanceSimpleName(sqlSegment)); diff --git a/sql-core/src/main/java/com/easy/query/core/basic/jdbc/types/handler/LocalTimeTypeHandler.java b/sql-core/src/main/java/com/easy/query/core/basic/jdbc/types/handler/LocalTimeTypeHandler.java index d349ad71f..eb266e1cd 100644 --- a/sql-core/src/main/java/com/easy/query/core/basic/jdbc/types/handler/LocalTimeTypeHandler.java +++ b/sql-core/src/main/java/com/easy/query/core/basic/jdbc/types/handler/LocalTimeTypeHandler.java @@ -21,7 +21,6 @@ public Object getValue(EasyResultSet resultSet) throws SQLException { return time.toLocalTime(); } return null; - } @Override diff --git a/sql-db-support/pom.xml b/sql-db-support/pom.xml index 357a22ede..c901a4f01 100644 --- a/sql-db-support/pom.xml +++ b/sql-db-support/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 sql-db-support diff --git a/sql-db-support/sql-h2/pom.xml b/sql-db-support/sql-h2/pom.xml index 0367a919a..eab88f6f2 100644 --- a/sql-db-support/sql-h2/pom.xml +++ b/sql-db-support/sql-h2/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 ../../pom.xml diff --git a/sql-db-support/sql-mssql/pom.xml b/sql-db-support/sql-mssql/pom.xml index 66f1e33a6..b8d3689bb 100644 --- a/sql-db-support/sql-mssql/pom.xml +++ b/sql-db-support/sql-mssql/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 ../../pom.xml diff --git a/sql-db-support/sql-mysql/pom.xml b/sql-db-support/sql-mysql/pom.xml index 8b6902eaa..50bc8d2cc 100644 --- a/sql-db-support/sql-mysql/pom.xml +++ b/sql-db-support/sql-mysql/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 ../../pom.xml diff --git a/sql-db-support/sql-pgsql/pom.xml b/sql-db-support/sql-pgsql/pom.xml index 4f75e7f08..2bc7930ee 100644 --- a/sql-db-support/sql-pgsql/pom.xml +++ b/sql-db-support/sql-pgsql/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 ../../pom.xml diff --git a/sql-db-support/sql-sqlite/pom.xml b/sql-db-support/sql-sqlite/pom.xml index ababde833..ec1be99a5 100644 --- a/sql-db-support/sql-sqlite/pom.xml +++ b/sql-db-support/sql-sqlite/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 ../../pom.xml diff --git a/sql-extension/pom.xml b/sql-extension/pom.xml index db8c85b3d..48c9c155a 100644 --- a/sql-extension/pom.xml +++ b/sql-extension/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 sql-extension diff --git a/sql-extension/sql-kt-springboot-starter/pom.xml b/sql-extension/sql-kt-springboot-starter/pom.xml index 776154189..3edbdeadb 100644 --- a/sql-extension/sql-kt-springboot-starter/pom.xml +++ b/sql-extension/sql-kt-springboot-starter/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 ../../pom.xml diff --git a/sql-extension/sql-springboot-starter/pom.xml b/sql-extension/sql-springboot-starter/pom.xml index c4743ddc0..f3eacccab 100644 --- a/sql-extension/sql-springboot-starter/pom.xml +++ b/sql-extension/sql-springboot-starter/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 ../../pom.xml diff --git a/sql-platform/pom.xml b/sql-platform/pom.xml index f3bd0e148..1a8d23f44 100644 --- a/sql-platform/pom.xml +++ b/sql-platform/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 sql-platform diff --git a/sql-platform/sql-api-proxy/pom.xml b/sql-platform/sql-api-proxy/pom.xml index c404c04c9..e7b35265d 100644 --- a/sql-platform/sql-api-proxy/pom.xml +++ b/sql-platform/sql-api-proxy/pom.xml @@ -6,7 +6,7 @@ com.easy-query sql-platform - 1.1.7 + 1.1.8 sql-api-proxy diff --git a/sql-platform/sql-api4j/pom.xml b/sql-platform/sql-api4j/pom.xml index 2762af4a1..52e6a11d5 100644 --- a/sql-platform/sql-api4j/pom.xml +++ b/sql-platform/sql-api4j/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 ../../pom.xml diff --git a/sql-platform/sql-api4kt/pom.xml b/sql-platform/sql-api4kt/pom.xml index b071d64b6..65c4868b8 100644 --- a/sql-platform/sql-api4kt/pom.xml +++ b/sql-platform/sql-api4kt/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 ../../pom.xml diff --git a/sql-processor/pom.xml b/sql-processor/pom.xml index fdfd52432..4fdfdb725 100644 --- a/sql-processor/pom.xml +++ b/sql-processor/pom.xml @@ -6,7 +6,7 @@ com.easy-query easy-query-all - 1.1.7 + 1.1.8 sql-processor diff --git a/sql-test/pom.xml b/sql-test/pom.xml index 95ccb73e9..b81b40b02 100644 --- a/sql-test/pom.xml +++ b/sql-test/pom.xml @@ -5,7 +5,7 @@ easy-query-all com.easy-query - 1.1.7 + 1.1.8 4.0.0 @@ -29,7 +29,7 @@ com.easy-query sql-processor - 1.1.7 + 1.1.8 compile @@ -41,19 +41,19 @@ com.easy-query sql-h2 - 1.1.7 + 1.1.8 compile com.easy-query sql-api4j - 1.1.7 + 1.1.8 compile com.easy-query sql-api-proxy - 1.1.7 + 1.1.8 compile