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 <[email protected]>
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());
+ }
}
}
}