Quantcast
Channel: Apache Timeline
Viewing all articles
Browse latest Browse all 5648

Is this a bug?

$
0
0
According to the documentation:

https://avro.apache.org/docs/current/api/cpp/html/classavro_1_1GenericDatum.html#a879e7b725023bfd8246e15f07cb5bef0

avro::GenericDatum::GenericDatum ( const ValidSchema<https://avro.apache.org/docs/current/api/cpp/html/classavro_1_1ValidSchema.html> & schema )

Constructs a datum corresponding to the given avro type.

The value will the appropraite default corresponding to the data type.

Parameters:
schema The schema that defines the avro type.

A GenericDatum when given a valid schema should have all its field fill with reasonable default. But it seems it is failing for union schema. I have a written the following piece of code which I input the script with a schema and then try to encode it and save the result in a file:

14 avro::ValidSchema load(const char* filename)

15 {

16 std::ifstream ifs(filename);

17 avro::ValidSchema result;

18 avro::compileJsonSchema(ifs, result);

19 return result;

20 }

21

22 int

23 main(int argc, char ** argv)

24 {

25 avro::ValidSchema sch = load(argv[1]); // load a schema

26

27 avro::GenericDatum metaDatum( sch );

28 std::auto_ptr<avro::OutputStream> out = avro::fileOutputStream( argv[2], 1 ); // write the result to a specified file

29 avro::EncoderPtr en = avro::jsonEncoder( sch );

30 en->init ( *out );

31 avro::encode ( *en, metaDatum );

32 en->flush();

33

34 return 0;

35 }

Case and point:

[pnip =>avro_rhel6<= my_avro]$ cat union.schema

[ "bytes", "long”]

[pnip =>avro_rhel6<= my_avro]$ ./schemaTest union.schema /tmp/result

terminate called after throwing an instance of 'avro::Exception'

what(): Not that many names

Aborted

It seems to work on other schema types (have not check all yet) but failed on union type schema

Viewing all articles
Browse latest Browse all 5648

Trending Articles