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)
>> 

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to