• Daniel Black's avatar
    MDEV-31625 connect engine file_type=DBF insert fails · 5a44700a
    Daniel Black authored
    Add the end of file marker x1A to the DBF file and handle it
    correctly to preserve interoperability with Libreoffice, and others
    that have followed the DBF spec.
    
    The file open mode of "a+" was problematic because Linux and the OSX,
    the previous main development mode are inconsistent (see man fopen).
    The main problem per the bug report was the inability to fseek back to the
    beginning to update the records in the header.
    
    As such the "a+" mode is remove and "w+b" is used inserting to a new file
    and "r+b" is used for appending to the file.
    
    In DBFFAM::CloseTableFile move PlugCloseFile down to close the file in
    all modes.
    
    The year unlike the comments is always since 1900. Use the
    YYYY-MM-DD as an unabigious form during tracing.
    
    Thanks for Mr. Zoltan Duna for the descriptive bug report.
    5a44700a
filamdbf.cpp 42 KB