Skip to content

Commit 16f459e

Browse files
committed
refactor: 优化函数支持
1 parent 6ed3955 commit 16f459e

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

hsweb-easy-orm-rdb/src/main/java/org/hswebframework/ezorm/rdb/metadata/RDBSchemaMetadata.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.hswebframework.ezorm.rdb.operator.builder.fragments.ddl.CommonCreateIndexSqlBuilder;
1111
import org.hswebframework.ezorm.rdb.operator.builder.fragments.ddl.CommonCreateTableSqlBuilder;
1212
import org.hswebframework.ezorm.rdb.operator.builder.fragments.ddl.CommonDropIndexSqlBuilder;
13+
import org.hswebframework.ezorm.rdb.operator.builder.fragments.function.SimpleFunctionFragmentBuilder;
1314
import org.hswebframework.ezorm.rdb.operator.builder.fragments.term.DefaultForeignKeyTermFragmentBuilder;
1415
import org.hswebframework.ezorm.rdb.utils.FeatureUtils;
1516
import reactor.core.publisher.Flux;
@@ -67,6 +68,11 @@ public RDBSchemaMetadata(String name) {
6768
addFeature(RDBFeatures.min);
6869
addFeature(RDBFeatures.avg);
6970

71+
addFeature(new SimpleFunctionFragmentBuilder("stddev", "标准差"));
72+
addFeature(new SimpleFunctionFragmentBuilder("variance", "方差"));
73+
addFeature(new SimpleFunctionFragmentBuilder("stddev_pop", "标准差(总体)"));
74+
addFeature(new SimpleFunctionFragmentBuilder("stddev_samp", "标准差(样本)"));
75+
7076

7177
/* DDL */
7278

hsweb-easy-orm-rdb/src/main/java/org/hswebframework/ezorm/rdb/operator/builder/fragments/function/SimpleFunctionFragmentBuilder.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ public class SimpleFunctionFragmentBuilder implements FunctionFragmentBuilder {
1717

1818
private final SqlFragments FUNCTION;
1919

20+
public SimpleFunctionFragmentBuilder(String function, String alias, String name) {
21+
this.function = function;
22+
this.name = name;
23+
FUNCTION = SqlFragments.single(alias + "(");
24+
}
25+
2026
public SimpleFunctionFragmentBuilder(String function, String name) {
2127
this.function = function;
2228
this.name = name;

hsweb-easy-orm-rdb/src/main/java/org/hswebframework/ezorm/rdb/supports/mssql/SqlServerSchemaMetadata.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.hswebframework.ezorm.rdb.metadata.RDBSchemaMetadata;
55
import org.hswebframework.ezorm.rdb.metadata.RDBTableMetadata;
66
import org.hswebframework.ezorm.rdb.metadata.dialect.Dialect;
7+
import org.hswebframework.ezorm.rdb.operator.builder.fragments.function.SimpleFunctionFragmentBuilder;
78

89
public class SqlServerSchemaMetadata extends RDBSchemaMetadata {
910

@@ -16,14 +17,18 @@ public SqlServerSchemaMetadata(String name) {
1617
addFeature(new SqlServerIndexMetadataParser(this));
1718
addFeature(Dialect.MSSQL);
1819
addFeature(new SqlServerQuerySqlBuilder(this));
20+
addFeature(new SimpleFunctionFragmentBuilder("stddev_pop", "stdevp", "标准差(总体)"));
21+
addFeature(new SimpleFunctionFragmentBuilder("stddev_samp", "stdev", "标准差(样本)"));
22+
23+
1924
}
2025

2126
@Override
2227
public RDBTableMetadata newTable(String name) {
23-
RDBTableMetadata metadata=super.newTable(name);
28+
RDBTableMetadata metadata = super.newTable(name);
2429
metadata.addFeature(new SqlServerBatchUpsertOperator(metadata));
25-
metadata.setOnColumnAdded(column->{
26-
if(column.getValueCodec() instanceof EnumValueCodec &&((EnumValueCodec) column.getValueCodec()).isToMask()){
30+
metadata.setOnColumnAdded(column -> {
31+
if (column.getValueCodec() instanceof EnumValueCodec && ((EnumValueCodec) column.getValueCodec()).isToMask()) {
2732
column.addFeature(SqlServerEnumInFragmentBuilder.in);
2833
column.addFeature(SqlServerEnumInFragmentBuilder.notIn);
2934
}

0 commit comments

Comments
 (0)