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 20:26:12 UTC
[ignite-3] 02/02: Minor refactoring.
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 55df701b77191056f4d6d0f4788d13966de447f3
Author: Andrew Mashenkov <an...@gmail.com>
AuthorDate: Wed Apr 21 23:24:06 2021 +0300
Minor refactoring.
---
.../main/java/org/apache/ignite/internal/schema/Row.java | 16 ++++++++++++----
.../org/apache/ignite/internal/schema/RowAssembler.java | 11 +++++++----
2 files changed, 19 insertions(+), 8 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 b9cf9cd..2b736ad 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
@@ -38,6 +38,14 @@ public class Row implements BinaryRow {
private final BinaryRow row;
/**
+ * @param itemIdx Varlen table item index.
+ * @return Varlen item offset.
+ */
+ public static int varlenItemOffset(int itemIdx) {
+ return VARLEN_TABLE_SIZE_FIELD_SIZE + itemIdx * VARLEN_COLUMN_OFFSET_FIELD_SIZE;
+ }
+
+ /**
* Constructor.
*
* @param schema Schema.
@@ -431,15 +439,15 @@ public class Row implements BinaryRow {
idx -= cols.numberOfFixsizeColumns() + numNullsBefore;
int vartableSize = readShort(vartableOffset(baseOff, cols));
- int vartableOff = vartableOffset(baseOff, cols) + VARLEN_TABLE_SIZE_FIELD_SIZE;
+ int vartableOff = vartableOffset(baseOff, cols);
// Offset of idx-th column is from base offset.
- int resOff = readShort(vartableOff + VARLEN_COLUMN_OFFSET_FIELD_SIZE * idx);
+ int resOff = readShort(vartableOff + varlenItemOffset(idx));
long len = idx == vartableSize - 1 ?
// totalLength - columnStartOffset
readInteger(baseOff) - resOff :
// nextColumnStartOffset - columnStartOffset
- readShort(vartableOff + VARLEN_COLUMN_OFFSET_FIELD_SIZE * (idx + 1)) - resOff;
+ readShort(vartableOff + varlenItemOffset(idx + 1)) - resOff;
return (len << 32) | (resOff + baseOff);
}
@@ -472,7 +480,7 @@ public class Row implements BinaryRow {
final int vartableOffset = vartableOffset(baseOff, cols);
- int vartableLen = VARLEN_TABLE_SIZE_FIELD_SIZE + readShort(vartableOffset) * VARLEN_COLUMN_OFFSET_FIELD_SIZE;
+ int vartableLen = 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 1d589d5..08d9a58 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
@@ -24,6 +24,9 @@ import java.util.BitSet;
import java.util.UUID;
import org.apache.ignite.internal.schema.BinaryRow.RowFlags;
+import static org.apache.ignite.internal.schema.BinaryRow.VARLEN_COLUMN_OFFSET_FIELD_SIZE;
+import static org.apache.ignite.internal.schema.BinaryRow.VARLEN_TABLE_SIZE_FIELD_SIZE;
+
/**
* Utility class to build rows using column appending pattern. The external user of this class must consult
* with the schema and provide the columns in strict internal column sort order during the row construction.
@@ -77,7 +80,7 @@ public class RowAssembler {
* @return Total size of the varlen table.
*/
public static int varlenTableSize(int nonNullVarlenCols) {
- return nonNullVarlenCols * BinaryRow.VARLEN_COLUMN_OFFSET_FIELD_SIZE;
+ return VARLEN_TABLE_SIZE_FIELD_SIZE + nonNullVarlenCols * VARLEN_COLUMN_OFFSET_FIELD_SIZE;
}
/**
@@ -138,7 +141,7 @@ public class RowAssembler {
*/
static int rowChunkSize(Columns cols, int nonNullVarlenCols, int nonNullVarlenSize) {
int size = BinaryRow.CHUNK_LEN_FIELD_SIZE + cols.nullMapSize() +
- BinaryRow.VARLEN_TABLE_SIZE_FIELD_SIZE + varlenTableSize(nonNullVarlenCols);
+ varlenTableSize(nonNullVarlenCols);
for (int i = 0; i < cols.numberOfFixsizeColumns(); i++)
size += cols.column(i).type().length();
@@ -379,7 +382,7 @@ public class RowAssembler {
private void writeOffset(int tblEntryIdx, int off) {
assert (flags & (baseOff == BinaryRow.KEY_CHUNK_OFFSET ? RowFlags.NO_VARLEN_KEY_COL : RowFlags.NO_VARLEN_VALUE_COL)) == 0;
- buf.putShort(varlenTblOff + BinaryRow.VARLEN_COLUMN_OFFSET_FIELD_SIZE * tblEntryIdx, (short)off);
+ buf.putShort(varlenTblOff + Row.varlenItemOffset(tblEntryIdx), (short)off);
}
/**
@@ -473,7 +476,7 @@ public class RowAssembler {
curVarlenTblEntry = 0;
nullMapOff = baseOff + BinaryRow.CHUNK_LEN_FIELD_SIZE;
- varlenTblOff = nullMapOff + curCols.nullMapSize() + BinaryRow.VARLEN_TABLE_SIZE_FIELD_SIZE;
+ varlenTblOff = nullMapOff + curCols.nullMapSize();
curOff = varlenTblOff + varlenTableSize(nonNullVarlenCols);
}