[ 
https://issues.apache.org/jira/browse/AVRO-778?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Douglas Creager updated AVRO-778:
---------------------------------

    Attachment: 0019-Resolver-class-for-schema-specific-writer-unions.patch
                0018-Resolver-class-for-schema-specific-reader-unions.patch
                0017-Schema-specific-schemas.patch
                0016-Schema-specific-resolvers-for-non-union-types.patch
                0015-Equality-functions-for-schema-specific-types.patch
                0014-Raw-resolver-classes.patch
                0013-Raw-value-comparison-operations.patch
                0012-Error-message-API-is-now-public.patch

Adding latest patches from github branch.

Current status:

This is basically done, though I need to put together some better documentation 
about which types and functions are generated for each schema.  There is now a 
schema-specific resolver implementation for each compound schema in the AVSC 
file.  The resolvers correctly handle reader unions and writer unions.  
Remaining features left to implement: primitive value promotion (int->long 
etc.), and a function for _outputting_ an Avro binary encoding.

> C: avrocc schema-specific compiler
> ----------------------------------
>
>                 Key: AVRO-778
>                 URL: https://issues.apache.org/jira/browse/AVRO-778
>             Project: Avro
>          Issue Type: New Feature
>          Components: c
>            Reporter: Douglas Creager
>            Assignee: Douglas Creager
>         Attachments: 0001-Resizable-array-class.patch, 
> 0002-Resizable-map-class.patch, 0003-Resizable-string-buffer-class.patch, 
> 0004-Custom-allocation-API-is-now-public.patch, 
> 0005-Schema-specific-structs.patch, 
> 0006-Schema-specific-union-functions.patch, 
> 0007-Clearing-arrays-and-maps.patch, 
> 0008-Growing-maps-and-arrays-without-adding-elements.patch, 
> 0009-Child-consumers-in-base-consumer-class.patch, 
> 0010-Public-memoization-API.patch, 
> 0011-Schema-specific-array-and-map-accessors.patch, 
> 0012-Error-message-API-is-now-public.patch, 
> 0013-Raw-value-comparison-operations.patch, 0014-Raw-resolver-classes.patch, 
> 0015-Equality-functions-for-schema-specific-types.patch, 
> 0016-Schema-specific-resolvers-for-non-union-types.patch, 
> 0017-Schema-specific-schemas.patch, 
> 0018-Resolver-class-for-schema-specific-reader-unions.patch, 
> 0019-Resolver-class-for-schema-specific-writer-unions.patch
>
>
> I've started work on a pure-C compiler for generating C types that are 
> specific to an Avro schema.  This resurrects the avro_schema_specific 
> function that's been lying around in the header file for awhile.  I'm only 
> focusing on the data serialization parts of the spec; at least for now, I'm 
> not including any of the RPC stuff.
> One of my main goals with this is for the compiler to be in pure C; I don't 
> want to have to install the Java language bindings in order to run the schema 
> compiler.  This means that I can't use the Velocity engine to produce the 
> output .c and .h files.  Instead of trying to find a good C templating 
> engine, I'm just using the trusty C preprocessor.  It's not the prettiest 
> thing in the world, but it's perfectly capable.
> This issue will track my progress on this; I'll upload patches here, as well 
> as maintain a branch at 
> [github|https://github.com/dcreager/avro/tree/specific].

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to