You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2021/04/21 23:05:59 UTC
[ignite-3] 02/02: Omit writing empty varlen table.
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch ignite-13670
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit cdfae80c9a60592764f1bbd328a7d91a5b362a00
Author: Andrew Mashenkov <an...@gmail.com>
AuthorDate: Thu Apr 22 02:05:40 2021 +0300
Omit writing empty varlen table.
---
.../org/apache/ignite/internal/schema/Row.java | 18 +++-
.../ignite/internal/schema/RowAssembler.java | 22 +++--
.../ignite/internal/schema/RowAssemblerTest.java | 100 ++++++++++-----------
3 files changed, 81 insertions(+), 59 deletions(-)
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/Row.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/Row.java
index e970f3d..f562ded 100644
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/Row.java
+++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/Row.java
@@ -307,6 +307,13 @@ public class Row implements BinaryRow {
}
/**
+ * @return Row flags.
+ */
+ private boolean hasFlag(int flag) {
+ return ((readShort(FLAGS_FIELD_OFFSET) & flag)) != 0;
+ }
+
+ /**
* Gets the column offset and length encoded into a single 8-byte value (4 least significant bytes encoding the
* offset from the beginning of the row and 4 most significant bytes encoding the field length for varlength
* columns). The offset and length should be extracted using {@link #offset(long)} and {@link #length(long)}
@@ -345,8 +352,12 @@ public class Row implements BinaryRow {
if (isNull(off, colIdx))
return -1;
+ short flags = readShort(FLAGS_FIELD_OFFSET);
+
+ boolean noVarTable = ((keyCol ? RowFlags.OMIT_KEY_VARTBL_FLAG : RowFlags.OMIT_VAL_VARTBL_FLAG) & flags) != 0;
+
return type.fixedLength() ?
- fixlenColumnOffset(cols, off, colIdx) :
+ fixlenColumnOffset(cols, off, colIdx, noVarTable) :
varlenColumnOffsetAndLength(cols, off, colIdx);
}
@@ -459,9 +470,10 @@ public class Row implements BinaryRow {
* @param cols Columns chunk.
* @param baseOff Chunk base offset.
* @param idx Column index in the chunk.
+ * @param noVarlen Varlen table is ommited.
* @return Encoded offset (from the row start) of the requested fixlen column.
*/
- int fixlenColumnOffset(Columns cols, int baseOff, int idx) {
+ int fixlenColumnOffset(Columns cols, int baseOff, int idx, boolean noVarlen) {
int nullMapOff = nullMapOffset(baseOff);
int off = 0;
@@ -480,7 +492,7 @@ public class Row implements BinaryRow {
int vartableOffset = vartableOffset(baseOff, cols);
- int vartableLen = varlenItemOffset(readShort(vartableOffset));
+ int vartableLen = noVarlen ? 0 : varlenItemOffset(readShort(vartableOffset));
return vartableOffset + vartableLen + off;
}
diff --git a/modules/schema/src/main/java/org/apache/ignite/internal/schema/RowAssembler.java b/modules/schema/src/main/java/org/apache/ignite/internal/schema/RowAssembler.java
index e5b139e..a62715f 100644
--- a/modules/schema/src/main/java/org/apache/ignite/internal/schema/RowAssembler.java
+++ b/modules/schema/src/main/java/org/apache/ignite/internal/schema/RowAssembler.java
@@ -80,7 +80,8 @@ public class RowAssembler {
* @return Total size of the varlen table.
*/
public static int varlenTableSize(int nonNullVarlenCols) {
- return VARLEN_TABLE_SIZE_FIELD_SIZE + nonNullVarlenCols * VARLEN_COLUMN_OFFSET_FIELD_SIZE;
+ return nonNullVarlenCols == 0 ? 0 :
+ VARLEN_TABLE_SIZE_FIELD_SIZE + nonNullVarlenCols * VARLEN_COLUMN_OFFSET_FIELD_SIZE;
}
/**
@@ -171,10 +172,17 @@ public class RowAssembler {
initOffsets(BinaryRow.KEY_CHUNK_OFFSET, nonNullVarlenKeyCols);
+// if (nullMapSize == 0)
+// flags |= (baseOff == KEY_CHUNK_OFFSET ? RowFlags.NO_KEY_NULL_MAP : RowFlags.NO_VALUE_NULL_MAP);
+
buf = new ExpandableByteBuf(size);
buf.putShort(0, (short)schema.version());
- buf.putShort(nullMapOff + curCols.nullMapSize(), (short)nonNullVarlenKeyCols);
+
+ if (nonNullVarlenKeyCols == 0)
+ flags |= RowFlags.OMIT_KEY_VARTBL_FLAG;
+ else
+ buf.putShort(varlenTblOff, (short)nonNullVarlenKeyCols);
}
/**
@@ -453,15 +461,17 @@ public class RowAssembler {
buf.putShort(baseOff, (short)keyLen);
- if (schema.valueColumns() == curCols) {
- buf.putShort(nullMapOff + curCols.nullMapSize(), (short)nonNullVarlenValCols);
-
+ if (schema.valueColumns() == curCols)
return; // No more columns.
- }
curCols = schema.valueColumns(); // Switch key->value columns.
initOffsets(baseOff + keyLen, nonNullVarlenValCols);
+
+ if (nonNullVarlenValCols == 0)
+ flags |= RowFlags.OMIT_VAL_VARTBL_FLAG;
+ else
+ buf.putShort(varlenTblOff, (short)nonNullVarlenValCols);
}
}
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/RowAssemblerTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/RowAssemblerTest.java
index 8ca733e..3781330 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/RowAssemblerTest.java
+++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/RowAssemblerTest.java
@@ -49,7 +49,7 @@ public class RowAssemblerTest {
asm.appendInt(33);
asm.appendInt(-71);
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, -71, -1, -1, -1}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 33, 0, 0, 0, 9, 0, 0, 0, 0, -71, -1, -1, -1}, asm.build());
}
{ // Null value.
@@ -58,7 +58,7 @@ public class RowAssemblerTest {
asm.appendInt(-33);
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, -33, -1, -1, -1, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, -33, -1, -1, -1, 5, 0, 0, 0, 1}, asm.build());
}
{ // No value.
@@ -66,7 +66,7 @@ public class RowAssemblerTest {
asm.appendInt(-33);
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, -33, -1, -1, -1}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 25, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, -33, -1, -1, -1}, asm.build());
}
}
@@ -83,7 +83,7 @@ public class RowAssemblerTest {
asm.appendShort((short)33);
asm.appendShort((short)71L);
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 33, 0, 9, 0, 0, 0, 0, 0, 0, 71, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 33, 0, 7, 0, 0, 0, 0, 71, 0}, asm.build());
}
{ // No value.
@@ -91,7 +91,7 @@ public class RowAssemblerTest {
asm.appendShort((short)-33);
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, -33, -1}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 25, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, -33, -1}, asm.build());
}
}
@@ -108,7 +108,7 @@ public class RowAssemblerTest {
asm.appendShort((short)-33);
asm.appendString("val");
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, -33, -1, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 8, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, -33, -1, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
}
{ // Null value.
@@ -117,7 +117,7 @@ public class RowAssemblerTest {
asm.appendShort((short)33);
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 33, 0, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 33, 0, 5, 0, 0, 0, 1}, asm.build());
}
{ // No value.
@@ -125,7 +125,7 @@ public class RowAssemblerTest {
asm.appendShort((short)33);
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 33, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 25, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 33, 0}, asm.build());
}
}
@@ -142,7 +142,7 @@ public class RowAssemblerTest {
asm.appendShort((short)-33);
asm.appendString("val");
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, -33, -1, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 8, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, -33, -1, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
}
{ // No value.
@@ -150,7 +150,7 @@ public class RowAssemblerTest {
asm.appendShort((short)33);
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 33, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 25, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 33, 0}, asm.build());
}
}
@@ -167,7 +167,7 @@ public class RowAssemblerTest {
asm.appendShort((short)-33);
asm.appendByte((byte)71);
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, -33, -1, 8, 0, 0, 0, 0, 0, 0, 71}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, -33, -1, 6, 0, 0, 0, 0, 71}, asm.build());
}
{ // Null key.
@@ -176,7 +176,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendByte((byte)-71);
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, -71}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 6, 0, 0, 0, 0, -71}, asm.build());
}
{ // No value.
@@ -184,7 +184,7 @@ public class RowAssemblerTest {
asm.appendShort((short)33);
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 33, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 25, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 33, 0}, asm.build());
}
}
@@ -201,7 +201,7 @@ public class RowAssemblerTest {
asm.appendShort((short)-1133);
asm.appendShort((short)-1071);
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, -109, -5, 9, 0, 0, 0, 0, 0, 0, -47, -5}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, -109, -5, 7, 0, 0, 0, 0, -47, -5}, asm.build());
}
{ // Null key.
@@ -210,7 +210,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendShort((short)1171);
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, -109, 4}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 7, 0, 0, 0, 0, -109, 4}, asm.build());
}
{ // Null value.
@@ -219,7 +219,7 @@ public class RowAssemblerTest {
asm.appendShort((short)1133);
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 109, 4, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 109, 4, 5, 0, 0, 0, 1}, asm.build());
}
{ // Null both.
@@ -228,7 +228,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 5, 0, 0, 0, 1}, asm.build());
}
{ // No value.
@@ -236,7 +236,7 @@ public class RowAssemblerTest {
asm.appendShort((short)1133);
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 109, 4}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 25, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 109, 4}, asm.build());
}
}
@@ -253,7 +253,7 @@ public class RowAssemblerTest {
asm.appendInt(-33);
asm.appendString("val");
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, -33, -1, -1, -1, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 8, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, -33, -1, -1, -1, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
}
{ // Null key.
@@ -262,7 +262,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendString("val");
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 8, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
}
{ // Null value.
@@ -271,7 +271,7 @@ public class RowAssemblerTest {
asm.appendInt(33);
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 33, 0, 0, 0, 5, 0, 0, 0, 1}, asm.build());
}
{ // Null both.
@@ -280,7 +280,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 5, 0, 0, 0, 1}, asm.build());
}
{ // No value.
@@ -288,7 +288,7 @@ public class RowAssemblerTest {
asm.appendInt(33);
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 25, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 33, 0, 0, 0}, asm.build());
}
}
@@ -305,7 +305,7 @@ public class RowAssemblerTest {
asm.appendByte((byte)-33);
asm.appendString("val");
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, -33, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 8, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, -33, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
}
{ // Null key.
@@ -314,7 +314,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendString("val");
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 8, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 12, 0, 0, 0, 0, 1, 0, 9, 0, 118, 97, 108}, asm.build());
}
{ // No value.
@@ -322,7 +322,7 @@ public class RowAssemblerTest {
asm.appendByte((byte)33);
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 33}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 25, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 33}, asm.build());
}
}
@@ -340,8 +340,8 @@ public class RowAssemblerTest {
asm.appendUuid(uuidVal);
assertRowBytesEquals(new byte[] {
- 42, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121,
- 23, 0, 0, 0, 0, 0, 0, -117, -61, -31, 85, 61, -32, 57, 68, 111, 67, 56, -3, -99, -37, -58, -73}, asm.build());
+ 42, 0, 16, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121,
+ 21, 0, 0, 0, 0, -117, -61, -31, 85, 61, -32, 57, 68, 111, 67, 56, -3, -99, -37, -58, -73}, asm.build());
}
{ // Null value.
@@ -350,7 +350,7 @@ public class RowAssemblerTest {
asm.appendString("key");
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 16, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 5, 0, 0, 0, 1}, asm.build());
}
{ // No value.
@@ -358,7 +358,7 @@ public class RowAssemblerTest {
asm.appendString("key");
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 17, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
}
}
@@ -376,8 +376,8 @@ public class RowAssemblerTest {
asm.appendUuid(uuidVal);
assertRowBytesEquals(new byte[] {
- 42, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121,
- 23, 0, 0, 0, 0, 0, 0, -117, -61, -31, 85, 61, -32, 57, 68, 111, 67, 56, -3, -99, -37, -58, -73}, asm.build());
+ 42, 0, 16, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121,
+ 21, 0, 0, 0, 0, -117, -61, -31, 85, 61, -32, 57, 68, 111, 67, 56, -3, -99, -37, -58, -73}, asm.build());
}
{ // No value.
@@ -385,7 +385,7 @@ public class RowAssemblerTest {
asm.appendString("key");
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 17, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
}
}
@@ -411,7 +411,7 @@ public class RowAssemblerTest {
asm.appendString("key");
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 16, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 5, 0, 0, 0, 1}, asm.build());
}
{ // No value.
@@ -419,7 +419,7 @@ public class RowAssemblerTest {
asm.appendString("key");
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 17, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
}
}
@@ -444,7 +444,7 @@ public class RowAssemblerTest {
asm.appendString("key");
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 17, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
}
}
@@ -461,7 +461,7 @@ public class RowAssemblerTest {
asm.appendString("key");
asm.appendShort((short)-71);
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 9, 0, 0, 0, 0, 0, 0, -71, -1}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 16, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 7, 0, 0, 0, 0, -71, -1}, asm.build());
}
{ // Null key.
@@ -470,7 +470,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendShort((short)71);
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 71, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 7, 0, 0, 0, 0, 71, 0}, asm.build());
}
{ // Null value.
@@ -479,7 +479,7 @@ public class RowAssemblerTest {
asm.appendString("key");
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 16, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 5, 0, 0, 0, 1}, asm.build());
}
{ // Null both.
@@ -488,7 +488,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 5, 0, 0, 0, 1}, asm.build());
}
{ // No value.
@@ -496,7 +496,7 @@ public class RowAssemblerTest {
asm.appendString("key");
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 17, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
}
}
@@ -513,7 +513,7 @@ public class RowAssemblerTest {
asm.appendString("key");
asm.appendShort((short)-71L);
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 9, 0, 0, 0, 0, 0, 0, -71, -1}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 16, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 7, 0, 0, 0, 0, -71, -1}, asm.build());
}
{ // Null key.
@@ -522,7 +522,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendShort((short)71);
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 71, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 7, 0, 0, 0, 0, 71, 0}, asm.build());
}
{ // No value.
@@ -530,7 +530,7 @@ public class RowAssemblerTest {
asm.appendString("key");
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 17, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
}
}
@@ -556,7 +556,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendBytes(new byte[] {-1, 1, 0, 120});
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 13, 0, 0, 0, 0, 1, 0, 9, 0, -1, 1, 0, 120}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 8, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 13, 0, 0, 0, 0, 1, 0, 9, 0, -1, 1, 0, 120}, asm.build());
}
{ // Null value.
@@ -565,7 +565,7 @@ public class RowAssemblerTest {
asm.appendString("key");
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 16, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121, 5, 0, 0, 0, 1}, asm.build());
}
{ // Null both.
@@ -574,7 +574,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendNull();
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 7, 0, 0, 0, 1, 0, 0}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 24, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 5, 0, 0, 0, 1}, asm.build());
}
{ // No value.
@@ -582,7 +582,7 @@ public class RowAssemblerTest {
asm.appendString("key");
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 17, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
}
}
@@ -608,7 +608,7 @@ public class RowAssemblerTest {
asm.appendNull();
asm.appendBytes(new byte[] {-1, 1, 0, 120});
- assertRowBytesEquals(new byte[] {42, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 13, 0, 0, 0, 0, 1, 0, 9, 0, -1, 1, 0, 120}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 8, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 13, 0, 0, 0, 0, 1, 0, 9, 0, -1, 1, 0, 120}, asm.build());
}
{ // No value.
@@ -616,7 +616,7 @@ public class RowAssemblerTest {
asm.appendString("key");
- assertRowBytesEquals(new byte[] {42, 0, 1, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121,}, asm.build());
+ assertRowBytesEquals(new byte[] {42, 0, 17, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 1, 0, 9, 0, 107, 101, 121}, asm.build());
}
}