This is an automated email from the ASF dual-hosted git repository. shishkovilja pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push: new 32955bbce79 IGNITE-26440 Use MessageSerializer for GridCacheSqlQuery (#12348) 32955bbce79 is described below commit 32955bbce79f21bd2fed21efecd357c75e58c047 Author: Dmitry Werner <grimekil...@gmail.com> AuthorDate: Wed Sep 17 13:12:14 2025 +0500 IGNITE-26440 Use MessageSerializer for GridCacheSqlQuery (#12348) --- .../communication/GridIoMessageFactory.java | 3 +- .../processors/cache/query/GridCacheSqlQuery.java | 131 ++------------------- .../query/h2/twostep/GridReduceQueryExecutor.java | 6 +- 3 files changed, 19 insertions(+), 121 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java index b0f1f0e62ad..f48f7c3a599 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java @@ -30,6 +30,7 @@ import org.apache.ignite.internal.codegen.CacheGroupAffinityMessageSerializer; import org.apache.ignite.internal.codegen.CacheVersionedValueSerializer; import org.apache.ignite.internal.codegen.GenerateEncryptionKeyRequestSerializer; import org.apache.ignite.internal.codegen.GridCacheEntryInfoSerializer; +import org.apache.ignite.internal.codegen.GridCacheSqlQuerySerializer; import org.apache.ignite.internal.codegen.GridCacheVersionExSerializer; import org.apache.ignite.internal.codegen.GridCacheVersionSerializer; import org.apache.ignite.internal.codegen.GridCheckpointRequestSerializer; @@ -322,7 +323,7 @@ public class GridIoMessageFactory implements MessageFactoryProvider { factory.register((short)107, GridQueryFailResponse::new, new GridQueryFailResponseSerializer()); factory.register((short)108, GridQueryNextPageRequest::new, new GridQueryNextPageRequestSerializer()); factory.register((short)109, GridQueryNextPageResponse::new, new GridQueryNextPageResponseSerializer()); - factory.register((short)112, GridCacheSqlQuery::new); + factory.register((short)112, GridCacheSqlQuery::new, new GridCacheSqlQuerySerializer()); // 113 - BinaryObjectImpl factory.register((short)114, GridDhtPartitionSupplyMessage::new); factory.register((short)115, UUIDCollectionMessage::new); diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java index e81e1d62117..bb42eafabc0 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheSqlQuery.java @@ -17,73 +17,60 @@ package org.apache.ignite.internal.processors.cache.query; -import java.io.Serializable; -import java.nio.ByteBuffer; import java.util.LinkedHashMap; import java.util.List; import java.util.UUID; -import org.apache.ignite.internal.GridDirectTransient; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.util.tostring.GridToStringInclude; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.A; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.plugin.extensions.communication.Message; -import org.apache.ignite.plugin.extensions.communication.MessageReader; -import org.apache.ignite.plugin.extensions.communication.MessageWriter; /** * Query. */ -public class GridCacheSqlQuery implements Message, Serializable { - /** */ - private static final long serialVersionUID = 0L; - +public class GridCacheSqlQuery implements Message { /** */ public static final Object[] EMPTY_PARAMS = {}; /** */ + @Order(value = 0, method = "query") @GridToStringInclude(sensitive = true) private String qry; /** */ + @Order(value = 1, method = "parameterIndexes") @GridToStringInclude private int[] paramIdxs; /** */ @GridToStringInclude - @GridDirectTransient private LinkedHashMap<String, ?> cols; - /** Field kept for backward compatibility. */ - private String alias; - /** Sort columns. */ @GridToStringInclude - @GridDirectTransient - private transient List<?> sort; + private List<?> sort; /** If we have partitioned tables in this query. */ @GridToStringInclude - @GridDirectTransient - private transient boolean partitioned; + private boolean partitioned; /** Single node to execute the query on. */ + @Order(2) private UUID node; /** Derived partition info. */ @GridToStringInclude - @GridDirectTransient - private transient Object derivedPartitions; + private Object derivedPartitions; /** Flag indicating that query contains sub-queries. */ @GridToStringInclude - @GridDirectTransient - private transient boolean hasSubQries; + private boolean hasSubQries; /** Flag indicating that the query contains an OUTER JOIN from REPLICATED to PARTITIONED. */ @GridToStringInclude - @GridDirectTransient - private transient boolean treatPartitionedAsReplicated; + private boolean treatPartitionedAsReplicated; /** * Empty constructor. @@ -127,12 +114,9 @@ public class GridCacheSqlQuery implements Message, Serializable { /** * @param qry Query. - * @return {@code this}. */ - public GridCacheSqlQuery query(String qry) { + public void query(String qry) { this.qry = qry; - - return this; } /** @@ -144,12 +128,9 @@ public class GridCacheSqlQuery implements Message, Serializable { /** * @param paramIdxs Parameter indexes. - * @return {@code this}. */ - public GridCacheSqlQuery parameterIndexes(int[] paramIdxs) { + public void parameterIndexes(int[] paramIdxs) { this.paramIdxs = paramIdxs; - - return this; } /** {@inheritDoc} */ @@ -157,89 +138,6 @@ public class GridCacheSqlQuery implements Message, Serializable { return S.toString(GridCacheSqlQuery.class, this); } - /** {@inheritDoc} */ - @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { - writer.setBuffer(buf); - - if (!writer.isHeaderWritten()) { - if (!writer.writeHeader(directType())) - return false; - - writer.onHeaderWritten(); - } - - switch (writer.state()) { - case 0: - if (!writer.writeString(alias)) - return false; - - writer.incrementState(); - - case 1: - if (!writer.writeUuid(node)) - return false; - - writer.incrementState(); - - case 2: - if (!writer.writeIntArray(paramIdxs)) - return false; - - writer.incrementState(); - - case 3: - if (!writer.writeString(qry)) - return false; - - writer.incrementState(); - - } - - return true; - } - - /** {@inheritDoc} */ - @Override public boolean readFrom(ByteBuffer buf, MessageReader reader) { - reader.setBuffer(buf); - - switch (reader.state()) { - case 0: - alias = reader.readString(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 1: - node = reader.readUuid(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 2: - paramIdxs = reader.readIntArray(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - case 3: - qry = reader.readString(); - - if (!reader.isLastRead()) - return false; - - reader.incrementState(); - - } - - return true; - } - /** {@inheritDoc} */ @Override public short directType() { return 112; @@ -299,12 +197,9 @@ public class GridCacheSqlQuery implements Message, Serializable { /** * @param node Single node to execute the query on or {@code null} if need to execute on all the nodes. - * @return {@code this}. */ - public GridCacheSqlQuery node(UUID node) { + public void node(UUID node) { this.node = node; - - return this; } /** diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java index 28c0fcf49ab..47040b1767c 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java @@ -745,8 +745,10 @@ public class GridReduceQueryExecutor { mapQueries.add(copy); - if (qry.explain()) - copy.query("EXPLAIN " + mapQry.query()).parameterIndexes(mapQry.parameterIndexes()); + if (qry.explain()) { + copy.query("EXPLAIN " + mapQry.query()); + copy.parameterIndexes(mapQry.parameterIndexes()); + } } } }