Skip to content

Commit 2b8d264

Browse files
author
chengyitian
committed
AJ-632: check scheme attrExtraParams with decimal attribute.
1 parent cc36bcb commit 2b8d264

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,26 @@ public boolean serializeEvent(String eventType, List<Entity> attributes, List<En
124124
.append(" but now it is ").append(attributes.get(i).getDataType().toString());
125125
return false;
126126
}
127+
127128
if (info.getEventScheme().getScheme().getAttrForms().get(i) != attributes.get(i).getDataForm()) {
128129
errMsg.append("the form of ").append(i + 1).append("th attribute of ").append(eventType)
129130
.append(" should be ").append(info.getEventScheme().getScheme().getAttrForms().get(i).toString())
130131
.append(" but now it is ").append(attributes.get(i).getDataForm().toString());
131132
return false;
132133
}
134+
135+
// check scheme attrExtraParams with decimal attribute.
136+
EventInfo eventInfo = this.eventInfos.get(eventType);
137+
EventSchemeEx eventScheme = eventInfo.getEventScheme();
138+
EventScheme scheme = eventScheme.getScheme();
139+
List<Integer> attrExtraParams = scheme.getAttrExtraParams();
140+
if (!attrExtraParams.isEmpty()) {
141+
Entity attribute = attributes.get(i);
142+
if ((attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL32 && ((BasicDecimal32) attribute).getScale() != attrExtraParams.get(i))
143+
|| (attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL64 && ((BasicDecimal64) attribute).getScale() != attrExtraParams.get(i))
144+
|| (attribute.getDataType() == Entity.DATA_TYPE.DT_DECIMAL128 && ((BasicDecimal128) attribute).getScale() != attrExtraParams.get(i)))
145+
throw new IllegalArgumentException("The decimal attribute' scale doesn't match to scheme attrExtraParams scale.");
146+
}
133147
}
134148

135149
if (isNeedEventTime) {

0 commit comments

Comments
 (0)