You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by co...@apache.org on 2025/03/25 00:32:22 UTC

(tinkerpop) branch master updated (3958d5f9a5 -> 08c0fab828)

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

colegreer pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


    from 3958d5f9a5 Merge branch '3.8-dev'
     add f645645ede Changed GenericLiteralVisitor to treat float literals as Double by default (#3074)
     add 6ade7674b2 CTR fix GeneralLiteralVisitorTest
     new 08c0fab828 Merge branch '3.8-dev'

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.asciidoc                                 |  1 +
 docs/src/upgrade/release-3.8.x.asciidoc            |  5 ++++
 .../language/grammar/GenericLiteralVisitor.java    |  2 +-
 .../grammar/GeneralLiteralVisitorTest.java         | 30 ++++++++++++++--------
 .../grammar/TraversalPredicateVisitorTest.java     |  4 +--
 .../gremlin/server/GremlinServerIntegrateTest.java | 23 ++++++++++++++---
 6 files changed, 47 insertions(+), 18 deletions(-)


(tinkerpop) 01/01: Merge branch '3.8-dev'

Posted by co...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

colegreer pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 08c0fab82834b305ac276d0f4d768d08aeb7c8b8
Merge: 3958d5f9a5 6ade7674b2
Author: Cole-Greer <Co...@improving.com>
AuthorDate: Mon Mar 24 17:32:09 2025 -0700

    Merge branch '3.8-dev'

 CHANGELOG.asciidoc                                 |  1 +
 docs/src/upgrade/release-3.8.x.asciidoc            |  5 ++++
 .../language/grammar/GenericLiteralVisitor.java    |  2 +-
 .../grammar/GeneralLiteralVisitorTest.java         | 30 ++++++++++++++--------
 .../grammar/TraversalPredicateVisitorTest.java     |  4 +--
 .../gremlin/server/GremlinServerIntegrateTest.java | 23 ++++++++++++++---
 6 files changed, 47 insertions(+), 18 deletions(-)

diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
index 7c9a342340,5424e9faa6..bf2267ffef
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
@@@ -18,16 -18,25 +18,17 @@@
   */
  package org.apache.tinkerpop.gremlin.server;
  
 -import ch.qos.logback.classic.Level;
 -import ch.qos.logback.classic.Logger;
  import io.netty.channel.ChannelHandlerContext;
 +import io.netty.handler.codec.http.HttpResponseStatus;
  import io.netty.util.AttributeKey;
+ import java.math.BigDecimal;
  import nl.altindag.log.LogCaptor;
  import org.apache.commons.configuration2.BaseConfiguration;
  import org.apache.commons.configuration2.Configuration;
--import org.apache.commons.lang3.RandomStringUtils;
- import org.apache.commons.lang3.StringUtils;
  import org.apache.tinkerpop.gremlin.driver.RequestOptions;
+ import org.apache.tinkerpop.gremlin.server.channel.HttpTestChannelizer;
+ import org.apache.tinkerpop.gremlin.server.channel.TestChannelizer;
 -import org.apache.tinkerpop.gremlin.server.channel.UnifiedChannelizer;
 -import org.apache.tinkerpop.gremlin.server.channel.UnifiedTestChannelizer;
 -import org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer;
 -import org.apache.tinkerpop.gremlin.server.channel.WebSocketTestChannelizer;
 -import org.apache.tinkerpop.gremlin.server.channel.WsAndHttpTestChannelizer;
  import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 -import org.apache.tinkerpop.gremlin.util.ExceptionHelper;
  import org.apache.tinkerpop.gremlin.TestHelper;
  import org.apache.tinkerpop.gremlin.driver.Client;
  import org.apache.tinkerpop.gremlin.driver.Cluster;
@@@ -44,10 -58,13 +45,8 @@@ import org.apache.tinkerpop.gremlin.jsr
  import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
  import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
  import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
- import org.apache.tinkerpop.gremlin.server.channel.HttpTestChannelizer;
- import org.apache.tinkerpop.gremlin.server.channel.TestChannelizer;
 -import org.apache.tinkerpop.gremlin.server.op.AbstractEvalOpProcessor;
 -import org.apache.tinkerpop.gremlin.server.op.standard.StandardOpProcessor;
 -import org.apache.tinkerpop.gremlin.server.handler.WsUserAgentHandler;
  import org.apache.tinkerpop.gremlin.structure.Graph;
 +import org.apache.tinkerpop.gremlin.structure.RemoteGraph;
  import org.apache.tinkerpop.gremlin.structure.T;
  import org.apache.tinkerpop.gremlin.structure.Vertex;
  import org.apache.tinkerpop.gremlin.structure.Edge;
@@@ -1026,51 -1404,19 +1025,67 @@@ public class GremlinServerIntegrateTes
          assertFalse(r2_tokens.properties().hasNext());
      }
  
 +	@Test
 +    public void shouldBulkResultsWithClusterOptions() {
 +        final Cluster cluster = TestClientFactory.build().bulkResults(true).create();
 +        try {
 +            final GraphTraversalSource g = traversal().with(DriverRemoteConnection.using(cluster));
 +            final List resultBulked = g.with("language", "gremlin-lang").inject(1, 2, 3, 2, 1).toList();
 +            assertTrue(cluster.isBulkResultsEnabled());
 +            assertEquals(5, resultBulked.size());
 +
 +            // the result itself should not be affected by bulking through the wire
 +            final List result = g.with("language", "gremlin-lang").with("bulkResults", false).inject(1, 2, 3, 2, 1).toList();
 +            assertEquals(5, result.size());
 +
 +            assertTrue(cluster.isBulkResultsEnabled());
 +
 +            // the result itself should not be affected by bulking through the wire
 +            final List resultBulked2 = g.with("language", "gremlin-lang").with("bulkResults", true).inject(1, 2, 3, 2, 1).toList();
 +            assertEquals(5, resultBulked2.size());
 +
 +        } finally {
 +            cluster.close();
 +        }
 +    }
 +
 +    @Test
 +    public void shouldBulkResultsWithRequestOptions() {
 +        final Cluster cluster = TestClientFactory.build().create();
 +        try {
 +            final GraphTraversalSource g = traversal().with(DriverRemoteConnection.using(cluster));
 +            final List result = g.inject(1, 2, 3, 2, 1).toList();
 +            assertEquals(5, result.size());
 +            assertFalse(cluster.isBulkResultsEnabled());
 +
 +            // the result itself should not be affected by bulking through the wire
 +            final List resultBulked = g.with("language", "gremlin-lang").with("bulkResults", true).inject(1, 2, 3, 2, 1).toList();
 +            assertEquals(5, resultBulked.size());
 +
 +            assertFalse(cluster.isBulkResultsEnabled());
 +
 +            // the result itself should not be affected by bulking through the wire
 +            final List result2 = g.with("language", "gremlin-lang").with("bulkResults", false).inject(1, 2, 3, 2, 1).toList();
 +            assertEquals(5, result2.size());
 +
 +        } finally {
 +            cluster.close();
 +        }
 +    }
++
+     @Test
+     public void shouldParseFloatLiteralWithoutSuffixDependingOnLanguage() {
+         final Cluster cluster = TestClientFactory.build().create();
+         final Client client = cluster.connect();
+ 
+         // gremlin-lang defaults to double
+         final RequestOptions gremlinLang = new RequestOptions.Builder().language("gremlin-lang").create();
+         assertEquals(1.0d, (Double) client.submit("g.inject(1.0)", gremlinLang).one().getObject(), 0.0000001);
+         assertEquals(-123.456d, (Double) client.submit("g.inject(-123.456)", gremlinLang).one().getObject(), 0.0000001);
+ 
+         // gremlin-groovy defaults to big decimal
+         RequestOptions gremlinGroovy = new RequestOptions.Builder().language("gremlin-groovy").create();
+         assertEquals(new BigDecimal("1.0"), client.submit("g.inject(1.0)", gremlinGroovy).one().getObject());
+         assertEquals(new BigDecimal("-123.456"), client.submit("g.inject(-123.456)", gremlinGroovy).one().getObject());
+     }
  }