Skip to content

Commit adda377

Browse files
author
chengyitian
committed
Merge branch 'dev' of dolphindb.net:dolphindb/api-java
2 parents e119c06 + 1bbf9cb commit adda377

31 files changed

+296
-76
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
<modelVersion>4.0.0</modelVersion>
33
<groupId>com.dolphindb</groupId>
44
<artifactId>dolphindb-javaapi</artifactId>
5-
<version>3.00.2.1</version>
5+
<version>3.00.2.2</version>
66
<packaging>jar</packaging>
77

88
<properties>
9-
<dolphindb.version>3.00.2.1</dolphindb.version>
9+
<dolphindb.version>3.00.2.2</dolphindb.version>
1010
</properties>
1111
<name>DolphinDB Java API</name>
1212
<description>The messaging and data conversion protocol between Java and DolphinDB server</description>
@@ -31,7 +31,7 @@
3131
<connection>scm:git:git@github.com:dolphindb/api-java.git</connection>
3232
<developerConnection>scm:git:git@github.com:dolphindb/api-java.git</developerConnection>
3333
<url>git@github.com:dolphindb/api-java.git</url>
34-
<tag>api-java-3.00.2.1</tag>
34+
<tag>api-java-3.00.2.2</tag>
3535
</scm>
3636
<dependencies>
3737
<dependency>

