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-27, 04:56
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
>