This is an automated email from the ASF dual-hosted git repository.
nizhikov 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 39c58b0bf53 [MINOR] Minify visibility of BinaryUtils doReadXXXArray
methods (#12213)
39c58b0bf53 is described below
commit 39c58b0bf53fb59f7707c37ea2a3182eda0a138c
Author: Nikolay <[email protected]>
AuthorDate: Wed Jul 23 12:29:19 2025 +0300
[MINOR] Minify visibility of BinaryUtils doReadXXXArray methods (#12213)
---
.../apache/ignite/internal/binary/BinaryUtils.java | 150 ++++++++++++++++++---
.../internal/processors/odbc/SqlListenerUtils.java | 119 ++--------------
2 files changed, 139 insertions(+), 130 deletions(-)
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
index 49964fff8a1..6fcafb4a289 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
@@ -1158,7 +1158,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static byte[] doReadByteArray(BinaryInputStream in) {
+ static byte[] doReadByteArray(BinaryInputStream in) {
int len = in.readInt();
return in.readByteArray(len);
@@ -1167,7 +1167,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static boolean[] doReadBooleanArray(BinaryInputStream in) {
+ static boolean[] doReadBooleanArray(BinaryInputStream in) {
int len = in.readInt();
return in.readBooleanArray(len);
@@ -1176,7 +1176,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static short[] doReadShortArray(BinaryInputStream in) {
+ static short[] doReadShortArray(BinaryInputStream in) {
int len = in.readInt();
return in.readShortArray(len);
@@ -1185,7 +1185,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static char[] doReadCharArray(BinaryInputStream in) {
+ static char[] doReadCharArray(BinaryInputStream in) {
int len = in.readInt();
return in.readCharArray(len);
@@ -1194,7 +1194,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static int[] doReadIntArray(BinaryInputStream in) {
+ static int[] doReadIntArray(BinaryInputStream in) {
int len = in.readInt();
return in.readIntArray(len);
@@ -1203,7 +1203,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static long[] doReadLongArray(BinaryInputStream in) {
+ static long[] doReadLongArray(BinaryInputStream in) {
int len = in.readInt();
return in.readLongArray(len);
@@ -1212,7 +1212,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static float[] doReadFloatArray(BinaryInputStream in) {
+ static float[] doReadFloatArray(BinaryInputStream in) {
int len = in.readInt();
return in.readFloatArray(len);
@@ -1221,7 +1221,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static double[] doReadDoubleArray(BinaryInputStream in) {
+ static double[] doReadDoubleArray(BinaryInputStream in) {
int len = in.readInt();
return in.readDoubleArray(len);
@@ -1230,7 +1230,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static BigDecimal doReadDecimal(BinaryInputStream in) {
+ static BigDecimal doReadDecimal(BinaryInputStream in) {
int scale = in.readInt();
byte[] mag = doReadByteArray(in);
@@ -1250,7 +1250,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static String doReadString(BinaryInputStream in) {
+ static String doReadString(BinaryInputStream in) {
if (!in.hasArray()) {
byte[] arr = doReadByteArray(in);
@@ -1282,14 +1282,14 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static UUID doReadUuid(BinaryInputStream in) {
+ static UUID doReadUuid(BinaryInputStream in) {
return new UUID(in.readLong(), in.readLong());
}
/**
* @return Value.
*/
- public static Date doReadDate(BinaryInputStream in) {
+ static Date doReadDate(BinaryInputStream in) {
long time = in.readLong();
return new Date(time);
@@ -1298,7 +1298,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static Timestamp doReadTimestamp(BinaryInputStream in) {
+ static Timestamp doReadTimestamp(BinaryInputStream in) {
long time = in.readLong();
int nanos = in.readInt();
@@ -1312,7 +1312,7 @@ public class BinaryUtils {
/**
* @return Value.
*/
- public static Time doReadTime(BinaryInputStream in) {
+ static Time doReadTime(BinaryInputStream in) {
long time = in.readLong();
return new Time(time);
@@ -1322,7 +1322,7 @@ public class BinaryUtils {
* @return Value.
* @throws BinaryObjectException In case of error.
*/
- public static BigDecimal[] doReadDecimalArray(BinaryInputStream in) throws
BinaryObjectException {
+ static BigDecimal[] doReadDecimalArray(BinaryInputStream in) throws
BinaryObjectException {
int len = in.readInt();
BigDecimal[] arr = new BigDecimal[len];
@@ -1372,7 +1372,7 @@ public class BinaryUtils {
* @return Value.
* @throws BinaryObjectException In case of error.
*/
- public static UUID[] doReadUuidArray(BinaryInputStream in) throws
BinaryObjectException {
+ static UUID[] doReadUuidArray(BinaryInputStream in) throws
BinaryObjectException {
int len = in.readInt();
UUID[] arr = new UUID[len];
@@ -1397,7 +1397,7 @@ public class BinaryUtils {
* @return Value.
* @throws BinaryObjectException In case of error.
*/
- public static Date[] doReadDateArray(BinaryInputStream in) throws
BinaryObjectException {
+ static Date[] doReadDateArray(BinaryInputStream in) throws
BinaryObjectException {
int len = in.readInt();
Date[] arr = new Date[len];
@@ -1422,7 +1422,7 @@ public class BinaryUtils {
* @return Value.
* @throws BinaryObjectException In case of error.
*/
- public static Timestamp[] doReadTimestampArray(BinaryInputStream in)
throws BinaryObjectException {
+ static Timestamp[] doReadTimestampArray(BinaryInputStream in) throws
BinaryObjectException {
int len = in.readInt();
Timestamp[] arr = new Timestamp[len];
@@ -1447,7 +1447,7 @@ public class BinaryUtils {
* @return Value.
* @throws BinaryObjectException In case of error.
*/
- public static Time[] doReadTimeArray(BinaryInputStream in) throws
BinaryObjectException {
+ static Time[] doReadTimeArray(BinaryInputStream in) throws
BinaryObjectException {
int len = in.readInt();
Time[] arr = new Time[len];
@@ -2029,6 +2029,118 @@ public class BinaryUtils {
}
}
+ /**
+ * Unmarshall JDBC supported type.
+ * @param type Type.
+ * @param reader Binary reader.
+ * @param binObjAllow Allow to read non plaint objects.
+ * @param keepBinary Whether to deserialize objects or keep in binary
format.
+ * @return Read object.
+ */
+ public static Object unmarshallJdbc(byte type, BinaryReaderEx reader,
boolean binObjAllow, boolean keepBinary) {
+ switch (type) {
+ case GridBinaryMarshaller.NULL:
+ return null;
+
+ case GridBinaryMarshaller.BOOLEAN:
+ return reader.readBoolean();
+
+ case GridBinaryMarshaller.BYTE:
+ return reader.readByte();
+
+ case GridBinaryMarshaller.CHAR:
+ return reader.readChar();
+
+ case GridBinaryMarshaller.SHORT:
+ return reader.readShort();
+
+ case GridBinaryMarshaller.INT:
+ return reader.readInt();
+
+ case GridBinaryMarshaller.LONG:
+ return reader.readLong();
+
+ case GridBinaryMarshaller.FLOAT:
+ return reader.readFloat();
+
+ case GridBinaryMarshaller.DOUBLE:
+ return reader.readDouble();
+
+ case GridBinaryMarshaller.STRING:
+ return doReadString(reader.in());
+
+ case GridBinaryMarshaller.DECIMAL:
+ return doReadDecimal(reader.in());
+
+ case GridBinaryMarshaller.UUID:
+ return doReadUuid(reader.in());
+
+ case GridBinaryMarshaller.TIME:
+ return doReadTime(reader.in());
+
+ case GridBinaryMarshaller.TIMESTAMP:
+ return doReadTimestamp(reader.in());
+
+ case GridBinaryMarshaller.DATE:
+ return doReadDate(reader.in());
+
+ case GridBinaryMarshaller.BOOLEAN_ARR:
+ return doReadBooleanArray(reader.in());
+
+ case GridBinaryMarshaller.BYTE_ARR:
+ return doReadByteArray(reader.in());
+
+ case GridBinaryMarshaller.CHAR_ARR:
+ return doReadCharArray(reader.in());
+
+ case GridBinaryMarshaller.SHORT_ARR:
+ return doReadShortArray(reader.in());
+
+ case GridBinaryMarshaller.INT_ARR:
+ return doReadIntArray(reader.in());
+
+ case GridBinaryMarshaller.LONG_ARR:
+ return doReadLongArray(reader.in());
+
+ case GridBinaryMarshaller.FLOAT_ARR:
+ return doReadFloatArray(reader.in());
+
+ case GridBinaryMarshaller.DOUBLE_ARR:
+ return doReadDoubleArray(reader.in());
+
+ case GridBinaryMarshaller.STRING_ARR:
+ return doReadStringArray(reader.in());
+
+ case GridBinaryMarshaller.DECIMAL_ARR:
+ return doReadDecimalArray(reader.in());
+
+ case GridBinaryMarshaller.UUID_ARR:
+ return doReadUuidArray(reader.in());
+
+ case GridBinaryMarshaller.TIME_ARR:
+ return doReadTimeArray(reader.in());
+
+ case GridBinaryMarshaller.TIMESTAMP_ARR:
+ return doReadTimestampArray(reader.in());
+
+ case GridBinaryMarshaller.DATE_ARR:
+ return doReadDateArray(reader.in());
+
+ default:
+ reader.in().position(reader.in().position() - 1);
+
+ if (binObjAllow) {
+ Object res = reader.readObjectDetached();
+
+ return !keepBinary && res instanceof BinaryObject
+ ? ((BinaryObject)res).deserialize()
+ : res;
+ }
+ else
+ throw new BinaryObjectException("Custom objects are not
supported");
+ }
+ }
+
/**
* @param in Binary input stream.
* @param ctx Binary context.
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/SqlListenerUtils.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/SqlListenerUtils.java
index db3971a7b03..86b0697d664 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/SqlListenerUtils.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/odbc/SqlListenerUtils.java
@@ -23,7 +23,6 @@ import java.sql.SQLException;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.UUID;
-import org.apache.ignite.binary.BinaryObject;
import org.apache.ignite.binary.BinaryObjectException;
import org.apache.ignite.cache.query.QueryCancelledException;
import org.apache.ignite.internal.binary.BinaryReaderEx;
@@ -88,107 +87,10 @@ public abstract class SqlListenerUtils {
*/
@Nullable public static Object readObject(byte type, BinaryReaderEx
reader, boolean binObjAllow,
boolean keepBinary, boolean createByteArrayCopy) throws
BinaryObjectException {
- switch (type) {
- case GridBinaryMarshaller.NULL:
- return null;
+ if (type == GridBinaryMarshaller.BYTE_ARR && !createByteArrayCopy &&
reader.in().hasArray())
+ return readJdbcByteArray(reader);
- case GridBinaryMarshaller.BOOLEAN:
- return reader.readBoolean();
-
- case GridBinaryMarshaller.BYTE:
- return reader.readByte();
-
- case GridBinaryMarshaller.CHAR:
- return reader.readChar();
-
- case GridBinaryMarshaller.SHORT:
- return reader.readShort();
-
- case GridBinaryMarshaller.INT:
- return reader.readInt();
-
- case GridBinaryMarshaller.LONG:
- return reader.readLong();
-
- case GridBinaryMarshaller.FLOAT:
- return reader.readFloat();
-
- case GridBinaryMarshaller.DOUBLE:
- return reader.readDouble();
-
- case GridBinaryMarshaller.STRING:
- return BinaryUtils.doReadString(reader.in());
-
- case GridBinaryMarshaller.DECIMAL:
- return BinaryUtils.doReadDecimal(reader.in());
-
- case GridBinaryMarshaller.UUID:
- return BinaryUtils.doReadUuid(reader.in());
-
- case GridBinaryMarshaller.TIME:
- return BinaryUtils.doReadTime(reader.in());
-
- case GridBinaryMarshaller.TIMESTAMP:
- return BinaryUtils.doReadTimestamp(reader.in());
-
- case GridBinaryMarshaller.DATE:
- return BinaryUtils.doReadDate(reader.in());
-
- case GridBinaryMarshaller.BOOLEAN_ARR:
- return BinaryUtils.doReadBooleanArray(reader.in());
-
- case GridBinaryMarshaller.BYTE_ARR:
- return readByteArray(reader, createByteArrayCopy);
-
- case GridBinaryMarshaller.CHAR_ARR:
- return BinaryUtils.doReadCharArray(reader.in());
-
- case GridBinaryMarshaller.SHORT_ARR:
- return BinaryUtils.doReadShortArray(reader.in());
-
- case GridBinaryMarshaller.INT_ARR:
- return BinaryUtils.doReadIntArray(reader.in());
-
- case GridBinaryMarshaller.LONG_ARR:
- return BinaryUtils.doReadLongArray(reader.in());
-
- case GridBinaryMarshaller.FLOAT_ARR:
- return BinaryUtils.doReadFloatArray(reader.in());
-
- case GridBinaryMarshaller.DOUBLE_ARR:
- return BinaryUtils.doReadDoubleArray(reader.in());
-
- case GridBinaryMarshaller.STRING_ARR:
- return BinaryUtils.doReadStringArray(reader.in());
-
- case GridBinaryMarshaller.DECIMAL_ARR:
- return BinaryUtils.doReadDecimalArray(reader.in());
-
- case GridBinaryMarshaller.UUID_ARR:
- return BinaryUtils.doReadUuidArray(reader.in());
-
- case GridBinaryMarshaller.TIME_ARR:
- return BinaryUtils.doReadTimeArray(reader.in());
-
- case GridBinaryMarshaller.TIMESTAMP_ARR:
- return BinaryUtils.doReadTimestampArray(reader.in());
-
- case GridBinaryMarshaller.DATE_ARR:
- return BinaryUtils.doReadDateArray(reader.in());
-
- default:
- reader.in().position(reader.in().position() - 1);
-
- if (binObjAllow) {
- Object res = reader.readObjectDetached();
-
- return !keepBinary && res instanceof BinaryObject
- ? ((BinaryObject)res).deserialize()
- : res;
- }
- else
- throw new BinaryObjectException("Custom objects are not
supported");
- }
+ return BinaryUtils.unmarshallJdbc(type, reader, binObjAllow,
keepBinary);
}
/**
@@ -199,21 +101,16 @@ public abstract class SqlListenerUtils {
* the reader's input stream in a copy-on-write manner.
*
* @param reader Reader.
- * @param createByteArrayCopy Whether create new byte array copy or try to
create copy-on-write buffer.
* @return Either byte[] or {@link JdbcBinaryBuffer}.
*/
- private static Object readByteArray(BinaryReaderEx reader, boolean
createByteArrayCopy) {
- if (!createByteArrayCopy && reader.in().hasArray()) {
- int len = reader.in().readInt();
+ private static Object readJdbcByteArray(BinaryReaderEx reader) {
+ int len = reader.in().readInt();
- int position = reader.in().position();
+ int position = reader.in().position();
- reader.in().position(position + len);
+ reader.in().position(position + len);
- return JdbcBinaryBuffer.createReadOnly(reader.in().array(),
position, len);
- }
- else
- return BinaryUtils.doReadByteArray(reader.in());
+ return JdbcBinaryBuffer.createReadOnly(reader.in().array(), position,
len);
}
/**