Hi, Yaac <http://code.google.com/p/yaac/>0.4 is just released. This is the first time I post release note there. So for some of you don't know what is *Yaac*, it's a java maven project designed to perform ad hoc admin tasks. You can simply download and deploy Yaac to your own domain as a separated version. Checkout this page<http://code.google.com/p/yaac/wiki/DeployGuideline>for the deployment guideline.
===================New functions for v0.4======================= EGQL (extended GQL) now supports *insert* statement! - You can create an arbitrary entity kind / property name by executing insert statement: * insert into any_kind values (prop_1 = 'a', prop_2=now(), prop_3=10)* Verify immediately by * select * from any_kind* In this case, Yaac will assign a numeric key to the new entity (generated by appengine) - You can also create entity with a predefined key *insert into any_kind values (__key__=key('any_kind', 'key_1'), prop_1 = 'a', prop_2=now(), prop_3=10)* make sure key('kind_a', 'key_1') doesn't exist in datastore before - Once you have already specified a key to insert, you don't even need into any_kind in above statement, as entity kind already determined by key. *insert values (__key__=key('any_kind', 'key_1'), prop_1 = 'a', prop_2=now(), prop_3=10)* - You can also decide whether to index a specific property by the optional field indexed=true/false, by default all indexable property will be indexed *insert into any_kind values (prop_1 = 'a', prop_2=now(), prop_3=10 (indexed=false))* Note that key will be indexed anyway, and blob / text will never be indexed - You can even insert records based on the result of select query, for instance: *insert into job_archive values (orig_key = __key__, timestamp = now() (indexed=false)) from (select * from job)* Verify your result by: *select count(*) from job_archive* =================some features implemented in earlier releases============== Extended GQL (EGQL) Aggregation functions, used together with group by clause and having clause (optional): MAX, MIN, SUM, COUNT, AVG Scalar functions: UCASE / LCASE / MID / LEN / ROUND / FORMAT / NOW / TYPE / DATETIME / KEY / USER/ GEOPT, etc. Inter properties comparison in where clause: eg, *where property1 = property2* Powerful Arithmetic Expressions: eg, *where property1 + 5 < property2 * (2 + property3)* Powerful boolean expressions: eg, *where condition1 and (condition2 or condition3) and not condition4* Like query: eg, *where ucase(property1) like "%abc%" (new)* More details about EGQL syntax please refer to this page: http://code.google.com/p/yaac/wiki/EGQLReference Datastore Browser: Download datastore blob / text and blobstore blob directly Better display keys in list property Datastore Editor: Edit any datastore types including blob / text / imhandle / category / email / user / key / blobkey / list, etc Manage entity group hierachy in a more convenient way Create new entity / new property. Datastore Statistics: More detailed breakdown on root / non root statistics Sandbox (http://sandbox.yetanotheradminconsole.appspot.com/) is updated with the latest version. 86K soccer matches are uploaded. Login with your google account and play with it! For example, for all *Arsenal*'s away draw matches against those end with * united *having average full time goals are more than 1, we can use following EGQL to query: * select HOME_TEAM, AWAY_TEAM, count(1), sum(FTHG + FTAG) from MATCH where FTHG = FTAG and AWAY_TEAM = "Arsenal" and lcase(HOME_TEAM) like "%united" group by HOME_TEAM, AWAY_TEAM having sum(FTHG + FTAG) / count(1) > 1 * Also try this link to try new look of entity viewer (entity with grandparent with almost all datatypes) http://sandbox.yetanotheradminconsole.appspot.com/#editor:ahhzfnlldGFub3RoZXJhZG1pbmNvbnNvbGVydwsSFktJTkRfV0lUSF9BTExfUFJPUEVSVFkYZAwLEhZLSU5EX1dJVEhfQUxMX1BST1BFUlRZIhlzdHJpbmdfa2V5X3dpdGhvdXRfZW50aXR5DAsSFktJTkRfV0lUSF9BTExfUFJPUEVSVFkiCnN0cmluZ19rZXkM Best regards, Max -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/Nv6fvftz6pIJ. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.