src/com/xxdb/data/AbstractVector.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
public abstract class AbstractVector extends AbstractEntity implements Vector{
1313
private DATA_FORM df_;
1414
protected int compressedMethod = Vector.COMPRESS_LZ4;
15+
protected static final double GROWTH_FACTOR = 1.5;
1516

1617
public static class NumElementAndPartial{
1718
public int numElement;
@@ -107,6 +108,7 @@ public void write(ExtendedDataOutput out) throws IOException{
107108
public abstract int getUnitLength();
108109
public abstract void Append(Scalar value) throws Exception;
109110
public abstract void Append(Vector value) throws Exception;
111+
public abstract void checkCapacity(int requiredCapacity);
110112

111113
public static boolean checkCompressedMethod(DATA_TYPE type, int compressedMethod) {
112114
if(compressedMethod==COMPRESS_DELTA) {

src/com/xxdb/data/BasicAnyVector.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ protected BasicAnyVector(ExtendedDataInput in) throws IOException{
3535
int cols = in.readInt();
3636
int size = rows * cols;
3737
values = new Entity[size];
38-
assert(rows <= 1024);
38+
// assert(rows <= 1024);
3939
for(int i=0; i<size; ++i){
4040
short flag = in.readShort();
4141
int form = flag>>8;
@@ -122,6 +122,11 @@ public void Append(Vector value) {
122122
throw new RuntimeException("AnyVector not support append");
123123
}
124124

125+
@Override
126+
public void checkCapacity(int requiredCapacity) {
127+
throw new RuntimeException("BasicAnyVector not support checkCapacity.");
128+
}
129+
125130
public String getString(){
126131
StringBuilder sb = new StringBuilder("(");
127132
int size = Math.min(10, rows());

src/com/xxdb/data/BasicArrayVector.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,11 @@ public void Append(Vector value) throws Exception{
381381
throw new RuntimeException("Append to arrayctor must be a vector. ");
382382
}
383383

384+
@Override
385+
public void checkCapacity(int requiredCapacity) {
386+
throw new RuntimeException("BasicArrayVector not support checkCapacity.");
387+
}
388+
384389
@Override
385390
public String getJsonString(int rowIndex) {
386391
StringBuilder sb = new StringBuilder("[");

src/com/xxdb/data/BasicBooleanVector.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,10 @@ public void add(byte value) {
198198
}
199199

200200
public void addRange(byte[] valueList) {
201-
values = Arrays.copyOf(values, valueList.length + values.length);
201+
int requiredCapacity = size + valueList.length;
202+
checkCapacity(requiredCapacity);
202203
System.arraycopy(valueList, 0, values, size, valueList.length);
203204
size += valueList.length;
204-
capaticy = values.length;
205205
}
206206

207207
@Override
@@ -214,6 +214,18 @@ public void Append(Vector value) throws Exception{
214214
addRange(((BasicBooleanVector)value).getdataArray());
215215
}
216216

217+
@Override
218+
public void checkCapacity(int requiredCapacity) {
219+
if (requiredCapacity > values.length) {
220+
int newCapacity = Math.max(
221+
(int)(values.length * GROWTH_FACTOR),
222+
requiredCapacity
223+
);
224+
values = Arrays.copyOf(values, newCapacity);
225+
capaticy = newCapacity;
226+
}
227+
}
228+
217229
public byte[] getdataArray(){
218230
byte[] data = new byte[size];
219231
System.arraycopy(values, 0, data, 0, size);

src/com/xxdb/data/BasicByteVector.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,10 +195,10 @@ public void add(byte value) {
195195
}
196196

197197
public void addRange(byte[] valueList) {
198-
values = Arrays.copyOf(values, valueList.length + values.length);
198+
int requiredCapacity = size + valueList.length;
199+
checkCapacity(requiredCapacity);
199200
System.arraycopy(valueList, 0, values, size, valueList.length);
200201
size += valueList.length;
201-
capaticy = values.length;
202202
}
203203

204204
@Override
@@ -211,6 +211,18 @@ public void Append(Vector value) throws Exception{
211211
addRange(((BasicByteVector)value).getdataArray());
212212
}
213213

214+
@Override
215+
public void checkCapacity(int requiredCapacity) {
216+
if (requiredCapacity > values.length) {
217+
int newCapacity = Math.max(
218+
(int)(values.length * GROWTH_FACTOR),
219+
requiredCapacity
220+
);
221+
values = Arrays.copyOf(values, newCapacity);
222+
capaticy = newCapacity;
223+
}
224+
}
225+
214226
public byte[] getdataArray(){
215227
byte[] data = new byte[size];
216228
System.arraycopy(values, 0, data, 0, size);

src/com/xxdb/data/BasicComplexVector.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,10 @@ public void add(Double2 value) {
139139
}
140140

141141
public void addRange(Double2[] valueList) {
142-
values = Arrays.copyOf(values, valueList.length + values.length);
142+
int requiredCapacity = size + valueList.length;
143+
checkCapacity(requiredCapacity);
143144
System.arraycopy(valueList, 0, values, size, valueList.length);
144145
size += valueList.length;
145-
capaticy = values.length;
146146
}
147147

148148
@Override
@@ -155,6 +155,18 @@ public void Append(Vector value) {
155155
addRange(((BasicComplexVector)value).getdataArray());
156156
}
157157

158+
@Override
159+
public void checkCapacity(int requiredCapacity) {
160+
if (requiredCapacity > values.length) {
161+
int newCapacity = Math.max(
162+
(int)(values.length * GROWTH_FACTOR),
163+
requiredCapacity
164+
);
165+
values = Arrays.copyOf(values, newCapacity);
166+
capaticy = newCapacity;
167+
}
168+
}
169+
158170
public Double2[] getdataArray(){
159171
Double2[] data = new Double2[size];
160172
System.arraycopy(values, 0, data, 0, size);

src/com/xxdb/data/BasicDecimal128Vector.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,11 @@ public void Append(Vector value) throws Exception {
439439
}
440440
}
441441

442+
@Override
443+
public void checkCapacity(int requiredCapacity) {
444+
throw new RuntimeException("BasicDecimal128Vector not support checkCapacity.");
445+
}
446+
442447
@JsonIgnore
443448
public BigInteger[] getdataArray() {
444449
BigInteger[] data = new BigInteger[size];

src/com/xxdb/data/BasicDecimal32Vector.java

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -280,10 +280,10 @@ public void add(double value) {
280280
}
281281

282282
void addRange(int[] valueList) {
283-
unscaledValues = Arrays.copyOf(unscaledValues, valueList.length + unscaledValues.length);
283+
int requiredCapacity = size + valueList.length;
284+
checkCapacity(requiredCapacity);
284285
System.arraycopy(valueList, 0, unscaledValues, size, valueList.length);
285286
size += valueList.length;
286-
capacity = unscaledValues.length;
287287
}
288288

289289
public void addRange(String[] valueList) {
@@ -325,12 +325,23 @@ public void Append(Scalar value) throws Exception{
325325

326326
@Override
327327
public void Append(Vector value) throws Exception{
328-
if(((BasicDecimal32Vector)value).getScale() == scale_)
329-
addRange(((BasicDecimal32Vector)value).getdataArray());
330-
else{
331-
for(int i = 0; i < value.rows(); ++i){
328+
if (((BasicDecimal32Vector)value).getScale() == scale_)
329+
addRange(((BasicDecimal32Vector) value).getdataArray());
330+
else {
331+
for(int i = 0; i < value.rows(); ++i)
332332
Append((Scalar)value.get(i));
333-
}
333+
}
334+
}
335+
336+
@Override
337+
public void checkCapacity(int requiredCapacity) {
338+
if (requiredCapacity > unscaledValues.length) {
339+
int newCapacity = Math.max(
340+
(int)(unscaledValues.length * GROWTH_FACTOR),
341+
requiredCapacity
342+
);
343+
unscaledValues = Arrays.copyOf(unscaledValues, newCapacity);
344+
capacity = newCapacity;
334345
}
335346
}
336347

src/com/xxdb/data/BasicDecimal64Vector.java

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class BasicDecimal64Vector extends AbstractVector{
1616
private int scale_ = -1;
1717
private long[] unscaledValues;
1818
private int size;
19-
private int capaticy;
19+
private int capacity;
2020

2121
private static final BigDecimal DECIMAL64_MIN_VALUE = new BigDecimal("-9223372036854775808");
2222
private static final BigDecimal DECIMAL64_MAX_VALUE = new BigDecimal("9223372036854775807");
@@ -33,15 +33,15 @@ public BasicDecimal64Vector(int size, int scale){
3333
unscaledValues = new long[size];
3434

3535
this.size = unscaledValues.length;
36-
capaticy = unscaledValues.length;
36+
capacity = unscaledValues.length;
3737
}
3838

3939
BasicDecimal64Vector(DATA_FORM df, int size){
4040
super(df);
4141
unscaledValues = new long[size];
4242

4343
this.size = unscaledValues.length;
44-
capaticy = unscaledValues.length;
44+
capacity = unscaledValues.length;
4545
}
4646

4747
BasicDecimal64Vector(long[] dataValue, int scale){
@@ -51,7 +51,7 @@ public BasicDecimal64Vector(int size, int scale){
5151
this.scale_ = scale;
5252
this.unscaledValues = dataValue;
5353
this.size = unscaledValues.length;
54-
capaticy = unscaledValues.length;
54+
capacity = unscaledValues.length;
5555
}
5656

5757
public BasicDecimal64Vector(String[] data, int scale) {
@@ -70,7 +70,7 @@ public BasicDecimal64Vector(String[] data, int scale) {
7070
}
7171

7272
size = length;
73-
capaticy = length;
73+
capacity = length;
7474
}
7575

7676
public BasicDecimal64Vector(DATA_FORM df, ExtendedDataInput in, int extra) throws IOException{
@@ -101,7 +101,7 @@ public BasicDecimal64Vector(DATA_FORM df, ExtendedDataInput in, int extra) throw
101101
}
102102

103103
this.size = unscaledValues.length;
104-
capaticy = unscaledValues.length;
104+
capacity = unscaledValues.length;
105105
}
106106

107107
@Deprecated
@@ -121,7 +121,7 @@ public BasicDecimal64Vector(double[] data, int scale){
121121
}
122122
unscaledValues = newIntValue;
123123
this.size = unscaledValues.length;
124-
capaticy = unscaledValues.length;
124+
capacity = unscaledValues.length;
125125
}
126126

127127
@Override
@@ -141,7 +141,7 @@ public void deserialize(int start, int count, ExtendedDataInput in) throws IOExc
141141
}
142142

143143
this.size = unscaledValues.length;
144-
capaticy = unscaledValues.length;
144+
capacity = unscaledValues.length;
145145
}
146146

147147
@Override
@@ -254,13 +254,13 @@ public int getUnitLength() {
254254
}
255255

256256
public void add(String value) {
257-
if (size + 1 > capaticy && unscaledValues.length > 0) {
257+
if (size + 1 > capacity && unscaledValues.length > 0) {
258258
unscaledValues = Arrays.copyOf(unscaledValues, unscaledValues.length * 2);
259259
} else if (unscaledValues.length <= 0) {
260260
unscaledValues = new long[1];
261261
}
262262

263-
capaticy = unscaledValues.length;
263+
capacity = unscaledValues.length;
264264
if (value.equals("0.0"))
265265
unscaledValues[size] = 0;
266266
else if(value.equals(""))
@@ -276,12 +276,12 @@ else if(value.equals(""))
276276

277277
@Deprecated
278278
public void add(double value) {
279-
if (size + 1 > capaticy && unscaledValues.length > 0){
279+
if (size + 1 > capacity && unscaledValues.length > 0){
280280
unscaledValues = Arrays.copyOf(unscaledValues, unscaledValues.length * 2);
281281
}else if (unscaledValues.length <= 0){
282282
unscaledValues = Arrays.copyOf(unscaledValues, unscaledValues.length + 1);
283283
}
284-
capaticy = unscaledValues.length;
284+
capacity = unscaledValues.length;
285285
if (value == 0.0)
286286
unscaledValues[size] = 0;
287287
else {
@@ -297,10 +297,10 @@ public void add(double value) {
297297

298298

299299
void addRange(long[] valueList) {
300-
unscaledValues = Arrays.copyOf(unscaledValues, valueList.length + unscaledValues.length);
300+
int requiredCapacity = size + valueList.length;
301+
checkCapacity(requiredCapacity);
301302
System.arraycopy(valueList, 0, unscaledValues, size, valueList.length);
302303
size += valueList.length;
303-
capaticy = unscaledValues.length;
304304
}
305305

306306
public void addRange(String[] valueList) {
@@ -314,7 +314,7 @@ public void addRange(String[] valueList) {
314314
unscaledValues = Arrays.copyOf(unscaledValues, newLongValue.length + unscaledValues.length);
315315
System.arraycopy(newLongValue, 0, unscaledValues, size, newLongValue.length);
316316
size += newLongValue.length;
317-
capaticy = unscaledValues.length;
317+
capacity = unscaledValues.length;
318318
}
319319

320320
@Deprecated
@@ -331,7 +331,7 @@ public void addRange(double[] valueList) {
331331
unscaledValues = Arrays.copyOf(unscaledValues, newLongValue.length + unscaledValues.length);
332332
System.arraycopy(newLongValue, 0, unscaledValues, size, newLongValue.length);
333333
size += newLongValue.length;
334-
capaticy = unscaledValues.length;
334+
capacity = unscaledValues.length;
335335
}
336336

337337
@Override
@@ -341,12 +341,23 @@ public void Append(Scalar value) throws Exception{
341341

342342
@Override
343343
public void Append(Vector value) throws Exception{
344-
if(((BasicDecimal64Vector)value).getScale() == scale_)
345-
addRange(((BasicDecimal64Vector)value).getdataArray());
346-
else{
347-
for(int i = 0; i < value.rows(); ++i){
344+
if (((BasicDecimal64Vector)value).getScale() == scale_)
345+
addRange(((BasicDecimal64Vector) value).getdataArray());
346+
else {
347+
for(int i = 0; i < value.rows(); ++i)
348348
Append((Scalar)value.get(i));
349-
}
349+
}
350+
}
351+
352+
@Override
353+
public void checkCapacity(int requiredCapacity) {
354+
if (requiredCapacity > unscaledValues.length) {
355+
int newCapacity = Math.max(
356+
(int)(unscaledValues.length * GROWTH_FACTOR),
357+
requiredCapacity
358+
);
359+
unscaledValues = Arrays.copyOf(unscaledValues, newCapacity);
360+
capacity = newCapacity;
350361
}
351362
}
352363

0 commit comments

Comments
 (0)