Re: Exposing a constant in an Avro Schema

2011-11-15 Thread Andrew Kenworthy
Hi Scott,

it's the latter I need; simply the ability to pass meta-data with my schema, so 
the user property is just what I need.

Thanks for your help!

Andrew




From: Scott Carey scottca...@apache.org
To: user@avro.apache.org user@avro.apache.org; Andrew Kenworthy 
adwkenwor...@yahoo.com
Sent: Monday, November 14, 2011 9:09 PM
Subject: Re: Exposing a constant in an Avro Schema


Named types (records, fields, fixed, enum) can store arbitrary user properties 
attached to the schema ( similar to doc but no special meaning).


Do you want this constant to be in every instance of your data object?  If so, 
the enum is one way to do it.  
If you simply want to push metadata along with the schema, use the schema 
properties, they are name-value pairs.  For example you can have myVersion 
attached to your schema for a record:


{type:record, name:bar.baz.FooRecord, myVersion:1.1, fields: {
    {name:field1, type:int},
    …
  } 
}

On 11/14/11 8:03 AM, Andrew Kenworthy adwkenwor...@yahoo.com wrote:


Hi,


I would like to embed a schema version number in the schema that I use for 
writing data: it would be read-only so that I can determine later on which 
version of my avro schema was used. The best I could come up with is to 
(ab)use an enum with a single value like this, as I couldn't find any way to 
define a constant:


{type:enum,name:version_1_1,doc:enum indicating avro write schema 
version 1.1,symbols:[VERSION_1_1]}


Is there a better way to register a constant value that has no meaning within 
the avro data file, other than to expose some kind of meta information?


Thanks,


Andrew Kenworthy





Exposing a constant in an Avro Schema

2011-11-14 Thread Andrew Kenworthy
Hi,

I would like to embed a schema version number in the schema that I use for 
writing data: it would be read-only so that I can determine later on which 
version of my avro schema was used. The best I could come up with is to (ab)use 
an enum with a single value like this, as I couldn't find any way to define a 
constant:

{type:enum,name:version_1_1,doc:enum indicating avro write schema 
version 1.1,symbols:[VERSION_1_1]}

Is there a better way to register a constant value that has no meaning within 
the avro data file, other than to expose some kind of meta information?

Thanks,

Andrew Kenworthy