-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

W Allan Edwards wrote:
> I find it odd you have different expected behavior for the same code on each 
> different platform.

What specifically are you referring to there?

> The windows version works great... when I move the "same" code over to
the mono runtime (of the same version) on linux... it has this exception.

The point you are missing is that the the provider speaks to a native
code shared library.  The provider code will behave identically but the
shared library is native code and could have been compiled many
different ways.  Your underlying issue is solely because the Windows
SQLite dll has compilation flags set such that the symbol is present and
Linux such that it is not.

> Between sqlite, mono, and the mono ado.net sqlite adapter group, you would 
> think that behavior for the same versioned libs would be the same across 
> Windows, Linux, and MacOS.  

This has nothing to do with behaviour.  Your error message is due to a
runtime linking error.  The mono code is using GetProcAddress/dlsym
trying to find a symbol in the native code DLL and failing on Linux.

> Does the windows compilation of sqlite 3 (latest source include this entry 
> point?)
> Does the linux compliation of sqlite 3 (latest source include this entry 
> point?)

The SQLite *source code* includes the functionality.  For the shared
library to include the functionality (and symbol) compile time flags
have to be set.  http://www.sqlite.org/compile.html  The page I
originally pointed you at makes it quite clear -
http://www.sqlite.org/c3ref/column_database_name.html

> why does the same .NET code not work on Linux with no modification or 
> recompile?  I am literally using the SAME managed library from the ADO.nET 
> group.

The SQLite shared library is unmanaged code.  It will have whatever
functionality it was compiled with.  The shared library is not cross
platform because it talks to native operating system functionality.  You
cannot use the Windows shared library on MacOS or the MacOS one on
Linux, or the Linux one on Windows etc.

> So does the sqlite team have different entry point offerings for each 
> platform of the same sqlite database version?

SQLite doesn't have "entry point offerings" whatever you think that
means.  The SQLite library has numerous functions, structures and
defined constants in the C programming language as defined in the
documentation at http://sqlite.org/c3ref/intro.html  When producing the
compiled library you can include and exclude parts of the API as defined
in http://www.sqlite.org/compile.html

Your mono adapter is assuming that sqlite3_column_database_name and
friends are present in the shared library and gets the error you saw if
not.  The Windows DLL downloaded from sqlite.org does include it by
default while other compilations don't by default.  But whoever compiles
SQLite can set it to whatever they want.

Roger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkmPXeYACgkQmOOfHg372QTt3gCfehn6afkcW1+lUbfSXi+wS39T
ft8AoJIof7r8nTAoAU9SIDxAEVkhxDgP
=xoEq
-----END PGP SIGNATURE-----
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to