Yes, it allows all characters in property and kind names as long
as GAE/Bigtable supports them. So for normal property and kind names
the GQL query looks like:

   SELECT * FROM MyEntity WHERE myProperty='myvalue'

But when you need to use GQL's unsupported characters, or when the
whole kind
or property name is a GQL keyword, then just escape it by apostrophes
(like strings):
  SELECT * FROM 'Order' WHERE 'com.foo.my.property'='myvalue AND
'limit'=1

But be aware that this is not the official GQL syntax - it works only
in our parser's implementation.

Vaclav


On Feb 26, 5:01 pm, John Patterson <[email protected]> wrote:
> Very cool!  Does it allow '.' in property names?  Unfortunately the  
> Datastore Viewer doesn't .
>
> On 26 Feb 2010, at 22:30, vbart wrote:
>
> > Last night we released a new version including improved GQL dynamic
> > parser.
> > Operators != and IN are supported now and also several bugs were
> > fixed.
> > More info athttp://audao.spoledge.com/doc-gae-features.html#gqlparser
>
> > Vaclav
>
> > On Feb 24, 11:00 pm, David Lam <[email protected]> wrote:
> >> On Wed, Feb 24, 2010 at 1:37 AM, vbart  
> >> <[email protected]> wrote:
> >>> I can offer only listing solution, based on our free GQL dynamic
> >>> parser -http://audao.spoledge.com/download.jsp
> >>> The full JSP you can find here:
>
> >>>http://vaclavb.blogspot.com/2010/02/google-app-engine-data-viewer-gql
> >>> ...
>
> >>> The GQL parser (class GqlDynamic) converts GQL queries into low-
> >>> level
> >>> datastore API calls, so the basic code of fetching entities can be:
>
> >>>  import com.google.appengine.api.datastore.DatastoreServiceFactory;
> >>>  import com.google.appengine.api.datastore.Entity;
> >>>  import com.spoledge.audao.parser.gql.GqlDynamic;
> >>>  import java.util.List;
> >>>  ...
> >>>  GqlDynamic gqld = new GqlDynamic();
>
> >>> gqld
> >>> .setDatastoreService
> >>> ( DatastoreServiceFactory.getDatastoreService());
>
> >>>  String gql = "SELECT * FROM MyEntity WHERE prop1='test' ORDER BY
> >>> prop2 LIMIT 10";
> >>>  List<Entity> result =
> >>> gqld.prepareQuery( gql ).asList( gqld.getFetchOptions());
>
> >>> Then you just need to render the result in a JSP page.
>
> >>> The GQL parser currently does not support operators '!=' and 'IN',  
> >>> but
> >>> we are going to launch a new version in a few days which will  
> >>> support
> >>> all GQL features.
>
> >>> Vaclav
>
> >> hmm thanks for the tip!  i actually was unaware the way to do  
> >> something like
> >> this was to build a google datastore.Query to represent the GQL  
> >> statement...
>
> > --
> > You received this message because you are subscribed to the Google  
> > Groups "Google App Engine for Java" group.
> > 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 
> > athttp://groups.google.com/group/google-appengine-java?hl=en
> > .

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
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.

Reply via email to