AnsweredAssumed Answered

Compressed container issue : functions applies to the compressed data and not to the original file

Question asked by VincentL on Oct 14, 2014
Latest reply on Aug 23, 2017 by TSGal

Summary

Compressed container issue : functions applies to the compressed data and not to the original file

Product

FileMaker Pro

Version

13.0v3

Operating system version

Mac OS X 10.9.5

Description of the issue

Compressed container Attributes and Base64Encode, applies to the compressed data and not to the original file.

MD5 and Base64decode wil apply to the compressed data rather than on the original file if you insert a file using the compression feature

I made a sample solution :

https://www.dropbox.com/s/n4ql12sp67bc389/Compressed_container_issue.zip?dl=0

The exact same file Apple.txt (a dump of Apple's webpages), is put in 2 container fields : Without compression on left, With compression (insert file compress check box checked) on the Right.

MD5 is different, though it is exactly the same file. That's because, functions that applies to containers seem to apply on the compressed data, rather on the original file.
Base64Encode also applies to the compressed data and not the original file.

That seems to be an undocumented bug, because the compression feature should be transparent. That may lead to unwanted duplicate files (because MD5 is ≠) even depending on how the file was inserted.
Also, that prevents usefull base64 operations.
NoWorakaround, because no way to uncompress file internally before function calls

Steps to reproduce the problem

Insert a file using the compression feature.
MD5 function and Base64Decode will be different from the same file inserted in a container without compress checkbox checked.

Expected result

MD5 and Base64 decode should produce the same result as if the container was inserted without compression.
The filemaker compression feature seems to be transparent, but while it should be, it's not, because containers function applies to the unexposed compressed data rather than of the original file.
Those function calls should trigger on the fly file decompression if file is compressed.

Actual result

Different MD5 / Base64Decode with compressed container vs same file stored as uncompressed container

Workaround

No workaround

Outcomes