[
https://issues.apache.org/jira/browse/CALCITE-1103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kevin Liew updated CALCITE-1103:
--------------------------------
Description:
Decimal data is serialized as TypedValue.double_value and loses precision.
Decoded Wireshark capture
{code:sql}select * from decimal_table{code}
{noformat}
[employee@centos7-ws test]$ protoc --decode_raw < test.pb
1: "org.apache.calcite.avatica.proto.Responses$ExecuteResponse"
2 {
1 {
1: "cf74c4e9-29bc-410a-b557-bf7a4965cbaf"
2: 479389
3: 1
4 {
1 {
4: 1
8: 255
9: "KEYCOLUMN"
10: "KEYCOLUMN"
12: 255
14: "DECIMAL_TABLE_38_6"
16: 1
19: "java.lang.String"
20 {
1: 12
2: "VARCHAR"
3: 21
}
}
1 {
1: 1
4: 1
6: 1
7: 1
8: 38
9: "COLUMN1"
10: "COLUMN1"
12: 38
13: 6
14: "DECIMAL_TABLE_38_6"
16: 1
19: "java.math.BigDecimal"
20 {
1: 3
2: "DECIMAL"
3: 23
}
}
2: "select * from decimal_table_38_6"
4 {
1: 4
}
}
5 {
2: 1
3 {
1 {
1 {
1: 21
3: "ConversionTestKey"
}
}
1 {
1 {
1: 22
6: 0x3ffe666666666666
}
}
}
3 {
1 {
1 {
1: 21
3: "FractionalNumeric6"
}
}
1 {
1 {
1: 22
6: 0x40ba0a524af0bf1a
}
}
}
3 {
1 {
1 {
1: 21
3: "FractionalNumeric8"
}
}
1 {
1 {
1: 22
6: 0xbff1f9acffa7eb6c
}
}
}
3 {
1 {
1 {
1: 21
3: "Null"
}
}
1 {
1 {
1: 24
}
}
}
3 {
1 {
1 {
1: 21
3: "OnePlusFraction"
}
}
1 {
1 {
1: 22
6: 0x3ff000010c6f7a0b
}
}
}
}
6: 18446744073709551615
7 {
1: "centos7-ws:8765"
}
}
3 {
1: "centos7-ws:8765"
}
}
{noformat}
The column1 data is tagged with 6 which corresponds to double_value in the
proto file.
was:
Decimal data is serialized as TypedValue.double_value and loses precision.
Decoded Wireshark capture
{noformat}
[employee@centos7-ws test]$ protoc --decode_raw < test.pb
1: "org.apache.calcite.avatica.proto.Responses$ExecuteResponse"
2 {
1 {
1: "cf74c4e9-29bc-410a-b557-bf7a4965cbaf"
2: 479389
3: 1
4 {
1 {
4: 1
8: 255
9: "KEYCOLUMN"
10: "KEYCOLUMN"
12: 255
14: "DECIMAL_TABLE_38_6"
16: 1
19: "java.lang.String"
20 {
1: 12
2: "VARCHAR"
3: 21
}
}
1 {
1: 1
4: 1
6: 1
7: 1
8: 38
9: "COLUMN1"
10: "COLUMN1"
12: 38
13: 6
14: "DECIMAL_TABLE_38_6"
16: 1
19: "java.math.BigDecimal"
20 {
1: 3
2: "DECIMAL"
3: 23
}
}
2: "select * from decimal_table_38_6"
4 {
1: 4
}
}
5 {
2: 1
3 {
1 {
1 {
1: 21
3: "ConversionTestKey"
}
}
1 {
1 {
1: 22
6: 0x3ffe666666666666
}
}
}
3 {
1 {
1 {
1: 21
3: "FractionalNumeric6"
}
}
1 {
1 {
1: 22
6: 0x40ba0a524af0bf1a
}
}
}
3 {
1 {
1 {
1: 21
3: "FractionalNumeric8"
}
}
1 {
1 {
1: 22
6: 0xbff1f9acffa7eb6c
}
}
}
3 {
1 {
1 {
1: 21
3: "Null"
}
}
1 {
1 {
1: 24
}
}
}
3 {
1 {
1 {
1: 21
3: "OnePlusFraction"
}
}
1 {
1 {
1: 22
6: 0x3ff000010c6f7a0b
}
}
}
}
6: 18446744073709551615
7 {
1: "centos7-ws:8765"
}
}
3 {
1: "centos7-ws:8765"
}
}
{noformat}
The column1 data is tagged with 6 which corresponds to double_value in the
proto file.
> Decimal data serialized as Double in Protocol Buffer API
> --------------------------------------------------------
>
> Key: CALCITE-1103
> URL: https://issues.apache.org/jira/browse/CALCITE-1103
> Project: Calcite
> Issue Type: Bug
> Components: avatica
> Affects Versions: 1.5.0
> Environment: HDP 2.3.4 with Phoenix 4.4 and Calcite 1.5
> Reporter: Kevin Liew
> Assignee: Josh Elser
> Priority: Minor
> Labels: decimal, double, protobuf
>
> Decimal data is serialized as TypedValue.double_value and loses precision.
> Decoded Wireshark capture
> {code:sql}select * from decimal_table{code}
> {noformat}
> [employee@centos7-ws test]$ protoc --decode_raw < test.pb
> 1: "org.apache.calcite.avatica.proto.Responses$ExecuteResponse"
> 2 {
> 1 {
> 1: "cf74c4e9-29bc-410a-b557-bf7a4965cbaf"
> 2: 479389
> 3: 1
> 4 {
> 1 {
> 4: 1
> 8: 255
> 9: "KEYCOLUMN"
> 10: "KEYCOLUMN"
> 12: 255
> 14: "DECIMAL_TABLE_38_6"
> 16: 1
> 19: "java.lang.String"
> 20 {
> 1: 12
> 2: "VARCHAR"
> 3: 21
> }
> }
> 1 {
> 1: 1
> 4: 1
> 6: 1
> 7: 1
> 8: 38
> 9: "COLUMN1"
> 10: "COLUMN1"
> 12: 38
> 13: 6
> 14: "DECIMAL_TABLE_38_6"
> 16: 1
> 19: "java.math.BigDecimal"
> 20 {
> 1: 3
> 2: "DECIMAL"
> 3: 23
> }
> }
> 2: "select * from decimal_table_38_6"
> 4 {
> 1: 4
> }
> }
> 5 {
> 2: 1
> 3 {
> 1 {
> 1 {
> 1: 21
> 3: "ConversionTestKey"
> }
> }
> 1 {
> 1 {
> 1: 22
> 6: 0x3ffe666666666666
> }
> }
> }
> 3 {
> 1 {
> 1 {
> 1: 21
> 3: "FractionalNumeric6"
> }
> }
> 1 {
> 1 {
> 1: 22
> 6: 0x40ba0a524af0bf1a
> }
> }
> }
> 3 {
> 1 {
> 1 {
> 1: 21
> 3: "FractionalNumeric8"
> }
> }
> 1 {
> 1 {
> 1: 22
> 6: 0xbff1f9acffa7eb6c
> }
> }
> }
> 3 {
> 1 {
> 1 {
> 1: 21
> 3: "Null"
> }
> }
> 1 {
> 1 {
> 1: 24
> }
> }
> }
> 3 {
> 1 {
> 1 {
> 1: 21
> 3: "OnePlusFraction"
> }
> }
> 1 {
> 1 {
> 1: 22
> 6: 0x3ff000010c6f7a0b
> }
> }
> }
> }
> 6: 18446744073709551615
> 7 {
> 1: "centos7-ws:8765"
> }
> }
> 3 {
> 1: "centos7-ws:8765"
> }
> }
> {noformat}
> The column1 data is tagged with 6 which corresponds to double_value in the
> proto file.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)