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.