Skip to content

Commit 9160b01

Browse files
guojn1ketor
authored andcommitted
[fix][dingo-calcite] Metric mean and median error
1 parent 4df562f commit 9160b01

File tree

7 files changed

+29
-26
lines changed

7 files changed

+29
-26
lines changed

dingo-calcite/src/main/codegen/includes/parserImpls.ftl

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -192,21 +192,22 @@ void TableElement(List<SqlNode> list) :
192192
[<SCALAR>]
193193
columnList = ParenthesizedSimpleIdentifierList()
194194
)
195-
[ <WITH> withColumnList = ParenthesizedSimpleIdentifierList() ]
196-
[ <ENGINE> <EQ> { engine = getNextToken().image; if (engine.equalsIgnoreCase("innodb")) { engine = "TXN_LSM";} } ]
197-
[
195+
( <WITH> withColumnList = ParenthesizedSimpleIdentifierList()
196+
|
197+
<ENGINE> <EQ> { engine = getNextToken().image; if (engine.equalsIgnoreCase("innodb")) { engine = "TXN_LSM";} }
198+
|
198199
<PARTITION> <BY>
199200
{
200201
partitionDefinition = new PartitionDefinition();
201202
partitionDefinition.setFuncName(getNextToken().image);
202203
partitionDefinition.setColumns(readNames());
203204
partitionDefinition.setDetails(readPartitionDetails());
204205
}
205-
]
206-
[
206+
|
207207
<REPLICA> <EQ> {replica = Integer.parseInt(getNextToken().image);}
208-
]
209-
[ <PARAMETERS> properties = readProperties() ]
208+
|
209+
<PARAMETERS> properties = readProperties()
210+
)*
210211
{
211212
list.add(new SqlIndexDeclaration(s.end(this), index, columnList, withColumnList, properties,
212213
partitionDefinition, replica, indexType, engine));
@@ -313,9 +314,9 @@ SqlCreate SqlCreateUser(Span s, boolean replace) :
313314
( <QUOTED_STRING> | <IDENTIFIER> )
314315
{ user = token.image; }
315316
[ <AT_SPLIT> (<QUOTED_STRING> | <IDENTIFIER>) { host = token.image; } ]
316-
<IDENTIFIED>
317+
<IDENTIFIED>
317318
(
318-
<WITH> (<QUOTED_STRING> | <IDENTIFIER>) { plugin = token.image; } [<AS> <QUOTED_STRING> { pluginDn = token.image; }]
319+
<WITH> (<QUOTED_STRING> | <IDENTIFIER>) { plugin = token.image; } [<AS> <QUOTED_STRING> { pluginDn = token.image; }]
319320
|
320321
<BY> <QUOTED_STRING> { password = token.image; }
321322
[ <REQUIRE> ( <SSL> { requireSsl = "SSL"; } | <NONE> { requireSsl = "NONE"; }) ]

dingo-calcite/src/main/java/io/dingodb/calcite/DingoDdlExecutor.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -928,12 +928,16 @@ public void execute(@NonNull SqlAlterTableDistribution sqlAlterTableDistribution
928928
.filter(Column::isPrimary)
929929
.sorted(Comparator.comparingInt(Column::getPrimaryKeyIndex))
930930
.collect(Collectors.toList());
931-
DefinitionUtils.checkAndConvertRangePartition(
932-
keyColumns.stream().map(Column::getName).collect(Collectors.toList()),
933-
Collections.emptyList(),
934-
keyColumns.stream().map(Column::getType).collect(Collectors.toList()),
935-
Collections.singletonList(detail.getOperand())
936-
);
931+
try {
932+
DefinitionUtils.checkAndConvertRangePartition(
933+
keyColumns.stream().map(Column::getName).collect(Collectors.toList()),
934+
Collections.emptyList(),
935+
keyColumns.stream().map(Column::getType).collect(Collectors.toList()),
936+
Collections.singletonList(detail.getOperand())
937+
);
938+
} catch (Exception e) {
939+
throw DINGO_RESOURCE.illegalArgumentException().ex();
940+
}
937941
LogUtils.info(log, "DDL execute SqlAlterTableDistribution tableName: {}, partitionDefinition: {}", tableName, detail);
938942
schema.addDistribution(tableName, sqlAlterTableDistribution.getPartitionDefinition());
939943
timeCtx.stop();

dingo-calcite/src/main/java/io/dingodb/calcite/runtime/DingoResource.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,7 @@ public interface DingoResource {
122122

123123
@BaseMessage("Error 1060 (42S21): Duplicate column names are not allowed in table definition")
124124
ExInst<DingoSqlException> duplicateColumn();
125+
126+
@BaseMessage("Error 1105 (HY000): Check illegalArgumentException")
127+
ExInst<DingoSqlException> illegalArgumentException();
125128
}

dingo-common/src/main/java/io/dingodb/common/metrics/DingoMetrics.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.codahale.metrics.Meter;
2121
import com.codahale.metrics.MetricRegistry;
2222
import com.codahale.metrics.Timer;
23+
import com.codahale.metrics.UniformReservoir;
2324
import com.codahale.metrics.jmx.JmxReporter;
2425
import io.dingodb.common.concurrent.Executors;
2526
import lombok.extern.slf4j.Slf4j;
@@ -150,7 +151,7 @@ public static Meter meter(final @NonNull String name) {
150151
}
151152

152153
public static Timer timer(final @NonNull String name) {
153-
return metricRegistry.timer(name);
154+
return metricRegistry.timer(name, () -> new Timer(new UniformReservoir()));
154155
}
155156

156157
public static Timer.Context getTimeContext(final @NonNull String name) {

dingo-driver/host/src/main/java/io/dingodb/driver/DingoMeta.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@ public ExecuteResult prepareAndExecute(
319319
callback.execute();
320320
if (signature.statementType == StatementType.OTHER_DDL) {
321321
addSqlProfile(statement.getSqlProfile(), connection);
322+
((DingoConnection) connection).setCommandStartTime(0);
322323
}
323324
final MetaResultSet metaResultSet = MetaResultSet.create(
324325
sh.connectionId,

dingo-driver/host/src/main/resources/io/dingodb/calcite/runtime/DingoResource_en.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ DuplicateKey=Error 1062(23000): Duplicate entry for key 'PRIMARY'
3939
fieldSeparatorError=Error 1083(42000): Field separator argument is not what is expected; check the manual
4040
TableNotExists=Error 1146(42S02): Table ''{0}'' does not exist
4141
DuplicateColumn=Error 1060 (42S21): Duplicate column names are not allowed in table definition
42+
IllegalArgumentException=Error 1105 (HY000): Check illegalArgumentException
4243

4344
# Other errors
4445
PrimaryKeyRequired=Error 1001 (45000): Primary keys are required in table ''{0}''

dingo-store-proxy/src/main/java/io/dingodb/store/proxy/meta/MetaService.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,26 +45,21 @@
4545
import io.dingodb.sdk.service.entity.coordinator.RegionCmd.RequestNest.SplitRequest;
4646
import io.dingodb.sdk.service.entity.coordinator.SplitRegionRequest;
4747
import io.dingodb.sdk.service.entity.meta.AddIndexOnTableRequest;
48-
import io.dingodb.sdk.service.entity.meta.CreateIndexRequest;
4948
import io.dingodb.sdk.service.entity.meta.CreateSchemaRequest;
5049
import io.dingodb.sdk.service.entity.meta.CreateTablesRequest;
5150
import io.dingodb.sdk.service.entity.meta.DingoCommonId;
5251
import io.dingodb.sdk.service.entity.meta.DropIndexOnTableRequest;
53-
import io.dingodb.sdk.service.entity.meta.DropIndexRequest;
5452
import io.dingodb.sdk.service.entity.meta.DropSchemaRequest;
5553
import io.dingodb.sdk.service.entity.meta.DropTablesRequest;
5654
import io.dingodb.sdk.service.entity.meta.EntityType;
5755
import io.dingodb.sdk.service.entity.meta.GenerateTableIdsRequest;
58-
import io.dingodb.sdk.service.entity.meta.GetIndexRequest;
59-
import io.dingodb.sdk.service.entity.meta.GetIndexesRequest;
6056
import io.dingodb.sdk.service.entity.meta.GetSchemasRequest;
6157
import io.dingodb.sdk.service.entity.meta.GetSchemasResponse;
6258
import io.dingodb.sdk.service.entity.meta.GetTableByNameRequest;
6359
import io.dingodb.sdk.service.entity.meta.GetTableMetricsRequest;
6460
import io.dingodb.sdk.service.entity.meta.GetTableMetricsResponse;
6561
import io.dingodb.sdk.service.entity.meta.GetTableRequest;
6662
import io.dingodb.sdk.service.entity.meta.GetTablesRequest;
67-
import io.dingodb.sdk.service.entity.meta.IndexDefinition;
6863
import io.dingodb.sdk.service.entity.meta.Partition;
6964
import io.dingodb.sdk.service.entity.meta.ReservedSchemaIds;
7065
import io.dingodb.sdk.service.entity.meta.Schema;
@@ -73,9 +68,7 @@
7368
import io.dingodb.sdk.service.entity.meta.TableMetrics;
7469
import io.dingodb.sdk.service.entity.meta.TableMetricsWithId;
7570
import io.dingodb.sdk.service.entity.meta.TableWithPartCount;
76-
import io.dingodb.sdk.service.entity.meta.UpdateTablesRequest;
7771
import io.dingodb.store.proxy.Configuration;
78-
import io.dingodb.store.proxy.common.Mapping;
7972
import io.dingodb.store.proxy.service.AutoIncrementService;
8073
import io.dingodb.store.proxy.service.CodecService;
8174
import io.dingodb.tso.TsoService;
@@ -100,7 +93,6 @@
10093

10194
import static io.dingodb.common.CommonId.CommonType.TABLE;
10295
import static io.dingodb.partition.DingoPartitionServiceProvider.HASH_FUNC_NAME;
103-
import static io.dingodb.store.proxy.common.Mapping.mapping;
10496
import static io.dingodb.store.proxy.mapper.Mapper.MAPPER;
10597

10698
@Slf4j
@@ -123,8 +115,8 @@ public io.dingodb.meta.MetaService root() {
123115
}
124116
}
125117

126-
private static Pattern pattern = Pattern.compile("^[A-Z_][A-Z\\d_]*$");
127-
private static Pattern warnPattern = Pattern.compile(".*[a-z]+.*");
118+
private static final Pattern pattern = Pattern.compile("^[A-Z_][A-Z\\d_]*$");
119+
private static final Pattern warnPattern = Pattern.compile(".*[a-z]+.*");
128120

129121
public final DingoCommonId id;
130122
public final String name;

0 commit comments

Comments
 (0)