You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ko...@apache.org on 2022/09/11 08:05:23 UTC

[ignite-3] branch main updated: IGNITE-17628 Get rid of Statement#prepared in public API (#1068)

This is an automated email from the ASF dual-hosted git repository.

korlov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 2049b5858c IGNITE-17628 Get rid of Statement#prepared in public API (#1068)
2049b5858c is described below

commit 2049b5858c3f6c50828045ff4d8fc987dd4626fe
Author: korlov42 <ko...@gridgain.com>
AuthorDate: Sun Sep 11 11:05:18 2022 +0300

    IGNITE-17628 Get rid of Statement#prepared in public API (#1068)
---
 .../main/java/org/apache/ignite/sql/Statement.java | 22 ----------------------
 .../requests/sql/ClientSqlExecuteRequest.java      |  1 -
 .../ignite/internal/client/sql/ClientSession.java  |  3 +--
 .../ignite/internal/client/sql/ClientSql.java      |  2 +-
 .../internal/client/sql/ClientStatement.java       | 15 +--------------
 .../client/sql/ClientStatementBuilder.java         | 18 ------------------
 .../dotnet/Apache.Ignite.Tests/FakeServer.cs       |  1 -
 .../Apache.Ignite.Tests/Sql/SqlStatementTests.cs   |  2 +-
 .../dotnet/Apache.Ignite.Tests/Sql/SqlTests.cs     |  4 +---
 .../dotnet/Apache.Ignite/Internal/Sql/Sql.cs       |  1 -
 .../dotnet/Apache.Ignite/Sql/SqlStatement.cs       | 10 +---------
 .../internal/sql/api/StatementBuilderImpl.java     | 17 -----------------
 .../ignite/internal/sql/api/StatementImpl.java     |  6 ------
 .../internal/sql/engine/IgniteSqlApiTest.java      | 10 ++++------
 14 files changed, 10 insertions(+), 102 deletions(-)

