Skip to content

Commit 8a7511a

Browse files
author
chengyitian
committed
AJ-624: fix issue about check scale for cep;
1 parent 769387b commit 8a7511a

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/com/xxdb/streaming/cep/EventHandler.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,17 @@ public boolean serializeEvent(String eventType, List<Entity> attributes, List<En
147147
List<Integer> attrExtraParams = scheme.getAttrExtraParams();
148148
if (!attrExtraParams.isEmpty()) {
149149
Entity attribute = attributes.get(i);
150-
if ((attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL32 && ((BasicDecimal32) attribute).getScale() != attrExtraParams.get(i))
151-
|| (attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL64 && ((BasicDecimal64) attribute).getScale() != attrExtraParams.get(i))
152-
|| (attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL128 && ((BasicDecimal128) attribute).getScale() != attrExtraParams.get(i)))
153-
throw new IllegalArgumentException("The decimal attribute' scale doesn't match to scheme attrExtraParams scale.");
150+
if (attribute.isScalar()) {
151+
if ((attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL32 && ((BasicDecimal32) attribute).getScale() != attrExtraParams.get(i))
152+
|| (attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL64 && ((BasicDecimal64) attribute).getScale() != attrExtraParams.get(i))
153+
|| (attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL128 && ((BasicDecimal128) attribute).getScale() != attrExtraParams.get(i)))
154+
throw new IllegalArgumentException("The decimal attribute' scale doesn't match to scheme attrExtraParams scale.");
155+
} else if (attribute.isVector()) {
156+
if ((attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL32 && ((BasicDecimal32Vector) attribute).getScale() != attrExtraParams.get(i))
157+
|| (attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL64 && ((BasicDecimal64Vector) attribute).getScale() != attrExtraParams.get(i))
158+
|| (attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL128 && ((BasicDecimal128Vector) attribute).getScale() != attrExtraParams.get(i)))
159+
throw new IllegalArgumentException("The decimal attribute' scale doesn't match to scheme attrExtraParams scale.");
160+
}
154161
}
155162
}
156163

0 commit comments

Comments
 (0)