mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-24 00:49:46 +02:00
* fix(ODBC): Insert NULL using BULK #4001 resolve bound types and sizes at compile time * fix: remove string suffix for static_assert * Insert NULL using BULK #4001 * fix: typo * fix(SQLite): missing functions; consolidate extract calls * chore(SQLite): remove unnecessary typedef * fix(SQLite): remove duplicate functions * fix(SQLite): compile errors and warnings * fix(SQLite): extract implementation signatures * fix(SQLite): long64 platforms compile errors * fix(SQLite): long64 platforms compile errors, part ii * fix(ODBC): windows build * fix(ODBC): MSSQL big string on windows * fix(Data): psql and mysql compile errors * fix(PostgreSQL): add missing functions * fix(ODBC): revert column size discovery (breaks Oracle) * fix(PostgreSQL): Nullable extraction #4001 * fix(MySQL): Nullable extraction #4001 * chore(Data): code tidy up * fix(ODBC): add missing changes
This commit is contained in:

committed by
GitHub

parent
fe9c13102d
commit
9530a77347
@@ -652,6 +652,154 @@ bool BinaryExtractor::extract(std::size_t pos, Dynamic::Var& val)
|
||||
return readVar(outputParameter, val);
|
||||
}
|
||||
|
||||
//////////////
|
||||
// Nullable
|
||||
//////////////
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Poco::Int8>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Poco::UInt8>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Poco::Int16>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Poco::UInt16>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Poco::Int32>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Poco::UInt32>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Poco::Int64>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Poco::UInt64>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
#ifndef POCO_INT64_IS_LONG
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<long>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<unsigned long>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
#endif
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<bool>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<float>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<double>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<char>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<std::string>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<UTF16String>& val)
|
||||
{
|
||||
throw NotImplementedException(poco_src_loc);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<BLOB>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<CLOB>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<DateTime>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Date>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Time>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<UUID>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Any>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t pos, Poco::Nullable<Poco::Dynamic::Var>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::isNull(std::size_t col, std::size_t /*row*/)
|
||||
{
|
||||
@@ -849,6 +997,23 @@ bool BinaryExtractor::extract(std::size_t, std::list<long>&)
|
||||
{
|
||||
throw NotImplementedException("std::list extractor must be implemented.");
|
||||
}
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t, std::vector<unsigned long>&)
|
||||
{
|
||||
throw NotImplementedException("std::vector extractor must be implemented.");
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t, std::deque<unsigned long>&)
|
||||
{
|
||||
throw NotImplementedException("std::deque extractor must be implemented.");
|
||||
}
|
||||
|
||||
|
||||
bool BinaryExtractor::extract(std::size_t, std::list<unsigned long>&)
|
||||
{
|
||||
throw NotImplementedException("std::list extractor must be implemented.");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
@@ -27,7 +27,7 @@ namespace Data {
|
||||
namespace PostgreSQL {
|
||||
|
||||
|
||||
Extractor::Extractor(StatementExecutor& st /*, ResultMetadata& md */):
|
||||
Extractor::Extractor(StatementExecutor& st):
|
||||
_statementExecutor(st)
|
||||
{
|
||||
}
|
||||
@@ -539,6 +539,154 @@ bool Extractor::extractToDynamic(std::size_t pos, Dynamic::Var& val)
|
||||
return success;
|
||||
}
|
||||
|
||||
//////////////
|
||||
// Nullable
|
||||
//////////////
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Poco::Int8>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Poco::UInt8>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Poco::Int16>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Poco::UInt16>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Poco::Int32>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Poco::UInt32>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Poco::Int64>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Poco::UInt64>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
#ifndef POCO_INT64_IS_LONG
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<long>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<unsigned long>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
#endif
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<bool>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<float>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<double>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<char>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<std::string>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<UTF16String>& val)
|
||||
{
|
||||
throw NotImplementedException(poco_src_loc);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<BLOB>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<CLOB>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<DateTime>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Date>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Time>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<UUID>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Any>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t pos, Poco::Nullable<Poco::Dynamic::Var>& val)
|
||||
{
|
||||
return extractNullable(pos, val);
|
||||
}
|
||||
|
||||
|
||||
//////////////
|
||||
// Not implemented
|
||||
@@ -706,6 +854,23 @@ bool Extractor::extract(std::size_t, std::list<long>&)
|
||||
{
|
||||
throw NotImplementedException("std::list extractor must be implemented.");
|
||||
}
|
||||
|
||||
bool Extractor::extract(std::size_t, std::vector<unsigned long>&)
|
||||
{
|
||||
throw NotImplementedException("std::vector extractor must be implemented.");
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t, std::deque<unsigned long>&)
|
||||
{
|
||||
throw NotImplementedException("std::deque extractor must be implemented.");
|
||||
}
|
||||
|
||||
|
||||
bool Extractor::extract(std::size_t, std::list<unsigned long>&)
|
||||
{
|
||||
throw NotImplementedException("std::list extractor must be implemented.");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user