You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "stephen mallette (JIRA)" <ji...@apache.org> on 2018/03/01 18:13:00 UTC
[jira] [Closed] (TINKERPOP-1859) Complex instance of P not
serializing to bytecode properly
[ https://issues.apache.org/jira/browse/TINKERPOP-1859?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
stephen mallette closed TINKERPOP-1859.
---------------------------------------
Resolution: Fixed
Assignee: stephen mallette
This is resolve now because of TINKERPOP-1894 :
{code}
>>> g.V().hasLabel("person").has("age", P.not_(P.lte(10).and_(P.not_(P.between(11, 20)))).and_(P.lt(29).or_(P.eq(35)))).values("name").toList()
[u'vadas', u'peter']
{code}
> Complex instance of P not serializing to bytecode properly
> ----------------------------------------------------------
>
> Key: TINKERPOP-1859
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1859
> Project: TinkerPop
> Issue Type: Bug
> Components: python
> Affects Versions: 3.2.7
> Reporter: stephen mallette
> Assignee: stephen mallette
> Priority: Major
> Fix For: 3.2.8, 3.3.2
>
>
> Not sure what's happening but this traversal does not return any results with gremlin-python:
> {code}
> gremlin> g.V().hasLabel("person").has("age", P.not(P.lte(10).and(P.not(P.between(11, 20)))).and(P.lt(29).or(P.eq(35)))).values("name")
> ==>vadas
> ==>peter
> {code}
> When looking at the bytecode the python bytecode is different from the java bytecode. The java bytecode for the predicate is:
> {code}
> {
> "@type": "g:P",
> "@value": {
> "predicate": "and",
> "value": [{
> "@type": "g:P",
> "@value": {
> "predicate": "or",
> "value": [{
> "@type": "g:P",
> "@value": {
> "predicate": "gt",
> "value": {
> "@type": "g:Int32",
> "@value": 10
> }
> }
> }, {
> "@type": "g:P",
> "@value": {
> "predicate": "and",
> "value": [{
> "@type": "g:P",
> "@value": {
> "predicate": "gte",
> "value": {
> "@type": "g:Int32",
> "@value": 11
> }
> }
> }, {
> "@type": "g:P",
> "@value": {
> "predicate": "lt",
> "value": {
> "@type": "g:Int32",
> "@value": 20
> }
> }
> }]
> }
> }]
> }
> }, {
> "@type": "g:P",
> "@value": {
> "predicate": "or",
> "value": [{
> "@type": "g:P",
> "@value": {
> "predicate": "lt",
> "value": {
> "@type": "g:Int32",
> "@value": 29
> }
> }
> }, {
> "@type": "g:P",
> "@value": {
> "predicate": "eq",
> "value": {
> "@type": "g:Int32",
> "@value": 35
> }
> }
> }]
> }
> }]
> }
> }
> {code}
> The python bytecode is:
> {code}
> {
> "@type": "g:P",
> "@value": {
> "predicate": "and",
> "value": [{
> "@type": "g:P",
> "@value": {
> "predicate": "not",
> "value": {
> "@type": "g:P",
> "@value": {
> "predicate": "and",
> "value": [{
> "@type": "g:P",
> "@value": {
> "predicate": "lte",
> "value": {
> "@type": "g:Int64",
> "@value": 10
> }
> }
> }, {
> "@type": "g:P",
> "@value": {
> "predicate": "not",
> "value": {
> "@type": "g:P",
> "@value": {
> "predicate": "between",
> "value": [{
> "@type": "g:Int64",
> "@value": 11
> }, {
> "@type": "g:Int64",
> "@value": 20
> }]
> }
> }
> }
> }]
> }
> }
> }
> }, {
> "@type": "g:P",
> "@value": {
> "predicate": "or",
> "value": [{
> "@type": "g:P",
> "@value": {
> "predicate": "lt",
> "value": {
> "@type": "g:Int64",
> "@value": 29
> }
> }
> }, {
> "@type": "g:P",
> "@value": {
> "predicate": "eq",
> "value": {
> "@type": "g:Int64",
> "@value": 35
> }
> }
> }]
> }
> }]
> }
> }
> {code}
> This fix should likely be applied as part of TINKERPOP-1857 (or after it is merged) as there were a few modifications in that branch around {{P}} to resolve other issues.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)