You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Guðjón (Jira)" <ji...@apache.org> on 2021/09/22 16:25:00 UTC

[jira] [Created] (AVRO-3216) Rust: failure reading multiple use of named schemas in file

Guðjón created AVRO-3216:
----------------------------

             Summary: Rust: failure reading multiple use of named schemas in file
                 Key: AVRO-3216
                 URL: https://issues.apache.org/jira/browse/AVRO-3216
             Project: Apache Avro
          Issue Type: Bug
            Reporter: Guðjón
         Attachments: weather-complex.avro

I have an avro file that contains records of a specific schema. The file is written using the java implementation, with the generated classes. 

The schema itself uses named schemas in a way where two or more fields use the same named schema. A good example of this could be this weather schema 
{code:json}
{
	"doc": "A weather reading.",
	"name": "Weather",
	"namespace": "test",
	"type": "record",
	"fields": [
		{
			"name": "station",
			"type": "string"
		},
		{
			"name": "max_temp",
			"type": "Temp"
		},
		{
			"name": "min_temp",
			"type": "Temp"
		}

	]
}
{code}
with the named schema Temp being 
{code:json}
{
	"doc": "A temperature reading.",
	"name": "Temp",
	"namespace": "test",
	"type": "record",
	"fields": [
		{
			"name": "temp",
			"type": "long"
		}

	]
}
{code}
The schema that is written in the file inlines the Temp schema in the case of the first field (max_temp) but references it by name in the second field (min_temp). In both java and python implementations it manages to read the file correctly but the avro-rs crate fails on the second field with a message:

{noformat}
panicked at 'Failure reading file: Unknown primitive type: Temp'
{noformat}

The attached file weather-complex.avro is a file written using the java library with generated classes and contains one record. 




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