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

Reply via email to