Vartolomei Nicolae created AVRO-4155:
----------------------------------------

             Summary: Record field names with a dot are allowed in C++
                 Key: AVRO-4155
                 URL: https://issues.apache.org/jira/browse/AVRO-4155
             Project: Apache Avro
          Issue Type: Bug
          Components: c++
            Reporter: Vartolomei Nicolae


C++ library allows producing schemas violating the avro spec which later can’t 
be read. This is a foot gun which is not present in other implementations 
(checked C and Java).


When adding a field to a record in C++ the field name is incorrectly parsed and 
validated 
[https://github.com/apache/avro/blob/82a2bc8b034de34626e2ab8bf091234122474d50/lang/c%2B%2B/impl/Schema.cc#L38]
 as a namespaced type name rather than as a record field name. As a result, C++ 
library allows dots to be present in field names 
https://github.com/apache/avro/blob/82a2bc8b034de34626e2ab8bf091234122474d50/lang/c%2B%2B/impl/Node.cc#L71.
 This is not allowed by the spec and trying to read such a schema with C 
implementation will fail.

C implementation does proper validation. Java implementation does too.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to