2828import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .DURATION_SIZE ;
2929import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .EDGE_TYPE_ID_SIZE ;
3030import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .ELEMENT_NUMBER_SIZE_FOR_ANY_VALUE ;
31- import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .ELEMENT_NUMBER_SIZE_FOR_MAP ;
32- import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .ELEMENT_NUMBER_SIZE_FOR_SET ;
3331import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .ELEMENT_NUMBER_SIZE_FOR_VECTOR_VALUE ;
3432import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .EMBEDDING_VECTOR_FLOAT_VALUE_SIZE ;
3533import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .FLOAT_SIZE ;
4745import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .INT8_SIZE ;
4846import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .LIST_HEADER_SIZE ;
4947import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .LOCAL_TIME_SIZE ;
50- import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .MAP_HEADER_SIZE ;
5148import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .MICRO_SECONDS_OF_DAY ;
5249import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .MICRO_SECONDS_OF_HOUR ;
5350import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .MICRO_SECONDS_OF_MINUTE ;
5653import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .NODE_ID_SIZE ;
5754import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .NODE_TYPE_ID_SIZE ;
5855import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .RANK_SIZE ;
59- import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .SET_HEADER_SIZE ;
6056import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .STRING_MAX_VALUE_LENGTH_IN_HEADER ;
6157import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .STRING_SIZE ;
6258import static com .vesoft .nebula .driver .graph .decode .struct .SizeConstant .STRING_VALUE_LENGTH_SIZE ;
8682import com .vesoft .nebula .driver .graph .decode .datatype .EdgeType ;
8783import com .vesoft .nebula .driver .graph .decode .datatype .EmbeddingVectorType ;
8884import com .vesoft .nebula .driver .graph .decode .datatype .ListType ;
89- import com .vesoft .nebula .driver .graph .decode .datatype .MapType ;
9085import com .vesoft .nebula .driver .graph .decode .datatype .NodeType ;
9186import com .vesoft .nebula .driver .graph .decode .datatype .PathType ;
9287import com .vesoft .nebula .driver .graph .decode .datatype .RecordType ;
93- import com .vesoft .nebula .driver .graph .decode .datatype .SetType ;
9488import com .vesoft .nebula .driver .graph .decode .struct .AnyHeader ;
9589import com .vesoft .nebula .driver .graph .decode .struct .AnyValue ;
9690import com .vesoft .nebula .driver .graph .decode .struct .EdgeHeader ;
9791import com .vesoft .nebula .driver .graph .decode .struct .ListHeader ;
98- import com .vesoft .nebula .driver .graph .decode .struct .MapHeader ;
9992import com .vesoft .nebula .driver .graph .decode .struct .NodeHeader ;
10093import com .vesoft .nebula .driver .graph .decode .struct .PathAdjHeader ;
10194import com .vesoft .nebula .driver .graph .decode .struct .PathHeader ;
10295import com .vesoft .nebula .driver .graph .decode .struct .PathSpecialMetaData ;
10396import com .vesoft .nebula .driver .graph .decode .struct .PathVectorPair ;
10497import com .vesoft .nebula .driver .graph .decode .struct .ResultGraphSchemas ;
105- import com .vesoft .nebula .driver .graph .decode .struct .SetHeader ;
10698import com .vesoft .nebula .proto .graph .NestedVector ;
10799import java .math .BigDecimal ;
108100import java .nio .ByteBuffer ;
116108import java .util .ArrayList ;
117109import java .util .Date ;
118110import java .util .HashMap ;
119- import java .util .HashSet ;
120111import java .util .List ;
121112import java .util .Map ;
122- import java .util .Set ;
123113
124114public class ValueParser {
125115
@@ -499,40 +489,6 @@ private Object decodeFlatValue(VectorWrapper vector,
499489 .getVectorData ()
500490 .substring (chunkOffset );
501491 return bytesToGeography (new BytesReader (data ));
502- case COLUMN_TYPE_SET :
503- // get the type for set element
504- SetType setType = (SetType ) type ;
505- Set <ValueWrapper > set = new HashSet <>();
506- // parse set header:offset + set size
507- valueData = getSubBytes (vectorData , SET_HEADER_SIZE , rowIndex );
508- SetHeader setHeader = new SetHeader (valueData , byteOrder );
509-
510- for (int i = 0 ; i < setHeader .getSize (); i ++) {
511- set .add (new ValueWrapper (decodeValue (vector .getVectorWrapper (0 ),
512- setType .getValueType (),
513- setHeader .getOffset () + i ),
514- setType .getValueType ().getType ()));
515- }
516- return set ;
517- case COLUMN_TYPE_MAP :
518- MapType mapType = (MapType ) type ;
519- Map <ValueWrapper , ValueWrapper > mapValue = new HashMap <>();
520- // parse map header: offset + map size
521- valueData = getSubBytes (vectorData , MAP_HEADER_SIZE , rowIndex );
522- MapHeader mapHeader = new MapHeader (valueData , byteOrder );
523-
524- for (int i = 0 ; i < mapHeader .getSize (); i ++) {
525- ValueWrapper key = new ValueWrapper (decodeValue (vector .getVectorWrapper (0 ),
526- mapType .getKeyType (),
527- mapHeader .getOffset () + i ),
528- mapType .getKeyType ().getType ());
529- ValueWrapper value = new ValueWrapper (decodeValue (vector .getVectorWrapper (1 ),
530- mapType .getKeyType (),
531- mapHeader .getOffset () + i ),
532- mapType .getKeyType ().getType ());
533- mapValue .put (key , value );
534- }
535- return mapValue ;
536492 default :
537493 throw new RuntimeException ("do not support type: " + type );
538494 }
@@ -1015,7 +971,7 @@ private Object decodeCompositeValue(BytesReader reader, ColumnType type) {
1015971 case COLUMN_TYPE_LIST :
1016972 ColumnType eleType = ColumnType .getColumnType (
1017973 bytesToInt8 (reader .read (VALUE_TYPE_SIZE )));
1018- int listSize = bytesToUInt16 (
974+ int listSize = bytesToInt16 (
1019975 reader .read (ELEMENT_NUMBER_SIZE_FOR_ANY_VALUE ), byteOrder );
1020976 int nullBitSize = (listSize % 8 == 0 ) ? (listSize / 8 ) : (listSize / 8 + 1 );
1021977 ByteString nullBitBytes = reader .read (nullBitSize );
@@ -1030,7 +986,7 @@ private Object decodeCompositeValue(BytesReader reader, ColumnType type) {
1030986 }
1031987 return values ;
1032988 case COLUMN_TYPE_RECORD :
1033- int recordSize = bytesToUInt16 (
989+ int recordSize = bytesToInt16 (
1034990 reader .read (ELEMENT_NUMBER_SIZE_FOR_ANY_VALUE ), byteOrder );
1035991 Map <String , ValueWrapper > map = new HashMap <>();
1036992 for (int i = 0 ; i < recordSize ; i ++) {
@@ -1046,7 +1002,7 @@ private Object decodeCompositeValue(BytesReader reader, ColumnType type) {
10461002 long nodeId = bytesToInt64 (reader .read (NODE_ID_SIZE ), byteOrder );
10471003 int nodeTypeId = getNodeTypeIdFromNodeId (nodeId );
10481004 int nodeGraphId = bytesToInt32 (reader .read (GRAPH_ID_SIZE ), byteOrder );
1049- int nodePropNum = bytesToUInt16 (
1005+ int nodePropNum = bytesToInt16 (
10501006 reader .read (ELEMENT_NUMBER_SIZE_FOR_ANY_VALUE ), byteOrder );
10511007 Map <String , ValueWrapper > nodeProperties = new HashMap <>();
10521008 for (int i = 0 ; i < nodePropNum ; i ++) {
@@ -1064,7 +1020,7 @@ private Object decodeCompositeValue(BytesReader reader, ColumnType type) {
10641020 long rank = bytesToInt64 (reader .read (RANK_SIZE ), byteOrder );
10651021 int edgeGraphId = bytesToInt32 (reader .read (GRAPH_ID_SIZE ), byteOrder );
10661022 int edgeTypeId = bytesToInt32 (reader .read (EDGE_TYPE_ID_SIZE ), byteOrder );
1067- int edgePropNum = bytesToUInt16 (
1023+ int edgePropNum = bytesToInt16 (
10681024 reader .read (ELEMENT_NUMBER_SIZE_FOR_ANY_VALUE ), byteOrder );
10691025 Map <String , ValueWrapper > edgeProperties = new HashMap <>();
10701026 for (int i = 0 ; i < edgePropNum ; i ++) {
@@ -1082,7 +1038,7 @@ private Object decodeCompositeValue(BytesReader reader, ColumnType type) {
10821038 edgeProperties ,
10831039 graphSchemas );
10841040 case COLUMN_TYPE_PATH :
1085- int elementNum = bytesToUInt16 (
1041+ int elementNum = bytesToInt16 (
10861042 reader .read (ELEMENT_NUMBER_SIZE_FOR_ANY_VALUE ), byteOrder );
10871043 List <ValueWrapper > eleValues = new ArrayList <>();
10881044 for (int i = 0 ; i < elementNum ; i ++) {
@@ -1096,62 +1052,6 @@ private Object decodeCompositeValue(BytesReader reader, ColumnType type) {
10961052 int vectorEleNum = bytesToInt16 (reader .read (ELEMENT_NUMBER_SIZE_FOR_VECTOR_VALUE ),
10971053 byteOrder );
10981054 return bytesToEmbeddingVector (reader , vectorEleNum );
1099- case COLUMN_TYPE_SET :
1100- ColumnType setEleType = ColumnType .getColumnType (
1101- bytesToInt8 (reader .read (VALUE_TYPE_SIZE )));
1102- int setSize = bytesToInt32 (reader .read (ELEMENT_NUMBER_SIZE_FOR_SET ), byteOrder );
1103- int setNullBitSize = (setSize % 8 == 0 ) ? (setSize / 8 ) : (setSize / 8 + 1 );
1104- ByteString setNullBitBytes = reader .read (setNullBitSize );
1105- Set <ValueWrapper > setValues = new HashSet <>();
1106- for (int i = 0 ; i < setSize ; i ++) {
1107- if ((setNullBitBytes .byteAt (i / 8 ) & (1 << (i % 8 ))) == 0 ) {
1108- setValues .add (new ValueWrapper (null , ColumnType .COLUMN_TYPE_NULL ));
1109- } else {
1110- setValues .add (new ValueWrapper (decodeCompositeValue (reader , setEleType ),
1111- setEleType ));
1112- }
1113- }
1114- return setValues ;
1115- case COLUMN_TYPE_MAP :
1116- ColumnType mapKeyType = ColumnType .getColumnType (
1117- bytesToInt8 (reader .read (VALUE_TYPE_SIZE )));
1118- int mapKeySize = bytesToInt32 (reader .read (ELEMENT_NUMBER_SIZE_FOR_MAP ), byteOrder );
1119- int mapKeyNullBitSize =
1120- (mapKeySize % 8 == 0 ) ? (mapKeySize / 8 ) : (mapKeySize / 8 + 1 );
1121- ByteString mapKeyNullBitBytes = reader .read (mapKeyNullBitSize );
1122-
1123- List <ValueWrapper > keys = new ArrayList <>();
1124- for (int i = 0 ; i < mapKeySize ; i ++) {
1125- if ((mapKeyNullBitBytes .byteAt (i / 8 ) & (1 << (i % 8 ))) == 0 ) {
1126- keys .add (new ValueWrapper (null , ColumnType .COLUMN_TYPE_NULL ));
1127- } else {
1128- keys .add (new ValueWrapper (decodeCompositeValue (reader , mapKeyType ),
1129- mapKeyType ));
1130- }
1131- }
1132- ColumnType mapValueType = ColumnType .getColumnType (
1133- bytesToInt8 (reader .read (VALUE_TYPE_SIZE )));
1134- int mapValueSize = bytesToInt32 (reader .read (ELEMENT_NUMBER_SIZE_FOR_MAP ),
1135- byteOrder );
1136- int mapValueNullBitSize =
1137- (mapValueSize % 8 == 0 ) ? (mapValueSize / 8 ) : (mapValueSize / 8 + 1 );
1138- ByteString mapValueNullBitBytes = reader .read (mapValueNullBitSize );
1139-
1140- List <ValueWrapper > mapValues = new ArrayList <>();
1141- for (int i = 0 ; i < mapKeySize ; i ++) {
1142- if ((mapValueNullBitBytes .byteAt (i / 8 ) & (1 << (i % 8 ))) == 0 ) {
1143- mapValues .add (new ValueWrapper (null , ColumnType .COLUMN_TYPE_NULL ));
1144- } else {
1145- mapValues .add (new ValueWrapper (decodeCompositeValue (reader , mapValueType ),
1146- mapValueType ));
1147- }
1148- }
1149-
1150- Map <ValueWrapper , ValueWrapper > mapInfo = new HashMap <>();
1151- for (int i = 0 ; i < mapKeySize ; i ++) {
1152- mapInfo .put (keys .get (i ), mapValues .get (i ));
1153- }
1154- return mapInfo ;
11551055 default :
11561056 throw new RuntimeException ("do not support type:" + type );
11571057 }
0 commit comments