C implementation does not write datum values that are larger than the memory 
write buffer (currently 16K)
---------------------------------------------------------------------------------------------------------

                 Key: AVRO-724
                 URL: https://issues.apache.org/jira/browse/AVRO-724
             Project: Avro
          Issue Type: Bug
          Components: c
    Affects Versions: 1.4.1
            Reporter: Jeremy Hinegardner


The current C implementation does not allow for datum values greater than 16K.

The {{avro_file_writer_append}} flushes blocks to disk over time, but does not 
deal with the single case of a single datum being larger than 
{{avro_file_writer_t.datum_buffer}}.  This is noted in the source code:

{code:title=datafile.c:294-313}
int avro_file_writer_append(avro_file_writer_t w, avro_datum_t datum)
{
    int rval;                  
    if (!w || !datum) {        
        return EINVAL;         
    }
    rval = avro_write_data(w->datum_writer, w->writers_schema, datum);
    if (rval) {                
        check(rval, file_write_block(w));
        rval =
            avro_write_data(w->datum_writer, w->writers_schema, datum);
        if (rval) {            
            /* TODO: if the datum encoder larger than our buffer,
               just write a single large datum */
            return rval;       
        }
    }
    w->block_count++;          
    return 0;                  
}
{code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to