f3rn0s opened merge request !1: Fix broken build, implement varbinary and ignore complex columns at schrieveslaach / oxidized-mdf

f3rn0s
2024-04-23T13:56:52Z

Hey!

I know this is an old project, but I recently ran into the issue of grabbing some values from an MDF file and it has been super helpful. However, there are some breaking issues, firstly the build currently fails:

error: failed to select a version for the requirement `funty = "~1.2"`
candidate versions found which didn't match: 3.0.0-rc2, 3.0.0-rc1, 2.0.0, ...
location searched: crates.io index
required by package `bitvec v0.22.0`
... which satisfies dependency `bitvec = "^0.22"` of package `oxidized-mdf v0.3.0 (/tmp/oxidized-mdf)`
if you are looking for the prerelease package it needs to be specified explicitly
funty = { version = "3.0.0-rc2" }
perhaps a crate was updated and forgotten to be re-vendored?

To fix this I bumped bitvec up to 1.0 and changed the code to support changes. Additionally, I also updated all the deprecated chrono function calls.

Next up, I noticed that the original project doesn't support varbinary, so I added it in (it behaves very similar to varchar).

Finally, I added in some logic that checks if length_bytes is negative, and if it is, it marks that as a complex column and then skips complex columns.

If you were up for it, I would love some help on implementing the most common of the complex columns, the TextPointerProxy from OrcaMDF, but I also understand if this project isn't something you are interested in working on anymore. In this case, I have a table with many nvarchar(max) values which is what causes the complex columns to occur.

Anyway, thanks again for working on this tool, so far it has been very useful.