Hi Pascal
I actually got it working on my side. I had to download the latest snapshot
by following the readme.txt (attached).
After that the batch sql worked on the console and the binary protocol. I
haven't tried the REST API though.
I'm not familiar with the REST client side, but looking at your error it
seems the sql query is not parsed correctly, there should be a return or
semicolon between begin and the next statement: (sql.beginlet v = create
vertex set Name='John'commitreturn $v)
Try using semi colons between the statements and see if that helps.
["begin;let v = create vertex set Name='John';commit;return $v"]
gluck
On Monday, April 14, 2014 11:09:27 AM UTC-4, Pascal Le Quang wrote:
>
> Hi,
> I'm experimenting the same problem as Ivan Plaza, using the REST api.
> I'm using the develop branch, "freshly pulled" and built few hours ago.
> If I post the following content to the /batch url
>
> {
> "transaction": false,
> "operations": [{
> "type": "script",
> "language": "sql",
> "script": ["begin", "let v = create vertex set Name='John'",
> "commit", "return $v"]
> }]
> }
>
> I receive the following message :
>
> com.orientechnologies.orient.core.command.
> OCommandExecutorNotFoundException: Cannot find a command executor for the
> command request: sql.beginlet v = create vertex set Name='John'commitreturn
> $v
>
> Instead of sending an array of sql commands, I've tried to send the script
> with new line char between commands :
> {
> "transaction": false,
> "operations": [{
> "type": "script",
> "language": "sql",
> "script": ["begin\nlet v = create vertex set
> Name='John'\ncommit\nreturn $v"]
> }]
> }
>
>
> then the response contains only the int value "1". I assume this is the
> number of operations executed. But no new vertex has been created in the
> database.
>
> And finally, if I've tried to send this
>
> {
> "transaction": true,
> "operations": [{
> "type": "script",
> "language": "sql",
> "script": ["let v = create vertex set Name='John'"]
> }]
> }
>
>
> and a vertex is created, and I receive "1" as reponse.
>
> Am I doing something wrong when I send multiple statements ?
> And is the "return" command working using the REST api ?
>
> Thanks
> Pascal
>
>
>
>
>
>
> On Sunday, April 6, 2014 11:52:35 PM UTC+2, Ivan Plaza wrote:
>>
>> Awesome! Is this available in 1.7 rc2?
>>
>> I'm getting the following error:
>> com.orientechnologies.orient.core.command.OCommandExecutorNotFoundException:
>> Cannot find a command executor for the command request: sql.begin
>>
>>
>> On Saturday, April 5, 2014 4:08:26 PM UTC-4, Pawel K. wrote:
>>>
>>> Guys,
>>> Do you see any reason why such sql batch, does NOT create bidirectional
>>> link?
>>>
>>> begin
>>> let var1 = INSERT INTO Address CONTENT {Town:"Wroclaw",Zip:0}
>>> let var2 = INSERT INTO University CONTENT {Name:"Pwr"}
>>> let var3 = UPDATE $var1 ADD in_EHasCorrespondenceAddress = $var2
>>> RETURN AFTER
>>> let var3a = UPDATE $var2 ADD out_EHasCorrespondenceAddress = $var1
>>> RETURN AFTER
>>> commit
>>> return 1
>>>
>>> It produces 2 records, but second does NOT have the link. When I replace
>>> the ordering in the script always second created vertex has missed link.
>>>
>>> #18:0 v1 Address@Town:"Wroclaw",Zip:0,in_EHasCorrespondenceAddress:[
>>> #56:0]
>>> #56:0 v1 University@Name:"Pwr"
>>>
>>> Thanks in advance
>>> Pawel
>>>
>>> PS. I know that I can use CREATE EDGE in that case but for some reason
>>> Im using provided case.
>>>
>>> On Friday, April 4, 2014 4:19:36 PM UTC+2, Lvc@ wrote:
>>>>
>>>> Hi Stefano,
>>>> if you need a more complex language set "javascript" and use JS as
>>>> language allowing more complex thing:
>>>> https://github.com/orientechnologies/orientdb/wiki/SQL-batch
>>>>
>>>> About rollback, if any exception occurs, the tx is automatically
>>>> rollbacked.
>>>>
>>>> Lvc@
>>>>
>>>>
>>>> On 4 April 2014 16:02, Stefano Migliucci <[email protected]> wrote:
>>>>
>>>>> Hi,
>>>>> how is possible to use "rollback" command?
>>>>> Do we need something like IF, TRY/CATCH, etc?
>>>>> Can you post an example?
>>>>>
>>>>> Stefano
>>>>>
>>>>> Il giorno lunedì 31 marzo 2014 20:46:31 UTC+2, Lvc@ ha scritto:
>>>>>
>>>>>> Hi all,
>>>>>> OrientDB allowed to execute arbitrary script written in Javascript or
>>>>>> any scripting language installed in the JVM. Well, starting from now we
>>>>>> created a minimal SQL engine to allow batch of commands.
>>>>>>
>>>>>> Batch of commands are very useful when you have to execute multiple
>>>>>> things at the server side avoiding the network roundtrip for each
>>>>>> command.
>>>>>>
>>>>>> Example to create a new vertex in a transaction and attach it to an
>>>>>> existent vertex by creating a new edge between them:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *beginlet account = create vertex Account set name = 'Luke'let city =
>>>>>> select from City where name = 'London'let edge = create edge Lives from
>>>>>> $account to $city retry 100 commitreturn $edge*
>>>>>>
>>>>>> It's plain OrientDB SQL, but with few news:
>>>>>>
>>>>>> - *begin* -> begins a transaction
>>>>>> - *rollback* -> rollbacks an active transaction
>>>>>> - *commit* -> commits an active transaction
>>>>>> - *let <variable> = <command>* -> executes a command and assign
>>>>>> it in the context as . That variable can be used in further commands
>>>>>> by
>>>>>> prefixing it with $
>>>>>> - *return* <variable>|<value>|null -> returns a value instead of
>>>>>> last command result (default
>>>>>>
>>>>>> Note also the usage of* $account *and* $city* on further SQL
>>>>>> commands.
>>>>>>
>>>>>> *Java API*
>>>>>>
>>>>>> This can be used by Java API with:
>>>>>>
>>>>>> database.open("admin", "admin");
>>>>>> String cmd = "begin\n";cmd += "let a = create vertex set script =
>>>>>> true\n";cmd += "let b = select from v limit 1\n";cmd += "let e = create
>>>>>> edge from $a to $b retry 100\n";cmd += "commit\n";cmd += "return $e";
>>>>>>
>>>>>> OIdentifiable edge = database.command(new OCommandScript("sql",
>>>>>> cmd)).execute();
>>>>>>
>>>>>> Remember to put one command per line (postfix it with \n).
>>>>>>
>>>>>> *HTTP REST API*
>>>>>>
>>>>>> And via HTTP REST interface (https://github.com/
>>>>>> orientechnologies/orientdb/issues/2056). Execute a POST against
>>>>>> /batch URL by sending this payload:
>>>>>>
>>>>>> { "transaction" : true,
>>>>>> "operations" : [
>>>>>> {
>>>>>> "type" : "script",
>>>>>> "language" : "sql",
>>>>>> "script" : [ "let account = create vertex Account set name =
>>>>>> 'Luke'",
>>>>>> "let city =select from City where name = 'London'",
>>>>>> "create edge Lives from $account to $city retry 100" ]
>>>>>> }
>>>>>> ]}
>>>>>>
>>>>>>
>>>>>> Hope this new feature will simplify your development improving
>>>>>> performance.
>>>>>>
>>>>>> What about having more complex constructs like IF, FOR, etc? If you
>>>>>> need more complexity, I suggest you to use Javascript as language that
>>>>>> already support all these concepts.
>>>>>>
>>>>>> Lvc@
>>>>>>
>>>>>>
>>>>>> PS: For more information look at issues -> https://github.com/
>>>>>> orientechnologies/orientdb/issues/2176 and https://github.com/
>>>>>> orientechnologies/orientdb/issues/2056
>>>>>>
>>>>>> --
>>>>>
>>>>> ---
>>>>> 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.
>>>>>
>>>>
>>>>
--
---
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.
.
.` `
, `:.
`,` ,:`
.,. :,,
.,, ,,,
. .,.::::: ```` ::::::::: :::::::::
,` .::,,,,::.,,,,,,`;; .: :::::::::: ::: :::
`,. ::,,,,,,,:.,,.` ` .: ::: ::: :::
:::
,,:,:,,,,,,,,::. ` ` `` .: ::: ::: :::
:::
,,:.,,,,,,,,,: `::, ,, ::,::` : :,::` :::: ::: ::: ::: :::
,:,,,,,,,,,,::,: ,, :. : :: : .: ::: ::: :::::::
:,,,,,,,,,,:,:: ,, : : : : .: ::: ::: :::::::::
` :,,,,,,,,,,:,::, ,, .:::::::: : : .: ::: ::: :::
:::
`,...,,:,,,,,,,,,: .:,. ,, ,, : : .: ::: ::: :::
:::
.,,,,::,,,,,,,: `: , ,, : ` : : .: ::: ::: :::
:::
...,::,,,,::.. `: .,, :, : : : .: ::::::::::: :::
:::
,::::,,,. `: ,, ::::: : : .: ::::::::: ::::::::::
,,:` `,,.
,,, .,`
,,. `, GRAPH DATABASE
`` `.
``
`
*******************************************************************************
ORIENT DATABASE
http://www.orientechnologies.com
*******************************************************************************
Requirements
---------------
Before to download, compile and install the last version of OrientDB please
assure to have the following tools installed:
Java
---------------
OrientDB needs Java Run-Time (JRE/JDK) version 6 or major to run the Server.
We suggest to use Java version 7 because it's faster than Java 6.
To download Java go to: http://www.java.com/en/download/
Note: Please assure to download the JDK and not JRE.
Apache Ant
---------------
Apache Ant version 1.6.5 (previous version should works too).
You can download Ant from here:
> http://ant.apache.org/bindownload.cgi
Apache Maven
---------------
Apache Maven is used to run part of the test suite
You can download Maven from here:
> http://maven.apache.org/download.cgi
Build the last version of OrientDB
-------------------------------------
The OrientDB development team is very active, so if your in the middle of the
development of your application we suggest to use last SNAPSHOT from the git
source repository. All you need is:
- JDK (Java Development Kit) 6+
-> http://www.oracle.com/technetwork/java/javase/downloads/index.html
- git SCM tool
-> http://git-scm.com/
- Apache Ant v1.8.2+
-> http://ant.apache.org/manual/install.html
Then follow these simple steps in a shell (Mac/Linux) or a Command Prompt
(Windows):
> git clone https://github.com/nuvolabase/orientdb.git
> cd orientdb
> git checkout -b develop
> git pull origin develop
> ant clean installg
At the end of the build you will have a brand new distribution under the path:
../releases/orientdb-graphed-1.5.0. Use it as a normal OrientDB distribution
directory.
Every time you want to update your distribution with last changes do:
> git pull origin develop
> ant clean installg
At the end of the build your distribution (../releases/orientdb-graphed-1.5.0)
will be updated with last OrientDB libraries. Every time you compile a new
version,
assure to have the permissions to execute the .sh files under the "bin"
directory:
> cd ../releases/orientdb-graphed-1.5.0/bin
> chmod u+x *.sh
Information
---------------
For more information visit the official website: http://www.orientdb.org.
Remember OrientDB is an Open Source project released with the Apache v2 license,
so it's always FREE for any purpose. If you're interested to Enterprise tools,
professional support, training or consultancy contact:
[email protected].
Enjoy with Graphs,
Orient Technologies
The company behind OrientDB
(www.orientechnologies.com)