diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-01-27 18:34:18 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-01-27 18:34:18 +0200 |
commit | 8c41d647fab4dfbd0a9979514f95431dfc19e00b (patch) | |
tree | 55a1634b0ccaf337ee12dc54d5b11f6c4bb4f391 | |
parent | 4e31e3dcf3efcc20ca3aee6f888fe3ec56ba78e3 (diff) |
Detect if column metadata functions are available
For example, system-default build of SQLite doesn't have
SQLITE_ENABLE_COLUMN_METADATA.
-rw-r--r-- | INSTALL | 10 | ||||
-rw-r--r-- | configure.ac | 3 | ||||
-rw-r--r-- | m4/libsqlite.m4 | 25 | ||||
-rw-r--r-- | odb/sqlite/details/config.h.in | 1 | ||||
-rw-r--r-- | odb/sqlite/libodb-sqlite-vc10.vcxproj | 8 | ||||
-rw-r--r-- | odb/sqlite/libodb-sqlite-vc11.vcxproj | 8 | ||||
-rw-r--r-- | odb/sqlite/libodb-sqlite-vc12.vcxproj | 8 | ||||
-rw-r--r-- | odb/sqlite/libodb-sqlite-vc8.vcproj | 8 | ||||
-rw-r--r-- | odb/sqlite/libodb-sqlite-vc9.vcproj | 8 | ||||
-rw-r--r-- | odb/sqlite/makefile | 1 | ||||
-rw-r--r-- | odb/sqlite/statement.cxx | 6 |
11 files changed, 62 insertions, 24 deletions
@@ -4,9 +4,13 @@ Prerequisites - libodb http://www.codesynthesis.com/products/odb/ - libsqlite3 http://www.sqlite.org -If you plan to access an SQLite database from multiple threads, then -you will need SQLite version 3.5.0 or later built with the unlock -notify feature (SQLITE_ENABLE_UNLOCK_NOTIFY) enabled. +If you plan to access an SQLite database from multiple threads, then you will +need SQLite version 3.5.0 or later built with the unlock notify feature +(SQLITE_ENABLE_UNLOCK_NOTIFY) enabled. + +If you plant to use SQLite incremental BLOB/TEXT I/O support, then you will +need SQLite version 3.4.0 or later built with the column metadata functions +(SQLITE_ENABLE_COLUMN_METADATA) enabled. Building on UNIX diff --git a/configure.ac b/configure.ac index 4e9b4a5..40c84e8 100644 --- a/configure.ac +++ b/configure.ac @@ -37,6 +37,9 @@ LIBSQLITE( AS_IF([test x$libsqlite_unlock_notify = xyes], AC_DEFINE([LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY], [1], [Have sqlite3_unlock_notify.])) +AS_IF([test x$libsqlite_column_metadata = xyes], +AC_DEFINE([LIBODB_SQLITE_HAVE_COLUMN_METADATA], [1], [Have column metadata functions.])) + AS_IF([test x$threads != xnone -a x$libsqlite_unlock_notify = xno], AC_MSG_WARN([libsqlite3 is built without sqlite3_unlock_notify support; multi-threaded support will be limited])) diff --git a/m4/libsqlite.m4 b/m4/libsqlite.m4 index a8fe4f7..36f92f8 100644 --- a/m4/libsqlite.m4 +++ b/m4/libsqlite.m4 @@ -7,9 +7,13 @@ dnl dnl Also sets libsqlite_unlock_notify to yes if sqlite3_unlock_notify() dnl functionality is available. dnl +dnl Also sets libsqlite_column_metadata to yes if sqlite3_column_*() +dnl functions are available. +dnl AC_DEFUN([LIBSQLITE], [ libsqlite_found=no libsqlite_unlock_notify=no +libsqlite_column_metadata=no AC_MSG_CHECKING([for libsqlite3]) @@ -58,6 +62,27 @@ libsqlite_unlock_notify=yes ]) fi +# Check for column_metadata. +# +if test x"$libsqlite_found" = xyes; then +CXX_LIBTOOL_LINK_IFELSE([ +AC_LANG_SOURCE([ +#include <sqlite3.h> + +int +main () +{ + sqlite3_stmt* stmt (0); + sqlite3_column_database_name (stmt, 0); + sqlite3_column_table_name (stmt, 0); + sqlite3_column_origin_name (stmt, 0); +} +])], +[ +libsqlite_column_metadata=yes +]) +fi + if test x"$libsqlite_found" = xyes; then AC_MSG_RESULT([yes]) $1 diff --git a/odb/sqlite/details/config.h.in b/odb/sqlite/details/config.h.in index c8158be..9c2d2d7 100644 --- a/odb/sqlite/details/config.h.in +++ b/odb/sqlite/details/config.h.in @@ -10,5 +10,6 @@ #undef LIBODB_SQLITE_STATIC_LIB #undef LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY +#undef LIBODB_SQLITE_HAVE_COLUMN_METADATA #endif /* ODB_SQLITE_DETAILS_CONFIG_H */ diff --git a/odb/sqlite/libodb-sqlite-vc10.vcxproj b/odb/sqlite/libodb-sqlite-vc10.vcxproj index 974aa48..844eeb4 100644 --- a/odb/sqlite/libodb-sqlite-vc10.vcxproj +++ b/odb/sqlite/libodb-sqlite-vc10.vcxproj @@ -88,7 +88,7 @@ </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> - <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> </ClCompile> @@ -106,7 +106,7 @@ </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> - <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> </ClCompile> @@ -126,7 +126,7 @@ <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> </ClCompile> @@ -148,7 +148,7 @@ <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> </ClCompile> diff --git a/odb/sqlite/libodb-sqlite-vc11.vcxproj b/odb/sqlite/libodb-sqlite-vc11.vcxproj index 3ec1701..670370c 100644 --- a/odb/sqlite/libodb-sqlite-vc11.vcxproj +++ b/odb/sqlite/libodb-sqlite-vc11.vcxproj @@ -92,7 +92,7 @@ </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> - <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> </ClCompile> @@ -110,7 +110,7 @@ </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> - <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> </ClCompile> @@ -130,7 +130,7 @@ <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> </ClCompile> @@ -152,7 +152,7 @@ <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> </ClCompile> diff --git a/odb/sqlite/libodb-sqlite-vc12.vcxproj b/odb/sqlite/libodb-sqlite-vc12.vcxproj index d83b7f7..f74ccbc 100644 --- a/odb/sqlite/libodb-sqlite-vc12.vcxproj +++ b/odb/sqlite/libodb-sqlite-vc12.vcxproj @@ -92,7 +92,7 @@ </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> - <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> <SDLCheck>true</SDLCheck> @@ -111,7 +111,7 @@ </PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> - <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> <SDLCheck>true</SDLCheck> @@ -132,7 +132,7 @@ <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> <SDLCheck>true</SDLCheck> @@ -155,7 +155,7 @@ <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>..\..</AdditionalIncludeDirectories> <DisableSpecificWarnings>4355;4800;4290;4251;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings> <SDLCheck>true</SDLCheck> diff --git a/odb/sqlite/libodb-sqlite-vc8.vcproj b/odb/sqlite/libodb-sqlite-vc8.vcproj index 7bcc784..ef5c743 100644 --- a/odb/sqlite/libodb-sqlite-vc8.vcproj +++ b/odb/sqlite/libodb-sqlite-vc8.vcproj @@ -45,7 +45,7 @@ AdditionalOptions="/wd4355 /wd4800 /wd4290 /wd4267" Optimization="0" AdditionalIncludeDirectories="..\.." - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -123,7 +123,7 @@ AdditionalOptions="/wd4355 /wd4800 /wd4290 /wd4267" Optimization="0" AdditionalIncludeDirectories="..\.." - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -200,7 +200,7 @@ Name="VCCLCompilerTool" AdditionalOptions="/wd4355 /wd4800 /wd4290 /wd4267" AdditionalIncludeDirectories="..\.." - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA" RuntimeLibrary="2" UsePrecompiledHeader="0" WarningLevel="3" @@ -278,7 +278,7 @@ Name="VCCLCompilerTool" AdditionalOptions="/wd4355 /wd4800 /wd4290 /wd4267" AdditionalIncludeDirectories="..\.." - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA" RuntimeLibrary="2" UsePrecompiledHeader="0" WarningLevel="3" diff --git a/odb/sqlite/libodb-sqlite-vc9.vcproj b/odb/sqlite/libodb-sqlite-vc9.vcproj index 1bcec78..f21c203 100644 --- a/odb/sqlite/libodb-sqlite-vc9.vcproj +++ b/odb/sqlite/libodb-sqlite-vc9.vcproj @@ -46,7 +46,7 @@ AdditionalOptions="/wd4355 /wd4800 /wd4290 /wd4267" Optimization="0" AdditionalIncludeDirectories="..\.." - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -124,7 +124,7 @@ AdditionalOptions="/wd4355 /wd4800 /wd4290 /wd4267" Optimization="0" AdditionalIncludeDirectories="..\.." - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -203,7 +203,7 @@ Optimization="2" EnableIntrinsicFunctions="true" AdditionalIncludeDirectories="..\.." - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA" RuntimeLibrary="2" EnableFunctionLevelLinking="true" UsePrecompiledHeader="0" @@ -284,7 +284,7 @@ Optimization="2" EnableIntrinsicFunctions="true" AdditionalIncludeDirectories="..\.." - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBODB_SQLITE_DYNAMIC_LIB;LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY;LIBODB_SQLITE_HAVE_COLUMN_METADATA" RuntimeLibrary="2" EnableFunctionLevelLinking="true" UsePrecompiledHeader="0" diff --git a/odb/sqlite/makefile b/odb/sqlite/makefile index 812e153..abee73e 100644 --- a/odb/sqlite/makefile +++ b/odb/sqlite/makefile @@ -89,6 +89,7 @@ $(out_base)/details/config.h: | $(out_base)/details/. @echo '#if SQLITE_VERSION_NUMBER >= 3006012' >>$@ @echo ' #define LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY 1' >>$@ @echo '#endif' >>$@ + @echo '#define LIBODB_SQLITE_HAVE_COLUMN_METADATA 1' >>$@ @echo '' >>$@ @echo '#endif /* ODB_SQLITE_DETAILS_CONFIG_H */' >>$@ diff --git a/odb/sqlite/statement.cxx b/odb/sqlite/statement.cxx index f7ce632..ce6458a 100644 --- a/odb/sqlite/statement.cxx +++ b/odb/sqlite/statement.cxx @@ -11,7 +11,7 @@ #include <odb/sqlite/error.hxx> #include <odb/sqlite/details/config.hxx> // LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY - + // LIBODB_SQLITE_HAVE_COLUMN_METADATA using namespace std; namespace odb @@ -355,9 +355,13 @@ namespace odb // we do while executing the statement (i.e., we don't copy // images for later processing). // +#ifdef LIBODB_SQLITE_HAVE_COLUMN_METADATA sb.db.in = sqlite3_column_database_name (stmt_, c); sb.table.in = sqlite3_column_table_name (stmt_, c); sb.column.in = sqlite3_column_origin_name (stmt_, c); +#else + assert (false); +#endif // The ROWID comes in the following column. // |