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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.