Hi, yes, I've update the SQL, Transaction and HTTP Rest pages. Lvc@
On 31 March 2014 21:56, odbuser <[email protected]> wrote: > Awesome. Has this been wiki-ed? > > > > On Monday, March 31, 2014 2:46:31 PM UTC-4, Lvc@ wrote: >> >> 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.
