SQLite Forum

Missing Exports
Login

Missing Exports

(1) By GFH (raasaywarden) on 2021-03-29 08:13:53 [link] [source]

sqlite3_column_database_name sqlite3_column_database_name16 sqlite3_column_origin_name sqlite3_column_origin_name16 sqlite3_column_table_name sqlite3_column_table_name16

The above exports appear in x64 version of 3.35.xx but not in x86 version. Previous versions seem OK.

(2) By Larry Brasfield (larrybr) on 2021-03-29 12:22:33 in reply to 1 [link] [source]

Thanks for the report. Another, more capable build is at the download page.

(3) By anonymous on 2021-03-29 12:39:53 in reply to 2 [link] [source]

And where on that download page would that be?

I downloaded both the 32-bit and the 64-bit version again less than a minute ago and the 32-bit version is still missing these exports.

Timestamp of DLL and DEF of the 32-bit version is 2021.03.29 18:54

(4) By anonymous on 2021-03-29 12:52:14 in reply to 2 [link] [source]

Hint:

Could it be that someone forgot to build the 32bit version with SQLITE_ENABLE_COLUMN_METADATA ?

(5) By anonymous on 2021-03-29 13:05:00 in reply to 1 [link] [source]

There are more issues - I did a compare of the DEF files (after sorting) and the 32bit version is missing:

sqlite3_column_database_name sqlite3_column_database_name16 sqlite3_column_origin_name sqlite3_column_origin_name16 sqlite3_column_table_name sqlite3_column_table_name16 sqlite3_data_directory sqlite3_deserialize sqlite3_fts3_may_be_corrupt sqlite3_fts5_may_be_corrupt sqlite3_serialize sqlite3_temp_directory sqlite3_version

Maybe time for 3.35.4 ?

(6) By Larry Brasfield (larrybr) on 2021-03-29 14:38:19 in reply to 5 [link] [source]

I just downloaded the 32-bit DLL and .def in the archive with CRC-32 signatures of 078ae67d and 0ef4ab9d. I have personally verified that the DLL has the entry points you mention.

This has nothing to do with version 3.35.3 (or .4); it is an issue concerning build options and control for release.

(7) By anonymous on 2021-03-29 16:02:40 in reply to 6 [link] [source]

Getting there ... still missing

sqlite3_data_directory sqlite3_fts3_may_be_corrupt sqlite3_fts5_may_be_corrupt sqlite3_temp_directory sqlite3_version

This has nothing to do with version 3.35.3 (or .4); it is an issue concerning build options and control for release.

Hmm. I can see a future support issue there. Someone reports a problem with a specific version and there are several official builds with the same underlying version.

(8) By Larry Brasfield (larrybr) on 2021-03-29 17:09:10 in reply to 7 [source]

I can see all 5 of those entry points in both the .def file and in the DLL using the Microsoft tool, dumpbin /exports , for the 32-bit and 64-bit DLL archives. I suggest you check the CRC-32 signature in the .zip archive you have against the ones I mentioned in post #6. If they do not match, try getting the archive from the primary download site.

Hmm. I can see a future support issue there. Someone reports a problem with a specific version and there are several official builds with the same underlying version.

Your report was about a problem with a build, however "official" it may be. The issue of option control for builds dropped at https://sqlite.org/download.html is being worked. I expect this control will improve going forward.

It is reasonable to expect consistency in the build options used for dropped binaries, subject to feature additions and removal in the version published as the amalgamation. However, the SQLite library can be built with variation in dozens of different options, selecting among features and setting various limits and defaults. Any of the multitude of possible binaries created from the same version of the amalgamation will have the same version number and hash value for SQLITE_SOURCE_ID. Their "pragma compile_options" return would vary to reflect build options used.

The binaries available at the download page are a convenience for those users who find the build options used for them to be suitable. Those binaries are no more and no less supported than others that can be built from the released amalgamation sources.

(9) By anonymous on 2021-03-29 18:03:40 in reply to 8 [link] [source]

Downloaded from the supplied link:

32bit: sqlite3.def = 0ef4ab9d sqlite3.dll = 078ae67d 64bit: sqlite3.def = 0ed6cae2 sqlite3.dll = a2a6e428

Now it gets interesting. When using dumpbin the 5 semi-missing exports are present in both 32bit and 64bit versions, but when comparing the DEF files the exports are still missing.

Your report was about ...

It wasn't actually my report. I was just starting to upgrade to 3.35.3 when I noticed the OP and checked what my downloaded version looked like and noticed some other exports appeared to be missing.

The issue of option control for builds dropped at https://sqlite.org/download.html is being worked. I expect this control will improve going forward.

Good. I only use the official builds as a starting point for testing and then build my own due to some options I need. But not everyone visiting here will use own builds.

(10) By Larry Brasfield (larrybr) on 2021-03-29 18:42:39 in reply to 9 [link] [source]

I just went to repeat my observation that the x86 and x64 .def files have those entry points and could not.a The 32-bit .def file is missing the 5 entry point names mentioned in post 7, among other differences.b I believe this will bolster the case for exerting tighter control over the binary release/publish process.

Your report ...

It wasn't actually my report.

I'll try to remember that 'anonymous' names an amorphous group.


a. Not sure how that happened. I had the files named to distinguish them.

b. The ordering differs also, which affects ordinal values in the DLLs. Preservation of ordinals may be one reason these files are not generated from during the build. Enforcement of .dll/.def matching is another improvement opportunity.