Skip to content

Commit 8cf1ee9

Browse files
author
lucaijun
committed
AJ-266: add the support of array vector to the array of basic data types
1 parent 4bc1e10 commit 8cf1ee9

File tree

1 file changed

+155
-0
lines changed

1 file changed

+155
-0
lines changed

src/com/xxdb/data/BasicEntityFactory.java

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -629,48 +629,72 @@ public static Entity createScalar(DATA_TYPE dataType, Object object, int extraPa
629629
if(object instanceof Boolean[]){
630630
return createAnyVector(dataType, (Boolean[])object, extraParam);
631631
}
632+
if(object instanceof boolean[]){
633+
return createAnyVector(dataType, (boolean[])object, extraParam);
634+
}
632635
if(object instanceof Byte) {
633636
return createScalar(dataType, (byte) object);
634637
}
635638
if(object instanceof Byte[]) {
636639
return createAnyVector(dataType, (Byte[])object, extraParam);
637640
}
641+
if(object instanceof byte[]) {
642+
return createAnyVector(dataType, (byte[])object, extraParam);
643+
}
638644
if(object instanceof Character){
639645
return createScalar(dataType, (char) object);
640646
}
641647
if(object instanceof Character[]){
642648
return createAnyVector(dataType, (Character[])object, extraParam);
643649
}
650+
if(object instanceof char[]){
651+
return createAnyVector(dataType, (char[])object, extraParam);
652+
}
644653
if(object instanceof Short){
645654
return createScalar(dataType, (short) object);
646655
}
647656
if(object instanceof Short[]) {
648657
return createAnyVector(dataType, (Short[]) object, extraParam);
649658
}
659+
if(object instanceof short[]) {
660+
return createAnyVector(dataType, (short[]) object, extraParam);
661+
}
650662
if(object instanceof Integer) {
651663
return createScalar(dataType, (int) object, extraParam);
652664
}
653665
if(object instanceof Integer[]){
654666
return createAnyVector(dataType, (Integer[])object, extraParam);
655667
}
668+
if(object instanceof int[]){
669+
return createAnyVector(dataType, (int[])object, extraParam);
670+
}
656671
if(object instanceof Long) {
657672
return createScalar(dataType, (long) object, extraParam);
658673
}
659674
if(object instanceof Long[]) {
660675
return createAnyVector(dataType,(Long[])object, extraParam);
661676
}
677+
if(object instanceof long[]) {
678+
return createAnyVector(dataType,(long[])object, extraParam);
679+
}
662680
if(object instanceof Double) {
663681
return createScalar(dataType, (double) object, extraParam);
664682
}
665683
if(object instanceof Double[]) {
666684
return createAnyVector(dataType,(Double[])object, extraParam);
667685
}
686+
if(object instanceof double[]) {
687+
return createAnyVector(dataType,(double[])object, extraParam);
688+
}
668689
if(object instanceof Float) {
669690
return createScalar(dataType, (float) object, extraParam);
670691
}
671692
if(object instanceof Float[]) {
672693
return createAnyVector(dataType,(Float[])object, extraParam);
673694
}
695+
if(object instanceof float[]) {
696+
return createAnyVector(dataType,(float[])object, extraParam);
697+
}
674698
if(object instanceof String) {
675699
return createScalar(dataType,(String)object, extraParam);
676700
}
@@ -734,6 +758,137 @@ private static <T> Vector createAnyVector(DATA_TYPE dataType, T[] val, int extra
734758
return vector;
735759
}
736760

761+
private static <T> Vector createAnyVector(DATA_TYPE dataType, float[] val, int extraParam) throws Exception{
762+
if(dataType.getValue()<64){
763+
throw new RuntimeException("Failed to insert data, only arrayVector support data vector for "+dataType + ".");
764+
}
765+
dataType = values()[dataType.getValue()-64];
766+
int count = val.length;
767+
Vector vector = BasicEntityFactory.instance().createVectorWithDefaultValue(dataType, count, extraParam);
768+
for(int i = 0; i < count; ++i)
769+
{
770+
Entity t = createScalar(dataType, val[i], extraParam);
771+
vector.set(i, (Scalar) t);
772+
}
773+
return vector;
774+
}
775+
private static <T> Vector createAnyVector(DATA_TYPE dataType, double[] val, int extraParam) throws Exception{
776+
if(dataType.getValue()<64){
777+
throw new RuntimeException("Failed to insert data, only arrayVector support data vector for "+dataType + ".");
778+
}
779+
dataType = values()[dataType.getValue()-64];
780+
int count = val.length;
781+
Vector vector = BasicEntityFactory.instance().createVectorWithDefaultValue(dataType, count, extraParam);
782+
for(int i = 0; i < count; ++i)
783+
{
784+
Entity t = createScalar(dataType, val[i], extraParam);
785+
vector.set(i, (Scalar) t);
786+
}
787+
return vector;
788+
}
789+
private static <T> Vector createAnyVector(DATA_TYPE dataType, int[] val, int extraParam) throws Exception{
790+
if(dataType.getValue()<64){
791+
throw new RuntimeException("Failed to insert data, only arrayVector support data vector for "+dataType + ".");
792+
}
793+
dataType = values()[dataType.getValue()-64];
794+
int count = val.length;
795+
Vector vector = BasicEntityFactory.instance().createVectorWithDefaultValue(dataType, count, extraParam);
796+
// if (dataType == DT_DECIMAL32 || dataType == DT_DECIMAL64 || dataType == DT_DECIMAL128){
797+
// ((AbstractVector)vector).setExtraParamForType(extraParam);
798+
// }
799+
for(int i = 0; i < count; ++i)
800+
{
801+
Entity t = createScalar(dataType, val[i], extraParam);
802+
vector.set(i, (Scalar) t);
803+
}
804+
return vector;
805+
}
806+
private static <T> Vector createAnyVector(DATA_TYPE dataType, short[] val, int extraParam) throws Exception{
807+
if(dataType.getValue()<64){
808+
throw new RuntimeException("Failed to insert data, only arrayVector support data vector for "+dataType + ".");
809+
}
810+
dataType = values()[dataType.getValue()-64];
811+
int count = val.length;
812+
Vector vector = BasicEntityFactory.instance().createVectorWithDefaultValue(dataType, count, extraParam);
813+
// if (dataType == DT_DECIMAL32 || dataType == DT_DECIMAL64 || dataType == DT_DECIMAL128){
814+
// ((AbstractVector)vector).setExtraParamForType(extraParam);
815+
// }
816+
for(int i = 0; i < count; ++i)
817+
{
818+
Entity t = createScalar(dataType, val[i]);
819+
vector.set(i, (Scalar) t);
820+
}
821+
return vector;
822+
}
823+
private static <T> Vector createAnyVector(DATA_TYPE dataType, byte[] val, int extraParam) throws Exception{
824+
if(dataType.getValue()<64){
825+
throw new RuntimeException("Failed to insert data, only arrayVector support data vector for "+dataType + ".");
826+
}
827+
dataType = values()[dataType.getValue()-64];
828+
int count = val.length;
829+
Vector vector = BasicEntityFactory.instance().createVectorWithDefaultValue(dataType, count, extraParam);
830+
// if (dataType == DT_DECIMAL32 || dataType == DT_DECIMAL64 || dataType == DT_DECIMAL128){
831+
// ((AbstractVector)vector).setExtraParamForType(extraParam);
832+
// }
833+
for(int i = 0; i < count; ++i)
834+
{
835+
Entity t = createScalar(dataType, val[i]);
836+
vector.set(i, (Scalar) t);
837+
}
838+
return vector;
839+
}
840+
private static <T> Vector createAnyVector(DATA_TYPE dataType, char[] val, int extraParam) throws Exception{
841+
if(dataType.getValue()<64){
842+
throw new RuntimeException("Failed to insert data, only arrayVector support data vector for "+dataType + ".");
843+
}
844+
dataType = values()[dataType.getValue()-64];
845+
int count = val.length;
846+
Vector vector = BasicEntityFactory.instance().createVectorWithDefaultValue(dataType, count, extraParam);
847+
// if (dataType == DT_DECIMAL32 || dataType == DT_DECIMAL64 || dataType == DT_DECIMAL128){
848+
// ((AbstractVector)vector).setExtraParamForType(extraParam);
849+
// }
850+
for(int i = 0; i < count; ++i)
851+
{
852+
Entity t = createScalar(dataType, val[i]);
853+
vector.set(i, (Scalar) t);
854+
}
855+
return vector;
856+
}
857+
private static <T> Vector createAnyVector(DATA_TYPE dataType, boolean[] val, int extraParam) throws Exception{
858+
if(dataType.getValue()<64){
859+
throw new RuntimeException("Failed to insert data, only arrayVector support data vector for "+dataType + ".");
860+
}
861+
dataType = values()[dataType.getValue()-64];
862+
int count = val.length;
863+
Vector vector = BasicEntityFactory.instance().createVectorWithDefaultValue(dataType, count, extraParam);
864+
// if (dataType == DT_DECIMAL32 || dataType == DT_DECIMAL64 || dataType == DT_DECIMAL128){
865+
// ((AbstractVector)vector).setExtraParamForType(extraParam);
866+
// }
867+
for(int i = 0; i < count; ++i)
868+
{
869+
Entity t = createScalar(dataType, val[i]);
870+
vector.set(i, (Scalar) t);
871+
}
872+
return vector;
873+
}
874+
private static <T> Vector createAnyVector(DATA_TYPE dataType, long[] val, int extraParam) throws Exception{
875+
if(dataType.getValue()<64){
876+
throw new RuntimeException("Failed to insert data, only arrayVector support data vector for "+dataType + ".");
877+
}
878+
dataType = values()[dataType.getValue()-64];
879+
int count = val.length;
880+
Vector vector = BasicEntityFactory.instance().createVectorWithDefaultValue(dataType, count, extraParam);
881+
// if (dataType == DT_DECIMAL32 || dataType == DT_DECIMAL64 || dataType == DT_DECIMAL128){
882+
// ((AbstractVector)vector).setExtraParamForType(extraParam);
883+
// }
884+
for(int i = 0; i < count; ++i)
885+
{
886+
Entity t = createScalar(dataType, val[i], extraParam);
887+
vector.set(i, (Scalar) t);
888+
}
889+
return vector;
890+
}
891+
737892
private static Scalar createScalar(DATA_TYPE dataType, LocalDate val) {
738893
switch (dataType) {
739894
case DT_DATE:

0 commit comments

Comments
 (0)