calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Josh Elser <josh.el...@gmail.com>
Subject Re: Does avatica support a date type?
Date Thu, 07 Apr 2016 14:26:50 GMT
Yep, unix timestamp in the `number_value` attribute should be correct.

If you have more questions about how to serialize TypedValue's before I 
get some more docs in place, this method[1] should help. This was a 
recent consolidation which should be pretty easy to follow (even without 
knowing Java).

Thanks for creating the JIRA issue. I'll go ahead and give you the karma 
to have a bit more control in assigning issues in the CALCITE project 
while I'm at it.

[1] 
https://github.com/apache/calcite/blob/master/avatica/core/src/main/java/org/apache/calcite/avatica/remote/TypedValue.java#L480

F21 wrote:
> Sure thing! In the mean time, can you answer my question regarding
> whether setting the type to JAVA_SQL_TIMESTAMP and setting number_value
> to the unix timestamp is correct?
>
> On 7/04/2016 8:36 AM, Josh Elser wrote:
>> Ok. You got me thinking that it would be good to document how each
>> support type in TypedValue is serialized into that message (as it
>> isn't necessarily obvious how the code expects it).
>>
>> Want to file a JIRA issue and assign it to me?
>>
>> F21 wrote:
>>> Hey Josh,
>>>
>>> That was a great explanation, thanks! And yes, I am using protobufs. :)
>>> So in the case of a date time, should I set the Rep to
>>> JAVA_SQL_TIMESTAMP and set the number_value field to the unix timestamp
>>> equivalent of the datetime?
>>>
>>> I am not familiar with Java, but it would also be nice if the docs could
>>> include the format JAVA_SQL_* with an example.
>>>
>>> Thanks again!
>>>
>>> On 7/04/2016 12:37 AM, Josh Elser wrote:
>>>> Also, if you have suggestions on how you'd like to see the
>>>> documentation expanded, please do provide them. I can try to expand,
>>>> but if I don't have a focus on what is actually lacking, it's hard to
>>>> be effective.
>>>>
>>>> Josh Elser wrote:
>>>>> If you're using Protobuf (as I think you are), you don't need to worry
>>>>> about the conversion from the Protobuf TypedValue message back into
>>>>> the
>>>>> Avatica class TypedValue. This is handled implicitly by Avatica
>>>>> itself.
>>>>> Just make sure that the Rep you provide matches the serialization.
>>>>>
>>>>> I'm not familiar with golang's SQL interface, so I'm not sure what
>>>>> they
>>>>> define as a "datetime" here. If you have more specifics, I can try to
>>>>> point you in the right direction.
>>>>>
>>>>> AFAIK, there isn't any difference in implementation between
>>>>> PRIMITIVE_FOO and FOO (there are a few variants of this).
>>>>>
>>>>> The difference between Long and BigInteger would be the resulting Java
>>>>> type created for the value (a Long or a BigInteger). Sorry if this is
>>>>> cyclic logic :)
>>>>>
>>>>> Yes, the JAVA_* types are used to support the array of
>>>>> date/time/datetime data types.
>>>>>
>>>>> F21 wrote:
>>>>>> I need to send some TypedValues to the avatica server (phoenix query
>>>>>> server) when executing a statement.
>>>>>>
>>>>>> According to
>>>>>> https://calcite.apache.org/docs/avatica_protobuf_reference.html#typedvalue,
>>>>>>
>>>>>>
>>>>>>
>>>>>> I need to set a Type for each value. I noticed that the list of Reps
>>>>>> here
>>>>>> (https://calcite.apache.org/docs/avatica_protobuf_reference.html#rep)
>>>>>> support things like JAVA_SQL_TIME, JAVA_SQL_TIMESTAMP etc, however
>>>>>> it's
>>>>>> unclear which ones are valid values for a TypedValue.
>>>>>>
>>>>>> In my case, the golang sql interface provides data for parameter
>>>>>> binding
>>>>>> that might be a time.time (which is essentially a datetime). In this
>>>>>> case, what should my TypedValue look like?
>>>>>>
>>>>>> Also, I noticed the Rep enum has a few things that looked similar,
>>>>>> but
>>>>>> might mean different things. It would be nice to have
>>>>>> documentation to
>>>>>> clarify. For example:
>>>>>> - What's the difference between PRIMITIVE_BOOLEAN and BOOLEAN?
>>>>>> - Is there any difference between LONG and BIG_INTEGER?
>>>>>> - Are the JAVA_SQL_* and JAVA_UTIL_* types currently being used?
>>>>>>
>>>>>> Thanks!
>>>>>>
>>>>>>
>>>
>>>
>

Mime
View raw message