Hi Chris,

> I'm back on the trail to get redland working with virtuoso storage. I
> want to be able to use virtuoso as a backend from python (and probably
> c++ later on)! I'm still having issues with the librdf 1.0.10 version. I
> can connect using pyodbc to virtuoso with unixodbc installed. I am
> getting undefined symbol errors when using the bindings with virtuoso
> support built in.
> 
>     In [1]: import RDF
>     python: symbol lookup error: /home/prima/opt/redland/lib/
>     redland/librdf_storage_virtuoso.so: undefined symbol:
>     librdf_storage_register_factory

This looks like a bug in the plugin code. I assume you also contacted
the redland development team about this, as this sounds like a recent
change in their code that has not been fixed in all the backend drivers.

> 
> Does the virtuoso support in redland need iODBC? I don't have that
> installed, rather unixodbc and it's sources. Will it still work with
> this version of sql.h? or does it expect the sql.h from virtuoso itself?
> (I noticed there was an sql.h in the virtuoso sources at
> virtuoso-opensource-6.1.0/libsrc/odbcsdk/include/sql.h.) It compiled ok
> using the system sql.h...
> 

No, virtuoso support in redland does not require iODBC, but should
function with unixODBC as well as we tried to use plain ODBC API
throughout the code. As maintainers of iODBC we do have a slight
preference to use iODBC, but the original code was tested with unixODBC
as well before we submitted it to redland.

The various include files called sql.h (and the underlying sqlext.h etc)
are interchangeable from one driver manager to another.

The reason why there is a sql.h inside virtuoso is just that not every
OS has an ODBC compatible driver manager and sdk (yet), and since we use
these defines to create our client layer, we included a copy inside the
source tree that gets used when you do not have a system wide version.


Patrick

Reply via email to