Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Avro, mail # user - avrogencpp generates vector of $Undefined$ type


Copy link to this message
-
Re: avrogencpp generates vector of $Undefined$ type
Jan van der Lugt 2012-08-28, 00:00
It seems the $Undefined$ is coming from an AVRO_UNION type, which is also
not checked in the cppTypeOf method. I could try to come up with some
solution, but if someone with knowledge of this code could tell me what the
issue is and why AVRO_UNION is not being handled, that would be very
helpful.

- Jan

On Sun, Aug 26, 2012 at 9:56 PM, Jan van der Lugt <[EMAIL PROTECTED]> wrote:

> Good find! I'll take a look at this tomorrow, see if I can come up with a
> fix.
>
>
> On Sun, Aug 26, 2012 at 5:26 AM, Harsh J <[EMAIL PROTECTED]> wrote:
>
>> I'm not an expert on the Avro C++ implementation, but I wonder if this
>> is cause of the nulls not being checked for in
>> http://svn.apache.org/repos/asf/avro/trunk/lang/c++/impl/avrogencpp.cc's
>> CodeGen::cppTypeOf method.
>>
>> On Sun, Aug 26, 2012 at 1:54 PM, Jan van der Lugt <[EMAIL PROTECTED]>
>> wrote:
>> > Hi all,
>> >
>> > Sorry to be impatient, but could someone please comment on this issue? I
>> > know that the C++ version isn't as popular as the Java version, but the
>> > whole idea is to make information exchange between applications in
>> different
>> > languages easier, right?
>> >
>> > - Jan
>> >
>> >
>> > On Sat, Aug 18, 2012 at 12:10 AM, Jan van der Lugt <[EMAIL PROTECTED]>
>> > wrote:
>> >>
>> >> Hi all,
>> >>
>> >> After deciding on Apache Avro for one of the main formats for storing
>> our
>> >> graph data, I tried to integrate it with our graph processing system
>> built
>> >> in C++. If I generate a header file from the attached Avro schema using
>> >> avrogencpp, I get a vector of type $Undefined$ somewhere in the
>> generated
>> >> code (see the snippet below). Is there an error in my schema or is
>> this a
>> >> bug in avrogencpp? Thanks in advance for your help!
>> >>
>> >> - Jan
>> >>
>> >>> static void decode(Decoder& d, gm::gm_avro_graph_avpr_Union__5__& v) {
>> >>> size_t n = d.decodeUnionIndex();
>> >>> if (n >= 2) { throw avro::Exception("Union index too big"); }
>> >>> switch (n) {
>> >>> case 0:
>> >>> d.decodeNull();
>> >>> v.set_null();
>> >>> break;
>> >>> case 1:
>> >>> {
>> >>> std::vector<$Undefined$ > vv;
>> >>> avro::decode(d, vv);
>> >>> v.set_array(vv);
>> >>> }
>> >>> break;
>> >>> }
>> >>> }
>> >
>> >
>>
>>
>>
>> --
>> Harsh J
>>
>
>