This is an automated email from the ASF dual-hosted git repository. tkalkirill pushed a commit to branch catalog-feature in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 693f950b5bf8948e17bd8ee458208966e5565e9e Author: Kirill Tkalenko <tkalkir...@yandex.ru> AuthorDate: Mon Sep 11 09:59:02 2023 +0300 CATALOG-FEATURE after merge ai-main --- .../internal/sql/engine/exec/TableRowConverterImpl.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/TableRowConverterImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/TableRowConverterImpl.java index 5c58079614..7fe1f5f3e0 100644 --- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/TableRowConverterImpl.java +++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/TableRowConverterImpl.java @@ -23,9 +23,11 @@ import org.apache.ignite.internal.schema.BinaryRow; import org.apache.ignite.internal.schema.BinaryRowConverter; import org.apache.ignite.internal.schema.BinaryTuple; import org.apache.ignite.internal.schema.BinaryTupleSchema; +import org.apache.ignite.internal.schema.Column; import org.apache.ignite.internal.schema.SchemaDescriptor; import org.apache.ignite.internal.schema.SchemaRegistry; import org.apache.ignite.internal.schema.row.Row; +import org.apache.ignite.internal.sql.engine.schema.ColumnDescriptor; import org.apache.ignite.internal.sql.engine.schema.TableDescriptor; import org.jetbrains.annotations.Nullable; @@ -42,6 +44,8 @@ public class TableRowConverterImpl implements TableRowConverter { private final BinaryTupleSchema binaryTupleSchema; + private final int[] physicalIndexMap; + /** Constructor. */ public TableRowConverterImpl(SchemaRegistry schemaRegistry, SchemaDescriptor schemaDescriptor, TableDescriptor desc) { this.schemaRegistry = schemaRegistry; @@ -49,6 +53,14 @@ public class TableRowConverterImpl implements TableRowConverter { this.desc = desc; this.binaryTupleSchema = BinaryTupleSchema.createRowSchema(schemaDescriptor); + + physicalIndexMap = new int[desc.columnsCount()]; + + for (int i = 0; i < desc.columnsCount(); i++) { + ColumnDescriptor col = desc.columnDescriptor(i); + Column column = schemaDescriptor.column(col.name()); + physicalIndexMap[i] = column.schemaIndex(); + } } /** {@inheritDoc} */ @@ -72,7 +84,7 @@ public class TableRowConverterImpl implements TableRowConverter { BinaryTupleBuilder tupleBuilder = new BinaryTupleBuilder(desc.columnsCount()); for (int i = 0; i < desc.columnsCount(); i++) { - int index = desc.columnDescriptor(i).physicalIndex(); + int index = physicalIndexMap[i]; BinaryRowConverter.appendValue(tupleBuilder, binarySchema.element(index), binarySchema.value(row, index)); } @@ -84,7 +96,7 @@ public class TableRowConverterImpl implements TableRowConverter { BinaryTupleBuilder tupleBuilder = new BinaryTupleBuilder(requiredColumns.cardinality()); for (int i = requiredColumns.nextSetBit(0); i != -1; i = requiredColumns.nextSetBit(i + 1)) { - int index = desc.columnDescriptor(i).physicalIndex(); + int index = physicalIndexMap[i]; BinaryRowConverter.appendValue(tupleBuilder, binarySchema.element(index), binarySchema.value(row, index)); }