Perhaps a custom jackson serializer for Collections that stops after queryCollectionsDepth would do the trick.
Anthony > On Sep 14, 2016, at 2:24 PM, Kirk Lund <kl...@pivotal.io> wrote: > > Yep, that method does add " LIMIT X" to the query where X > equals queryResultSetLimit. > > I think queryResultSetLimit might be a way for TypedJson to cut a > collection short. It's always 100 and if one of the fields of your value > object is a collection then I believe the resulting json will always > include up to 100 maximum elements of that collection. This seems to be use > for it. But it's hardcoded to 100 and not exposed to the user in any way. > > Thanks, > Kirk > > > On Wed, Sep 14, 2016 at 2:15 PM, John Blum <jb...@pivotal.io> wrote: > >> Hi Kirk- >> >> Also, TMK there is no specific API call and/or parameter to limit the >> result set of a query, rather it is typically expressed in the OQL query as >> so... >> >> SELECT * FROM /Region WHERE <predicate> LIMIT X >> >> Where 'X' is the desired result quantity. >> >> So, perhaps the question is more of what does the following API call >> translate into OQL as... >> >> QueryDataFunction.queryData(query, members, limit, false, >> queryResultSetLimit, queryCollectionsDepth); >> >> Hope this helps, >> >> John >> >> >> >> On Wed, Sep 14, 2016 at 11:36 AM, Jason Huynh <jhu...@pivotal.io> wrote: >> >>> Hi Kirk, >>> >>> I am not too familiar with the TypeJson class or how it was being used... >>> for number 2, I am assuming the queryCollectionsDepth is a specific >>> gfsh/function specific to gfsh. I don't think there is an equivalent oql >>> keyword or call for that. >>> >>> -Jason >>> >>> On Wed, Sep 14, 2016 at 10:11 AM Kirk Lund <kl...@pivotal.io> wrote: >>> >>>> I'm trying to remove TypedJson and replace it with Jackson. >>> Unfortunately, >>>> it appears that some of the behavior for limiting how much data a query >>>> returns has leaked into the TypedJson class in the form of >>>> "queryCollectionsDepth". >>>> >>>> Both GFSH and Pulse use the following to limit how much a query >>> returns... >>>> >>>> /** >>>> * Number of rows queryData operation will return. By default it will >>> be >>>> 1000 >>>> */ >>>> private int queryResultSetLimit = >>>> ManagementConstants.DEFAULT_QUERY_LIMIT; >>>> >>>> /** >>>> * NUmber of elements to be shown in queryData operation if query >>> results >>>> contain collections like Map, List etc. >>>> */ >>>> private int queryCollectionsDepth = >>>> TypedJson.DEFAULT_COLLECTION_ELEMENT_LIMIT; >>>> >>>> These are passed into: >>>> >>>> QueryDataFunction.queryData(query, members, limit, false, >>>> queryResultSetLimit, queryCollectionsDepth); >>>> >>>> 1) queryResultSetLimit is fed into the query itself as a LIMIT >>>> >>>> 2) queryCollectionsDepth is apparently fed into TypedJson as some sort >> of >>>> limit involving depth of recursing a collection -- this should probably >>>> move into the query in some way. >>>> >>>> Does anyone understand querying enough to help me move this behavior to >>>> some proper place such as a querying class? I'm completely unfamiliar >>> with >>>> the querying code so I'm not sure where to even begin on #2. >>>> >>>> Thanks, >>>> Kirk >>>> >>> >> >> >> >> -- >> -John >> 503-504-8657 >> john.blum10101 (skype) >>
signature.asc
Description: Message signed with OpenPGP using GPGMail