diff --git a/modules/api/src/main/java/org/apache/ignite/sql/Statement.java b/modules/api/src/main/java/org/apache/ignite/sql/Statement.java
index 3f73a6ecb0..2be06e8f29 100644
--- a/modules/api/src/main/java/org/apache/ignite/sql/Statement.java
+++ b/modules/api/src/main/java/org/apache/ignite/sql/Statement.java
@@ -61,13 +61,6 @@ public interface Statement extends AutoCloseable {
      */
     int pageSize();
 
-    /**
-     * Returns a value indicating whether this is a prepared statement.
-     *
-     * @return Whether this is a prepared statement.
-     */
-    boolean prepared();
-
     /**
      * Returns statement property value that overrides the session property value or {@code null} if session property value should be used.
      *
@@ -103,21 +96,6 @@ public interface Statement extends AutoCloseable {
          */
         StatementBuilder query(String sql);
 
-        /**
-         * Returns prepared flag.
-         *
-         * @return Prepared flag.
-         */
-        boolean prepared();
-
-        /**
-         * Marks current statement as prepared.
-         *
-         * @param prepared if {@code true} marks current statement as prepared.
-         * @return {@code this} for chaining.
-         */
-        StatementBuilder prepared(boolean prepared);
-
         /**
          * Returns query timeout.
          *
diff --git a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java
index ad106c35ef..9f2b450fdb 100644
--- a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java
+++ b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/requests/sql/ClientSqlExecuteRequest.java
@@ -121,7 +121,6 @@ public class ClientSqlExecuteRequest {
         StatementBuilder statementBuilder = sql.statementBuilder();
 
         statementBuilder.query(in.unpackString());
-        statementBuilder.prepared(in.unpackBoolean());
 
         return statementBuilder.build();
     }
diff --git a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSession.java b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSession.java
index 8c19fb211c..ea257719eb 100644
--- a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSession.java
+++ b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSession.java
@@ -89,7 +89,7 @@ public class ClientSession implements Session {
     public CompletableFuture<AsyncResultSet> executeAsync(@Nullable Transaction transaction, String query, @Nullable Object... arguments) {
         Objects.requireNonNull(query);
 
-        ClientStatement statement = new ClientStatement(query, null, false, null, null, null);
+        ClientStatement statement = new ClientStatement(query, null, null, null, null);
 
         return executeAsync(transaction, statement, arguments);
     }
@@ -120,7 +120,6 @@ public class ClientSession implements Session {
             packProperties(w, clientStatement.properties());
 
             w.out().packString(clientStatement.query());
-            w.out().packBoolean(clientStatement.prepared());
 
             w.out().packObjectArray(arguments);
         }, r -> new ClientAsyncResultSet(r.clientChannel(), r.in()));
diff --git a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSql.java b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSql.java
index 88dbbd15fa..76679a7e4f 100644
--- a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSql.java
+++ b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientSql.java
@@ -55,7 +55,7 @@ public class ClientSql implements IgniteSql {
     /** {@inheritDoc} */
     @Override
     public Statement createStatement(String query) {
-        return new ClientStatement(query, null, false, null, null, null);
+        return new ClientStatement(query, null, null, null, null);
     }
 
     /** {@inheritDoc} */
diff --git a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatement.java b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatement.java
index 6fc1c1cdd9..ad5ea7bc74 100644
--- a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatement.java
+++ b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatement.java
@@ -34,9 +34,6 @@ public class ClientStatement implements Statement {
     /** Default schema. */
     private final String defaultSchema;
 
-    /** Prepared flag. */
-    private final boolean prepared;
-
     /** Query timeout. */
     private final Long queryTimeoutMs;
 
@@ -51,7 +48,6 @@ public class ClientStatement implements Statement {
      *
      * @param query Query.
      * @param defaultSchema Default schema.
-     * @param prepared Prepared.
      * @param queryTimeoutMs Timeout
      * @param pageSize Page size.
      * @param properties Properties.
@@ -60,7 +56,6 @@ public class ClientStatement implements Statement {
     public ClientStatement(
             String query,
             String defaultSchema,
-            boolean prepared,
             Long queryTimeoutMs,
             Integer pageSize,
             Map<String, Object> properties) {
@@ -68,7 +63,6 @@ public class ClientStatement implements Statement {
 
         this.query = query;
         this.defaultSchema = defaultSchema;
-        this.prepared = prepared;
         this.queryTimeoutMs = queryTimeoutMs;
         this.pageSize = pageSize;
         this.properties = properties;
@@ -118,12 +112,6 @@ public class ClientStatement implements Statement {
         return pageSize;
     }
 
-    /** {@inheritDoc} */
-    @Override
-    public boolean prepared() {
-        return prepared;
-    }
-
     /** {@inheritDoc} */
     @Override
     public @Nullable Object property(@NotNull String name) {
@@ -145,8 +133,7 @@ public class ClientStatement implements Statement {
     public StatementBuilder toBuilder() {
         var builder = new ClientStatementBuilder()
                 .query(query)
-                .defaultSchema(defaultSchema)
-                .prepared(prepared);
+                .defaultSchema(defaultSchema);
 
         if (pageSize != null) {
             builder.pageSize(pageSize);
diff --git a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatementBuilder.java b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatementBuilder.java
index a966e3463b..42c389ec1f 100644
--- a/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatementBuilder.java
+++ b/modules/client/src/main/java/org/apache/ignite/internal/client/sql/ClientStatementBuilder.java
@@ -39,9 +39,6 @@ public class ClientStatementBuilder implements Statement.StatementBuilder {
     /** Default schema. */
     private String defaultSchema;
 
-    /** Prepared flag. */
-    private boolean prepared;
-
     /** Query timeout. */
     private Long queryTimeoutMs;
 
@@ -62,20 +59,6 @@ public class ClientStatementBuilder implements Statement.StatementBuilder {
         return this;
     }
 
-    /** {@inheritDoc} */
-    @Override
-    public boolean prepared() {
-        return prepared;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public StatementBuilder prepared(boolean prepared) {
-        this.prepared = prepared;
-
-        return this;
-    }
-
     /** {@inheritDoc} */
     @Override
     public long queryTimeout(@NotNull TimeUnit timeUnit) {
@@ -142,7 +125,6 @@ public class ClientStatementBuilder implements Statement.StatementBuilder {
         return new ClientStatement(
                 query,
                 defaultSchema,
-                prepared,
                 queryTimeoutMs,
                 pageSize,
                 new HashMap<>(properties));
diff --git a/modules/platforms/dotnet/Apache.Ignite.Tests/FakeServer.cs b/modules/platforms/dotnet/Apache.Ignite.Tests/FakeServer.cs
index ab20970e67..40b4845187 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Tests/FakeServer.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Tests/FakeServer.cs
@@ -189,7 +189,6 @@ namespace Apache.Ignite.Tests
 
             var sql = reader.ReadString();
             props["sql"] = sql;
-            props["prepared"] = reader.ReadBoolean();
 
             using var arrayBufferWriter = new PooledArrayBufferWriter();
             var writer = new MessagePackWriter(arrayBufferWriter);
diff --git a/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlStatementTests.cs b/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlStatementTests.cs
index 0a70050a46..b3e0796644 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlStatementTests.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlStatementTests.cs
@@ -78,7 +78,7 @@ namespace Apache.Ignite.Tests.Sql
                 });
 
             var expected = "SqlStatement { Query = select foo from bar, Timeout = 00:00:01, Schema = schema2, PageSize = 256, " +
-                           "Prepared = False, Properties = { a = 1, b = 02:00:00 } }";
+                           "Properties = { a = 1, b = 02:00:00 } }";
 
             Assert.AreEqual(expected, s.ToString());
         }
diff --git a/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlTests.cs b/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlTests.cs
index ddfec19d2e..5d10eadc16 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlTests.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Tests/Sql/SqlTests.cs
@@ -255,7 +255,6 @@ namespace Apache.Ignite.Tests.Sql
                 timeout: TimeSpan.FromSeconds(123),
                 schema: "schema-1",
                 pageSize: 987,
-                prepared: true,
                 properties: new Dictionary<string, object?> { { "prop1", 10 }, { "prop-2", "xyz" } });
 
             var res = await client.Sql.ExecuteAsync(null, sqlStatement);
@@ -263,13 +262,12 @@ namespace Apache.Ignite.Tests.Sql
             var props = rows.ToDictionary(x => (string)x["NAME"]!, x => (string)x["VAL"]!);
 
             Assert.IsTrue(res.HasRowSet);
-            Assert.AreEqual(9, props.Count);
+            Assert.AreEqual(8, props.Count);
 
             Assert.AreEqual("schema-1", props["schema"]);
             Assert.AreEqual("987", props["pageSize"]);
             Assert.AreEqual("123000", props["timeoutMs"]);
             Assert.AreEqual("SELECT PROPS", props["sql"]);
-            Assert.AreEqual("True", props["prepared"]);
             Assert.AreEqual("10", props["prop1"]);
             Assert.AreEqual("xyz", props["prop-2"]);
         }
diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs
index 48d2f9fdba..e92af06367 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs
@@ -77,7 +77,6 @@ namespace Apache.Ignite.Internal.Sql
                 }
 
                 w.Write(statement.Query);
-                w.Write(statement.Prepared);
 
                 w.WriteObjectArrayWithTypes(args);
 
diff --git a/modules/platforms/dotnet/Apache.Ignite/Sql/SqlStatement.cs b/modules/platforms/dotnet/Apache.Ignite/Sql/SqlStatement.cs
index 832b252057..b87890f7c4 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Sql/SqlStatement.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Sql/SqlStatement.cs
@@ -55,14 +55,12 @@ namespace Apache.Ignite.Sql
         /// <param name="timeout">Timeout.</param>
         /// <param name="schema">Schema.</param>
         /// <param name="pageSize">Page size.</param>
-        /// <param name="prepared">Prepared statement mode.</param>
         /// <param name="properties">Properties.</param>
         public SqlStatement(
             string query,
             TimeSpan? timeout = null,
             string? schema = null,
             int? pageSize = null,
-            bool prepared = false,
             IReadOnlyDictionary<string, object?>? properties = null)
         {
             IgniteArgumentCheck.NotNull(query, nameof(query));
@@ -72,7 +70,6 @@ namespace Apache.Ignite.Sql
             Timeout = timeout ?? DefaultTimeout;
             Schema = schema ?? DefaultSchema;
             PageSize = pageSize ?? DefaultPageSize;
-            Prepared = prepared;
             Properties = properties == null || properties == EmptyProperties ? EmptyProperties : new(properties);
         }
 
@@ -96,11 +93,6 @@ namespace Apache.Ignite.Sql
         /// </summary>
         public int PageSize { get; init; }
 
-        /// <summary>
-        /// Gets a value indicating whether this is a prepared statement.
-        /// </summary>
-        public bool Prepared { get; init; }
-
         /// <summary>
         /// Gets the property bag.
         /// </summary>
@@ -127,7 +119,7 @@ namespace Apache.Ignite.Sql
 
             builder
                 .Append("SqlStatement { ")
-                .Append($"Query = {Query}, Timeout = {Timeout}, Schema = {Schema}, PageSize = {PageSize}, Prepared = {Prepared}, ")
+                .Append($"Query = {Query}, Timeout = {Timeout}, Schema = {Schema}, PageSize = {PageSize}, ")
                 .Append("Properties = {");
 
             var first = true;
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/StatementBuilderImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/StatementBuilderImpl.java
index 5002888b6a..893fa24d18 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/StatementBuilderImpl.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/StatementBuilderImpl.java
@@ -39,9 +39,6 @@ class StatementBuilderImpl implements StatementBuilder {
     /** Default schema. */
     private String defaultSchema;
 
-    /** Prepared flag. */
-    private boolean prepared;
-
     /** Query timeout. */
     private Long queryTimeoutMs;
 
@@ -62,20 +59,6 @@ class StatementBuilderImpl implements StatementBuilder {
         return this;
     }
 
-    /** {@inheritDoc} */
-    @Override
-    public boolean prepared() {
-        return prepared;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public StatementBuilder prepared(boolean prepared) {
-        this.prepared = prepared;
-
-        return this;
-    }
-
     /** {@inheritDoc} */
     @Override
     public long queryTimeout(@NotNull TimeUnit timeUnit) {
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/StatementImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/StatementImpl.java
index 5a3df6a480..910190f948 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/StatementImpl.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/api/StatementImpl.java
@@ -62,12 +62,6 @@ class StatementImpl implements Statement {
         throw new UnsupportedOperationException("Not implemented yet.");
     }
 
-    /** {@inheritDoc} */
-    @Override
-    public boolean prepared() {
-        throw new UnsupportedOperationException("Not implemented yet.");
-    }
-
     /** {@inheritDoc} */
     @Override
     public @Nullable Object property(@NotNull String name) {
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/IgniteSqlApiTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/IgniteSqlApiTest.java
index a91d14476a..eb60c6a57e 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/IgniteSqlApiTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/IgniteSqlApiTest.java
@@ -105,19 +105,18 @@ public class IgniteSqlApiTest {
                 .property("memoryQuota", 10 * Constants.MiB) // Set default quota.
                 .build();
 
-        // Statement with params. Prepared statement.
-        Statement preparedStatement = igniteSql.statementBuilder()
+        // Statement with params.
+        Statement statementWipParams = igniteSql.statementBuilder()
                 .query("SELECT id, val FROM tbl WHERE id > ?")
                 .defaultSchema("PUBLIC")
-                .prepared(true)
                 .build();
 
         // Execute statement.
         session.execute(null, simpleStatement,  /* args */ 1);
 
         // Execute same statement in different sessions is allowed.
-        session.execute(null, preparedStatement,  /* args */ 1);
-        sessionWithParams.execute(null, preparedStatement,  /* args */ 1);
+        session.execute(null, statementWipParams,  /* args */ 1);
+        sessionWithParams.execute(null, statementWipParams,  /* args */ 1);
 
         // Releasing session resources.
         session.close();
@@ -421,7 +420,6 @@ public class IgniteSqlApiTest {
         Mockito.when(stmtBuilder.pageSize(Mockito.anyInt())).thenAnswer(Answers.RETURNS_SELF);
         Mockito.when(stmtBuilder.queryTimeout(Mockito.anyLong(), Mockito.any(TimeUnit.class))).thenAnswer(Answers.RETURNS_SELF);
         Mockito.when(stmtBuilder.property(Mockito.anyString(), Mockito.any())).thenAnswer(Answers.RETURNS_SELF);
-        Mockito.when(stmtBuilder.prepared(Mockito.anyBoolean())).thenAnswer(Answers.RETURNS_SELF);
         Mockito.when(stmtBuilder.build()).thenReturn(statement);
 
         Mockito.when(igniteSql.createSession()).thenReturn(session);