So actually if I run the SQL command in string ab:

UPDATE Patent SET  primary_id = 676, original_abstract = set(original_abstract, 
"<p num=\\"0000\\">The present invention relates to compounds of the general 
formula (I) wherein\\n\\nR<sup>1</sup> is the group (A) or (B) or (C) or (D); 
R<sup>2</sup> is a non aromatic\\n\\nheterocycle, or is OR\' or 
N(R\\")<sub>2</sub>; R\' is lower alkyl,\\n\\nlower alkyl substituted by 
halogen or -(CH<sub>2</sub>)<sub>n</sub>-cycloalkyl;\\n\\nR\\" is lower alkyl; 
R<sup>3</sup> is NO<sub>2</sub>, CN or SO<sub>2</sub>R\';\\n\\nR<sup>4 </sup>is 
hydrogen, hydroxy, halogen, NO<sub>2</sub>, lower alkyl, lower\\n\\nalkyl, 
substituted by halogen, lower alkoxy, SO<sub>2</sub>R\' or 
C(O)OR\\";\\n\\nR<sup>5</sup>/R<sup>6</sup>/R<sup>7</sup> are hydrogen, 
halogen, lower alkyl\\n\\nor lower alkyl, substituted by halogen; 
X<sup>1</sup>/X<sup>1\\u00bf</sup>\\n\\nare CH or N, with the proviso that 
X<sup>1</sup>/X<sup>1\\u00bf</sup> are not simultaneously\\n\\nCH; 
X<sup>2</sup> is O, S, NH or N(lower alkyl); n is 0, l or 2; and to 
pharmaceutically\\n\\nactive acid addition salts and to their use in the 
treatment of neurological and\\n\\nneuropsychiatric disorders.</p>")  UPSERT 
WHERE primary_id = 676


directly in the orientdb console, I get the same issue with the brackets....

On Tuesday, 12 January 2016 10:44:05 UTC, acsandeep wrote:
>
> Shouldn't you be posting it on pyOrient 
> <https://github.com/mogui/pyorient/issues> github issues page?
>
> On Friday, 8 January 2016 16:47:04 UTC+5:30, Shaun Gupta wrote:
>>
>> I am currently trying to fill an orientdb graph database using pyorient. 
>> In general, everything works well. However, I have stumbled across a 
>> parsing issue with one of my commands. In Python if I run the following 
>> code:
>>
>> >>> ab = 'UPDATE Patent SET  primary_id = 676, original_abstract = 
>> >>> set(original_abstract, "<p num=\\"0000\\">The present invention relates 
>> >>> to compounds of the general formula (I) wherein\\n\\nR<sup>1</sup> is 
>> >>> the group (A) or (B) or (C) or (D); R<sup>2</sup> is a non 
>> >>> aromatic\\n\\nheterocycle, or is OR\' or N(R\\")<sub>2</sub>; R\' is 
>> >>> lower alkyl,\\n\\nlower alkyl substituted by halogen or 
>> >>> -(CH<sub>2</sub>)<sub>n</sub>-cycloalkyl;\\n\\nR\\" is lower alkyl; 
>> >>> R<sup>3</sup> is NO<sub>2</sub>, CN or SO<sub>2</sub>R\';\\n\\nR<sup>4 
>> >>> </sup>is hydrogen, hydroxy, halogen, NO<sub>2</sub>, lower alkyl, 
>> >>> lower\\n\\nalkyl, substituted by halogen, lower alkoxy, 
>> >>> SO<sub>2</sub>R\' or 
>> >>> C(O)OR\\";\\n\\nR<sup>5</sup>/R<sup>6</sup>/R<sup>7</sup> are hydrogen, 
>> >>> halogen, lower alkyl\\n\\nor lower alkyl, substituted by halogen; 
>> >>> X<sup>1</sup>/X<sup>1\\u00bf</sup>\\n\\nare CH or N, with the proviso 
>> >>> that X<sup>1</sup>/X<sup>1\\u00bf</sup> are not simultaneously\\n\\nCH; 
>> >>> X<sup>2</sup> is O, S, NH or N(lower alkyl); n is 0, l or 2; and to 
>> >>> pharmaceutically\\n\\nactive acid addition salts and to their use in the 
>> >>> treatment of neurological and\\n\\nneuropsychiatric disorders.</p>")  
>> >>> UPSERT WHERE primary_id = 676'
>> >>> client.batch(ab)
>>
>> I get the following errors:
>>
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in <module>
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/orient.py", 
>> line 402, in batch
>> .prepare(( QUERY_SCRIPT, ) + args).send().fetch_response()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/commands.py",
>>  line 145, in fetch_response
>>     super( CommandMessage, self ).fetch_response()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/base.py",
>>  line 256, in fetch_response
>> self._decode_all()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/base.py",
>>  line 240, in _decode_all
>>
>>
>>  self._decode_header()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/base.py",
>>  line 192, in _decode_header
>>     [ exception_message.decode( 'utf8' ) ]
>> pyorient.exceptions.PyOrientCommandException: 
>> com.orientechnologies.orient.core.sql.parser.TokenMgrError - Lexical error 
>> at line 1, column 311.  Encountered: <EOF> after : "\"<p 
>> num=\\\"0000\\\">The present invention relates to compounds of the general 
>> formula (I) wherein\\n\\nR<sup>1</sup> is the group (A) or (B) or (C) or 
>> (D); R<sup>2</sup> is a non aromatic\\n\\nheterocycle, or is OR\' or 
>> N(R\\\")<sub>2</sub>"
>>
>> If I run this using command I also get errors:
>>
>> >>> client.command(ab)
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in <module>
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/orient.py", 
>> line 398, in command
>>     .prepare(( QUERY_CMD, ) + args).send().fetch_response()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/commands.py",
>>  line 145, in fetch_response
>>     super( CommandMessage, self ).fetch_response()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/base.py",
>>  line 256, in fetch_response
>>     self._decode_all()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/base.py",
>>  line 240, in _decode_all
>>     self._decode_header()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/base.py",
>>  line 192, in _decode_header
>>     [ exception_message.decode( 'utf8' ) ]
>> pyorient.exceptions.PyOrientCommandException: 
>> com.orientechnologies.orient.core.sql.OCommandSQLParsingExceptioncom.orientechnologies.orient.core.exception.OSerializationException
>>  - Error on parsing command at position #0: Error on reading parameters in: 
>> set(original_abstract, "<p num="0000">The present invention relates to 
>> compounds of the general formula (I) wherein
>>
>> R<sup>1</sup> is the group (A) or (B) or (C) or (D); R<sup>2</sup> is a non 
>> aromatic
>>
>> heterocycle, or is OR' or N(R")<sub>2</sub>; R' is lower alkyl,
>>
>> lower alkyl substituted by halogen or 
>> -(CH<sub>2</sub>)<sub>n</sub>-cycloalkyl;
>>
>> R" is lower alkyl; R<sup>3</sup> is NO<sub>2</sub>, CN or SO<sub>2</sub>R';
>>
>> R<sup>4 </sup>is hydrogen, hydroxy, halogen, NO<sub>2</sub>, lower alkyl, 
>> lower
>>
>> alkyl, substituted by halogen, lower alkoxy, SO<sub>2</sub>R' or C(O)OR";
>>
>> R<sup>5</sup>/R<sup>6</sup>/R<sup>7</sup> are hydrogen, halogen, lower alkyl
>>
>> or lower alkyl, substituted by halogen; X<sup>1</sup>/X<sup>1¿</sup>
>>
>> are CH or N, with the proviso that X<sup>1</sup>/X<sup>1¿</sup> are not 
>> simultaneously
>>
>> CH; X<sup>2</sup> is O, S, NH or N(lower alkyl); n is 0, l or 2; and to 
>> pharmaceutically
>>
>> active acid addition salts and to their use in the treatment of neurological 
>> and
>>
>> neuropsychiatric disordersFound invalid ) character at position 229 of text 
>> original_abstract, "<p num="0000">The present invention relates to compounds 
>> of the general formula (I) wherein
>>
>> R<sup>1</sup> is the group (A) or (B) or (C) or (D); R<sup>2</sup> is a non 
>> aromatic
>>
>> heterocycle, or is OR' or N(R")<sub>2</sub>. Ensure it is opened and closed 
>> correctly.
>>
>> I have found however that if I do not add the information under 
>> original_abstract as a set, it works when using command:
>>
>> >>> aba = 'UPDATE Patent SET  primary_id = 676, original_abstract = "<p 
>> >>> num=\\"0000\\">The present invention relates to compounds of the general 
>> >>> formula (I) wherein\\n\\nR<sup>1</sup> is the group (A) or (B) or (C) or 
>> >>> (D); R<sup>2</sup> is a non aromatic\\n\\nheterocycle, or is OR\' or 
>> >>> N(R\\")<sub>2</sub>; R\' is lower alkyl,\\n\\nlower alkyl substituted by 
>> >>> halogen or -(CH<sub>2</sub>)<sub>n</sub>-cycloalkyl;\\n\\nR\\" is lower 
>> >>> alkyl; R<sup>3</sup> is NO<sub>2</sub>, CN or 
>> >>> SO<sub>2</sub>R\';\\n\\nR<sup>4 </sup>is hydrogen, hydroxy, halogen, 
>> >>> NO<sub>2</sub>, lower alkyl, lower\\n\\nalkyl, substituted by halogen, 
>> >>> lower alkoxy, SO<sub>2</sub>R\' or 
>> >>> C(O)OR\\";\\n\\nR<sup>5</sup>/R<sup>6</sup>/R<sup>7</sup> are hydrogen, 
>> >>> halogen, lower alkyl\\n\\nor lower alkyl, substituted by halogen; 
>> >>> X<sup>1</sup>/X<sup>1\\u00bf</sup>\\n\\nare CH or N, with the proviso 
>> >>> that X<sup>1</sup>/X<sup>1\\u00bf</sup> are not simultaneously\\n\\nCH; 
>> >>> X<sup>2</sup> is O, S, NH or N(lower alkyl); n is 0, l or 2; and to 
>> >>> pharmaceutically\\n\\nactive acid addition salts and to their use in the 
>> >>> treatment of neurological and\\n\\nneuropsychiatric disorders.</p>"  
>> >>> UPSERT WHERE primary_id = 676'
>> >>> client.command(aba)
>> ['1']
>>
>> However client.batch still cannot handle this correctly:
>>
>> >>> client.batch(aba)
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in <module>
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/orient.py", 
>> line 402, in batch
>>     .prepare(( QUERY_SCRIPT, ) + args).send().fetch_response()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/commands.py",
>>  line 145, in fetch_response
>>     super( CommandMessage, self ).fetch_response()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/base.py",
>>  line 256, in fetch_response
>>     self._decode_all()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/base.py",
>>  line 240, in _decode_all
>>     self._decode_header()
>>   File 
>> "/Users/shaungupta/anaconda/lib/python2.7/site-packages/pyorient/messages/base.py",
>>  line 192, in _decode_header
>>     [ exception_message.decode( 'utf8' ) ]
>> pyorient.exceptions.PyOrientCommandException: 
>> com.orientechnologies.orient.core.exception.OSerializationException - Found 
>> invalid ) character at position 274 of text UPDATE Patent SET  primary_id = 
>> 676, original_abstract = "<p num=\"0000\">The present invention relates to 
>> compounds of the general formula (I) wherein\n\nR<sup>1</sup> is the group 
>> (A) or (B) or (C) or (D); R<sup>2</sup> is a non aromatic\n\nheterocycle, or 
>> is OR' or N(R\")<sub>2</sub>; R' is lower alkyl,\n\nlower alkyl substituted 
>> by halogen or -(CH<sub>2</sub>)<sub>n</sub>-cycloalkyl;\n\nR\" is lower 
>> alkyl; R<sup>3</sup> is NO<sub>2</sub>, CN or SO<sub>2</sub>R';\n\nR<sup>4 
>> </sup>is hydrogen, hydroxy, halogen, NO<sub>2</sub>, lower alkyl, 
>> lower\n\nalkyl, substituted by halogen, lower alkoxy, SO<sub>2</sub>R' or 
>> C(O)OR\";\n\nR<sup>5</sup>/R<sup>6</sup>/R<sup>7</sup> are hydrogen, 
>> halogen, lower alkyl\n\nor lower alkyl, substituted by halogen; 
>> X<sup>1</sup>/X<sup>1\u00bf</sup>\n\nare CH or N, with the proviso that 
>> X<sup>1</sup>/X<sup>1\u00bf</sup> are not simultaneously\n\nCH; 
>> X<sup>2</sup> is O, S, NH or N(lower alkyl); n is 0, l or 2; and to 
>> pharmaceutically\n\nactive acid addition salts and to their use in the 
>> treatment of neurological and\n\nneuropsychiatric disorders.</p>"  UPSERT 
>> WHERE primary_id = 676. Ensure it is opened and closed correctly.
>>
>> Running string ab directly in the orientdb console also gives the same 
>> errors, however running string aba in the orientdb console works fine, so I 
>> cannot understand why aba does not work with the pyorient batch command (I 
>> also have managed to run aba in the orientdb console as part of a 
>> begin/commit transaction with success).
>>
>> Does anybody understand why this command works via client.command and not 
>> client.batch? I need to have this command running as part of a batch of 
>> commands, so need to find a fix..... Ideally, I would like to have the 
>> command in string ab where I am adding original abstract as a set to work, 
>> as I need to keep track of any new information for matching nodes.
>>
>> From what I can see this is a parsing limitation of the command executor, 
>> but please do tell me if I am doing something wrong here...
>>
>> Thanks!!
>>
>>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to