[
https://issues.apache.org/jira/browse/AVRO-2132?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sean Policarpio updated AVRO-2132:
----------------------------------
Description:
Unless there is a strong reason why names like {{@foo.bar}} can't be used as
property annotations in IDL, I propose an enhancement to the IDL parser to
allow it.
The major drive for this change comes from Kafka Connect; for a certain fields
– namely timestamps – additional metadata must be present in the schema when
certain consumers read the data (e.g. [the JDBC
connector|https://github.com/confluentinc/kafka-connect-jdbc]). What I hoped
when using IDL was to write the following for a record field:
{code:java}
union {null, @connect.version(1)
@connect.name("org.apache.kafka.connect.data.Timestamp") long} queryTime;{code}
so that the following would be available in the schemata:
{code:java}
{
"name": "queryTime",
"type": [
"null",
{
"type": "long",
"connect.version": 1,
"connect.name": "org.apache.kafka.connect.data.Timestamp"
}
],
"default": null
}{code}
Unfortunately, both {{connect.version}} and {{connect.name}} are unacceptable
by the parser.
The change for this is quite minimal as it can be based on AVRO-1267.
was:
Unless there is a strong reason why names like @foo.bar can't be used as
property annotations in IDL, I propose an enhancement to the IDL parser to
allow it.
The major drive for this change comes from Kafka Connect; for a certain fields
– namely timestamps – additional metadata must be present in the schema when
certain consumers read the data (e.g. [the JDBC
connector|https://github.com/confluentinc/kafka-connect-jdbc]). What I hoped
when using IDL was to write the following for a record field:
{code:java}
union {null, @connect.version(1)
@connect.name("org.apache.kafka.connect.data.Timestamp") long} queryTime;{code}
so that the following would be available in the schemata:
{code:java}
{
"name": "queryTime",
"type": [
"null",
{
"type": "long",
"connect.version": 1,
"connect.name": "org.apache.kafka.connect.data.Timestamp"
}
],
"default": null
}{code}
Unfortunately, both connect.version and connect.name are unacceptable by the
parser.
The change for this is quite minimal as it can be based on AVRO-1267.
> Avro IDL: Support dot ('.') character in property annotation names
> ------------------------------------------------------------------
>
> Key: AVRO-2132
> URL: https://issues.apache.org/jira/browse/AVRO-2132
> Project: Avro
> Issue Type: Improvement
> Components: java
> Affects Versions: 1.8.2
> Reporter: Sean Policarpio
> Priority: Major
>
> Unless there is a strong reason why names like {{@foo.bar}} can't be used as
> property annotations in IDL, I propose an enhancement to the IDL parser to
> allow it.
> The major drive for this change comes from Kafka Connect; for a certain
> fields – namely timestamps – additional metadata must be present in the
> schema when certain consumers read the data (e.g. [the JDBC
> connector|https://github.com/confluentinc/kafka-connect-jdbc]). What I hoped
> when using IDL was to write the following for a record field:
> {code:java}
> union {null, @connect.version(1)
> @connect.name("org.apache.kafka.connect.data.Timestamp") long}
> queryTime;{code}
> so that the following would be available in the schemata:
> {code:java}
> {
> "name": "queryTime",
> "type": [
> "null",
> {
> "type": "long",
> "connect.version": 1,
> "connect.name": "org.apache.kafka.connect.data.Timestamp"
> }
> ],
> "default": null
> }{code}
> Unfortunately, both {{connect.version}} and {{connect.name}} are unacceptable
> by the parser.
> The change for this is quite minimal as it can be based on AVRO-1267.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)