If we are going to change it I wonder if we can’t do better or look for some 
other standard to adopt. 

For the C++ side could we adopt something that is maybe std::tuple or 
std::vector based? Tuple probably doesn’t work because it’s fixed at compile 
time but std::vector and StructSet are very similar in behavior.

-Jake


> On Aug 14, 2018, at 11:01 AM, Dan Smith <dsm...@pivotal.io> wrote:
> 
> +1 for just having StructSet.
> 
> Return types should always be strongly typed, the user shouldn't have to
> introspect or guess based on their query what the return type actually will
> be at runtime.
> 
> If we think there is value in having separate ResultSet and StructSet
> results, we could have a separate query::executeXXX method for each type.
> But I think just returning StructSet seems reasonable.
> 
> The Java API for query is even worse. I think the Java API actually returns
> an Object, which the user has to cast into one of three things - an
> individual value, SelectResult of values, or a SelectResults of structs. We
> should fix that too!
> 
> -Dan
> 
> On Tue, Aug 14, 2018 at 10:47 AM, Anilkumar Gingade <aging...@pivotal.io>
> wrote:
> 
>> In Java, they are separated so that the results can be managed effectively.
>> For example StructSet has its own implementation to manage the query
>> results that are structs (more than one projection attributes).
>> 
>> -Anil
>> 
>> 
>> 
>>> On Tue, Aug 14, 2018 at 8:28 AM David Kimura <dkim...@pivotal.io> wrote:
>>> 
>>> I have a couple questions:
>>> 
>>> Do you have an idea or theories of what was the original intent behind
>>> separating ResultSet and StructSet?
>>> 
>>> Is execute a blocking or non-blocking call and does the interface have
>> any
>>> guarantee of that?
>>> 
>>> Thanks,
>>> David
>>> 
>>> On Mon, Aug 13, 2018 at 4:06 PM, Ernest Burghardt <eburgha...@pivotal.io
>>> 
>>> wrote:
>>> 
>>>> Currently, geode-native's query::execute returns a
>>>> shared_ptr<SelectResults> and
>>>> that pointer can be either ResultSet or StructSet.
>>>> 
>>>> 
>>>> RemoteQuery::execute contains logical code to determine with
>> QueryResults
>>>> are greater than 0... We should look at removing this logic and only
>>>> returning StructSets
>>>> This allows removal of ResultSet which will streamline the API and
>>>> associated code...
>>>> 
>>>> This duality is unnecessary and should be removed.
>>>> I am proposing that the results only return  StructSet
>>>> 
>>>> Best,
>>>> EB
>>>> 
>>> 
>> 

Reply via email to