[ 
https://issues.apache.org/jira/browse/AVRO-1188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17143050#comment-17143050
 ] 

Nicolae Marasoiu commented on AVRO-1188:
----------------------------------------

Hi people, with Apache Avro 1.9.x I have tried using the "imports" and no 
matter what file i give to imports (even non existent ones), it does not 
complain, and it does not find the type that I am trying to invoke or use, 
please check this question if you like: 
[https://stackoverflow.com/questions/62535519/how-do-i-use-an-avro-type-in-another-avro-type-without-defining-it-again]

> External Schema Imports via AVSC Schema
> ---------------------------------------
>
>                 Key: AVRO-1188
>                 URL: https://issues.apache.org/jira/browse/AVRO-1188
>             Project: Apache Avro
>          Issue Type: New Feature
>          Components: java
>            Reporter: Sharmarke Aden
>            Assignee: Sharmarke Aden
>            Priority: Major
>             Fix For: 1.7.3
>
>         Attachments: Avro-1188.tar.gz, Avro-1188.tar.gz, 
> vcs-diff1160361655737792386.patch, vcs-diff2916139350460140957.patch, 
> vcs-diff4277815358664835838.patch, vcs-diff6739872835137179667.patch
>
>
> There is no way for ".avsc" schema files to import types (i.e records, enums, 
> etc) in external schema files. There's tremendous benefit in being able to do 
> this as it would allow the sharing of common types between multiple schema 
> files. Here's a use case that illustrates the typical usecase of this feature 
> request.
> Suppose we have an enum called "Privacy" that we would like to share between 
> multiple schemas:
> {code}
> //privacy.avsc
> { 
>   "type": "enum",
>   "name": "Privacy",
>   "symbols" : ["Public", "Private"]
> }
> {code}
> Now, if this feature was implemented one could import the above type into 
> other schema files by doing something like this: 
> {code}
> //the post.avsc 
> {
>   "type": "record", 
>   "name": "Post",
>   "imports": ["privacy.avsc"] //you can import one or more schemas
>   "fields": [{
>               "name": "privacy", 
>               "type": [ "null", "Privacy"], //use imported Privacy type
>               "default": "Private"
>             }
>   ]
> }
> {code}
> Here's another schema file that also has a similar privacy concern:
> {code}
> //the event.avsc is another schema that also imports the privacy type
> {
>   "type": "record", 
>   "name": "Event",
>   "imports": ["privacy.avsc"] //it also imports the privacy schemas
>   "fields": [{
>               "name": "privacy", 
>               "type": [ "null", "Privacy"], //use imported Privacy type
>               "default": "Public"
>             }
>   ]
> }
> {code}
> IDL files are able to import external schemas and protocols and it would be 
> very beneficial if schema files could import other schema files. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to