Index: src/libchcore/TSQLiteSerializerRowData.cpp
===================================================================
diff -u -r39864b5fbb931e3b257afbd60cfb7f36f71d146d -re96806b7f8ff7ca7e9f4afbea603e6351a3dc3e3
--- src/libchcore/TSQLiteSerializerRowData.cpp	(.../TSQLiteSerializerRowData.cpp)	(revision 39864b5fbb931e3b257afbd60cfb7f36f71d146d)
+++ src/libchcore/TSQLiteSerializerRowData.cpp	(.../TSQLiteSerializerRowData.cpp)	(revision e96806b7f8ff7ca7e9f4afbea603e6351a3dc3e3)
@@ -25,511 +25,510 @@
 #include "SerializerTrace.h"
 #include "TPlainStringPool.h"
 
-BEGIN_CHCORE_NAMESPACE
-
-///////////////////////////////////////////////////////////////////////////
-TSQLiteSerializerRowData::TSQLiteSerializerRowData(object_id_t oidRowID, TSQLiteColumnsDefinition& rColumnDefinition, bool bAdded, unsigned long long* pPoolMemory, size_t stPoolMemorySizeInBytes, TPlainStringPool& poolStrings) :
-	m_rColumns(rColumnDefinition),
-	m_pPoolMemory(pPoolMemory),
-	m_poolStrings(poolStrings)
+namespace chcore
 {
-	if(!m_pPoolMemory)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Null memory provided"));
-	if(rColumnDefinition.GetCount() > 63)
-		THROW_SERIALIZER_EXCEPTION(eErr_InternalProblem, _T("Serializer supports up to 63 columns. If more is needed the block header needs to be increased."));
+	///////////////////////////////////////////////////////////////////////////
+	TSQLiteSerializerRowData::TSQLiteSerializerRowData(object_id_t oidRowID, TSQLiteColumnsDefinition& rColumnDefinition, bool bAdded, unsigned long long* pPoolMemory, size_t stPoolMemorySizeInBytes, TPlainStringPool& poolStrings) :
+		m_rColumns(rColumnDefinition),
+		m_pPoolMemory(pPoolMemory),
+		m_poolStrings(poolStrings)
+	{
+		if (!m_pPoolMemory)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Null memory provided"));
+		if (rColumnDefinition.GetCount() > 63)
+			THROW_SERIALIZER_EXCEPTION(eErr_InternalProblem, _T("Serializer supports up to 63 columns. If more is needed the block header needs to be increased."));
 
-	// initialize memory
-	memset((void*)pPoolMemory, 0, stPoolMemorySizeInBytes);
+		// initialize memory
+		memset((void*)pPoolMemory, 0, stPoolMemorySizeInBytes);
 
-	// set id
-	size_t stIDIndex = rColumnDefinition.GetColumnIndex(_T("id"));
-	SetValue(stIDIndex, oidRowID);
+		// set id
+		size_t stIDIndex = rColumnDefinition.GetColumnIndex(_T("id"));
+		SetValue(stIDIndex, oidRowID);
 
-	if(bAdded)
-		MarkAsAdded();
-}
+		if (bAdded)
+			MarkAsAdded();
+	}
 
-TSQLiteSerializerRowData::TSQLiteSerializerRowData(const TSQLiteSerializerRowData& rSrc) :
-	m_rColumns(rSrc.m_rColumns),
-	m_pPoolMemory(rSrc.m_pPoolMemory),
-	m_poolStrings(rSrc.m_poolStrings)
-{
-}
+	TSQLiteSerializerRowData::TSQLiteSerializerRowData(const TSQLiteSerializerRowData& rSrc) :
+		m_rColumns(rSrc.m_rColumns),
+		m_pPoolMemory(rSrc.m_pPoolMemory),
+		m_poolStrings(rSrc.m_poolStrings)
+	{
+	}
 
-TSQLiteSerializerRowData::~TSQLiteSerializerRowData()
-{
-}
+	TSQLiteSerializerRowData::~TSQLiteSerializerRowData()
+	{
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, bool bValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_bool)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, bool bValue)
+	{
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_bool)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	ModifyColumnData(stColIndex) = (bValue ? 1ULL : 0ULL);
-	return *this;
-}
+		ModifyColumnData(stColIndex) = (bValue ? 1ULL : 0ULL);
+		return *this;
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, short siValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_short)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, short siValue)
+	{
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_short)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	ModifyColumnData(stColIndex) = (unsigned long long)*(unsigned short*)&siValue;
-	return *this;
-}
+		ModifyColumnData(stColIndex) = (unsigned long long)*(unsigned short*)&siValue;
+		return *this;
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, unsigned short usiValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_ushort)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, unsigned short usiValue)
+	{
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_ushort)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	ModifyColumnData(stColIndex) = (unsigned long long)usiValue;
-	return *this;
-}
+		ModifyColumnData(stColIndex) = (unsigned long long)usiValue;
+		return *this;
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, int iValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_int)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, int iValue)
+	{
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_int)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	ModifyColumnData(stColIndex) = (unsigned long long)*(unsigned int*)&iValue;
-	return *this;
-}
+		ModifyColumnData(stColIndex) = (unsigned long long)*(unsigned int*)&iValue;
+		return *this;
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, unsigned int uiValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_uint)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, unsigned int uiValue)
+	{
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_uint)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	ModifyColumnData(stColIndex) = (unsigned long long)uiValue;
-	return *this;
-}
+		ModifyColumnData(stColIndex) = (unsigned long long)uiValue;
+		return *this;
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, long lValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_long)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, long lValue)
+	{
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_long)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	ModifyColumnData(stColIndex) = (unsigned long long)*(unsigned long*)&lValue;
-	return *this;
-}
+		ModifyColumnData(stColIndex) = (unsigned long long)*(unsigned long*)&lValue;
+		return *this;
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, unsigned long ulValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_ulong)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, unsigned long ulValue)
+	{
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_ulong)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	ModifyColumnData(stColIndex) = (unsigned long long)ulValue;
-	return *this;
-}
+		ModifyColumnData(stColIndex) = (unsigned long long)ulValue;
+		return *this;
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, long long llValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_longlong)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, long long llValue)
+	{
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_longlong)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	ModifyColumnData(stColIndex) = *(unsigned long long*)&llValue;
-	return *this;
-}
+		ModifyColumnData(stColIndex) = *(unsigned long long*)&llValue;
+		return *this;
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, unsigned long long ullValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_ulonglong)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, unsigned long long ullValue)
+	{
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_ulonglong)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	ModifyColumnData(stColIndex) = ullValue;
-	return *this;
-}
+		ModifyColumnData(stColIndex) = ullValue;
+		return *this;
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, double dValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_double)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, double dValue)
+	{
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_double)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	BOOST_STATIC_ASSERT(sizeof(double) == sizeof(unsigned long long));
-	ModifyColumnData(stColIndex) = *(unsigned long long*)&dValue;
-	return *this;
-}
+		BOOST_STATIC_ASSERT(sizeof(double) == sizeof(unsigned long long));
+		ModifyColumnData(stColIndex) = *(unsigned long long*)&dValue;
+		return *this;
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, const TString& strValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_string)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
-
-	if(strValue.IsEmpty())
-		ModifyColumnData(stColIndex) = (unsigned long long)0;
-	else
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, const TString& strValue)
 	{
-		wchar_t* pszBuffer = m_poolStrings.AllocForString(strValue.c_str());
-		ModifyColumnData(stColIndex) = (unsigned long long)(void*)pszBuffer;
-	}
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_string)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	return *this;
-}
+		if (strValue.IsEmpty())
+			ModifyColumnData(stColIndex) = (unsigned long long)0;
+		else
+		{
+			wchar_t* pszBuffer = m_poolStrings.AllocForString(strValue.c_str());
+			ModifyColumnData(stColIndex) = (unsigned long long)(void*)pszBuffer;
+		}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, const TSmartPath& pathValue)
-{
-	if(m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_path)
-		THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
+		return *this;
+	}
 
-	if(pathValue.IsEmpty())
-		ModifyColumnData(stColIndex) = (unsigned long long)0;
-	else
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(size_t stColIndex, const TSmartPath& pathValue)
 	{
-		wchar_t* pszBuffer = m_poolStrings.AllocForString(pathValue.ToString());
-		ModifyColumnData(stColIndex) = (unsigned long long)(void*)pszBuffer;
-	}
+		if (m_rColumns.GetColumnType(stColIndex) != IColumnsDefinition::eType_path)
+			THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid argument type provided"));
 
-	return *this;
-}
+		if (pathValue.IsEmpty())
+			ModifyColumnData(stColIndex) = (unsigned long long)0;
+		else
+		{
+			wchar_t* pszBuffer = m_poolStrings.AllocForString(pathValue.ToString());
+			ModifyColumnData(stColIndex) = (unsigned long long)(void*)pszBuffer;
+		}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, bool bValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), bValue);
-}
+		return *this;
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, short iValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), iValue);
-}
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, bool bValue)
+	{
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), bValue);
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, unsigned short uiValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), uiValue);
-}
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, short iValue)
+	{
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), iValue);
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, int iValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), iValue);
-}
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, unsigned short uiValue)
+	{
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), uiValue);
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, unsigned int uiValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), uiValue);
-}
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, int iValue)
+	{
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), iValue);
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, long lValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), lValue);
-}
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, unsigned int uiValue)
+	{
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), uiValue);
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, unsigned long ulValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), ulValue);
-}
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, long lValue)
+	{
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), lValue);
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, long long llValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), llValue);
-}
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, unsigned long ulValue)
+	{
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), ulValue);
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, unsigned long long llValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), llValue);
-}
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, long long llValue)
+	{
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), llValue);
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, double dValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), dValue);
-}
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, unsigned long long llValue)
+	{
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), llValue);
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, const TString& strValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), strValue);
-}
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, double dValue)
+	{
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), dValue);
+	}
 
-ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, const TSmartPath& pathValue)
-{
-	return SetValue(m_rColumns.GetColumnIndex(strColumnName), pathValue);
-}
-
-void TSQLiteSerializerRowData::BindParamsAndExec(sqlite::TSQLiteStatement& tStatement)
-{
-	using namespace sqlite;
-
-	if(IsAdded())
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, const TString& strValue)
 	{
-		// exec query
-		int iColumn = 1;
-		BindParams(tStatement, iColumn);
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), strValue);
+	}
 
-		tStatement.Step();
+	ISerializerRowData& TSQLiteSerializerRowData::SetValue(const wchar_t* strColumnName, const TSmartPath& pathValue)
+	{
+		return SetValue(m_rColumns.GetColumnIndex(strColumnName), pathValue);
 	}
-	else if(HasAnyData())
+
+	void TSQLiteSerializerRowData::BindParamsAndExec(sqlite::TSQLiteStatement& tStatement)
 	{
-		int iColumn = 1;
+		using namespace sqlite;
 
-		size_t stIDColumnIndex = m_rColumns.GetColumnIndex(_T("id"));
+		if (IsAdded())
+		{
+			// exec query
+			int iColumn = 1;
+			BindParams(tStatement, iColumn);
 
-		BindParams(tStatement, iColumn, stIDColumnIndex);
+			tStatement.Step();
+		}
+		else if (HasAnyData())
+		{
+			int iColumn = 1;
 
-		// bind id as the last argument
-		tStatement.BindValue(iColumn++, GetDataForColumn(stIDColumnIndex));
-		tStatement.Step();
+			size_t stIDColumnIndex = m_rColumns.GetColumnIndex(_T("id"));
 
-		int iChanges = tStatement.Changes();
-		_ASSERTE(iChanges == 1);
-		if(iChanges != 1)
-			THROW_SERIALIZER_EXCEPTION(eErr_InvalidData, _T("Update query did not update record in the database"));
+			BindParams(tStatement, iColumn, stIDColumnIndex);
+
+			// bind id as the last argument
+			tStatement.BindValue(iColumn++, GetDataForColumn(stIDColumnIndex));
+			tStatement.Step();
+
+			int iChanges = tStatement.Changes();
+			_ASSERTE(iChanges == 1);
+			if (iChanges != 1)
+				THROW_SERIALIZER_EXCEPTION(eErr_InvalidData, _T("Update query did not update record in the database"));
+		}
 	}
-}
 
-TString TSQLiteSerializerRowData::GetQuery(const TString& strContainerName) const
-{
-	if(IsAdded())
+	TString TSQLiteSerializerRowData::GetQuery(const TString& strContainerName) const
 	{
-		// prepare insert query
-		TString strQuery = boost::str(boost::wformat(L"INSERT INTO %1%(") % strContainerName).c_str();
-		TString strParams;
-
-		size_t stCount = m_rColumns.GetCount();
-		for(size_t stIndex = 0; stIndex < stCount; ++stIndex)
+		if (IsAdded())
 		{
-			strQuery += boost::str(boost::wformat(_T("%1%,")) % m_rColumns.GetColumnName(stIndex)).c_str();
-			strParams += _T("?,");
-		}
+			// prepare insert query
+			TString strQuery = boost::str(boost::wformat(L"INSERT INTO %1%(") % strContainerName).c_str();
+			TString strParams;
 
-		strQuery.TrimRightSelf(_T(","));
-		strQuery += _T(") VALUES(");
+			size_t stCount = m_rColumns.GetCount();
+			for (size_t stIndex = 0; stIndex < stCount; ++stIndex)
+			{
+				strQuery += boost::str(boost::wformat(_T("%1%,")) % m_rColumns.GetColumnName(stIndex)).c_str();
+				strParams += _T("?,");
+			}
 
-		strParams.TrimRightSelf(_T(","));
-		strQuery += strParams;
-		strQuery += _T(")");
+			strQuery.TrimRightSelf(_T(","));
+			strQuery += _T(") VALUES(");
 
-		return strQuery;
-	}
-	else if(HasAnyData())
-	{
-		// prepare update query
-		TString strQuery = boost::str(boost::wformat(L"UPDATE %1% SET ") % strContainerName).c_str();
+			strParams.TrimRightSelf(_T(","));
+			strQuery += strParams;
+			strQuery += _T(")");
 
-		size_t stCountOfAssignments = 0;
-		size_t stIDColumnIndex = m_rColumns.GetColumnIndex(_T("id"));
-		size_t stCount = m_rColumns.GetCount();
-		for(size_t stIndex = 0; stIndex < stCount; ++stIndex)
+			return strQuery;
+		}
+		else if (HasAnyData())
 		{
-			if(stIndex != stIDColumnIndex && HasData(stIndex))
+			// prepare update query
+			TString strQuery = boost::str(boost::wformat(L"UPDATE %1% SET ") % strContainerName).c_str();
+
+			size_t stCountOfAssignments = 0;
+			size_t stIDColumnIndex = m_rColumns.GetColumnIndex(_T("id"));
+			size_t stCount = m_rColumns.GetCount();
+			for (size_t stIndex = 0; stIndex < stCount; ++stIndex)
 			{
-				strQuery += boost::str(boost::wformat(_T("%1%=?,")) % m_rColumns.GetColumnName(stIndex)).c_str();
-				++stCountOfAssignments;
+				if (stIndex != stIDColumnIndex && HasData(stIndex))
+				{
+					strQuery += boost::str(boost::wformat(_T("%1%=?,")) % m_rColumns.GetColumnName(stIndex)).c_str();
+					++stCountOfAssignments;
+				}
 			}
-		}
 
-		if(stCountOfAssignments == 0)
-			return TString();
+			if (stCountOfAssignments == 0)
+				return TString();
 
-		strQuery.TrimRightSelf(_T(","));
-		strQuery += _T(" WHERE id=?");
+			strQuery.TrimRightSelf(_T(","));
+			strQuery += _T(" WHERE id=?");
 
-		return strQuery;
+			return strQuery;
+		}
+		else
+			return TString();
 	}
-	else
-		return TString();
-}
 
-unsigned long long TSQLiteSerializerRowData::GetChangeIdentification() const
-{
-	return GetDataHeader();
-}
+	unsigned long long TSQLiteSerializerRowData::GetChangeIdentification() const
+	{
+		return GetDataHeader();
+	}
 
-void TSQLiteSerializerRowData::MarkAsAdded()
-{
-	// first bit is always the "added" bit
-	m_pPoolMemory[0] |= AddedBit;
-}
+	void TSQLiteSerializerRowData::MarkAsAdded()
+	{
+		// first bit is always the "added" bit
+		m_pPoolMemory[0] |= AddedBit;
+	}
 
-const unsigned long long& TSQLiteSerializerRowData::GetDataForColumn(size_t stColIndex) const
-{
-	return (m_pPoolMemory[stColIndex + 1]);
-}
+	const unsigned long long& TSQLiteSerializerRowData::GetDataForColumn(size_t stColIndex) const
+	{
+		return (m_pPoolMemory[stColIndex + 1]);
+	}
 
-unsigned long long& TSQLiteSerializerRowData::ModifyColumnData(size_t stColIndex)
-{
-	FreeColumnData(stColIndex);
+	unsigned long long& TSQLiteSerializerRowData::ModifyColumnData(size_t stColIndex)
+	{
+		FreeColumnData(stColIndex);
 
-	MarkColumnUsage(stColIndex, true);
-	return (m_pPoolMemory[stColIndex + 1]);
-}
+		MarkColumnUsage(stColIndex, true);
+		return (m_pPoolMemory[stColIndex + 1]);
+	}
 
-void TSQLiteSerializerRowData::MarkColumnUsage(size_t stIndex, bool bUsed)
-{
-	if(stIndex >= m_rColumns.GetCount())
-		THROW_SERIALIZER_EXCEPTION(eErr_BoundsExceeded, _T("Wrong column provided"));
+	void TSQLiteSerializerRowData::MarkColumnUsage(size_t stIndex, bool bUsed)
+	{
+		if (stIndex >= m_rColumns.GetCount())
+			THROW_SERIALIZER_EXCEPTION(eErr_BoundsExceeded, _T("Wrong column provided"));
 
-	unsigned long long ullMask = 2ULL << stIndex;
-	if(bUsed)
-		m_pPoolMemory[0] |= ullMask;
-	else
-		m_pPoolMemory[0] &= ~ullMask;
-}
+		unsigned long long ullMask = 2ULL << stIndex;
+		if (bUsed)
+			m_pPoolMemory[0] |= ullMask;
+		else
+			m_pPoolMemory[0] &= ~ullMask;
+	}
 
-bool TSQLiteSerializerRowData::IsAdded() const
-{
-	return (m_pPoolMemory[0] & AddedBit) != 0;
-}
+	bool TSQLiteSerializerRowData::IsAdded() const
+	{
+		return (m_pPoolMemory[0] & AddedBit) != 0;
+	}
 
-bool TSQLiteSerializerRowData::HasAnyData() const
-{
-	return GetDataHeader() != 0;
-}
+	bool TSQLiteSerializerRowData::HasAnyData() const
+	{
+		return GetDataHeader() != 0;
+	}
 
-bool TSQLiteSerializerRowData::HasData(size_t stColumnIndex) const
-{
-	return (GetDataHeader() & (2ULL << stColumnIndex)) != 0;
-}
-
-void TSQLiteSerializerRowData::BindParams(sqlite::TSQLiteStatement &tStatement, int& iSQLiteColumnNumber, size_t stSkipColumn)
-{
-	size_t stCount = m_rColumns.GetCount();
-	for(size_t stColumn = 0; stColumn < stCount; ++stColumn)
+	bool TSQLiteSerializerRowData::HasData(size_t stColumnIndex) const
 	{
-		if(stColumn == stSkipColumn)
-			continue;
+		return (GetDataHeader() & (2ULL << stColumnIndex)) != 0;
+	}
 
-		if(HasData(stColumn))
+	void TSQLiteSerializerRowData::BindParams(sqlite::TSQLiteStatement &tStatement, int& iSQLiteColumnNumber, size_t stSkipColumn)
+	{
+		size_t stCount = m_rColumns.GetCount();
+		for (size_t stColumn = 0; stColumn < stCount; ++stColumn)
 		{
-			switch(m_rColumns.GetColumnType(stColumn))
-			{
-			case IColumnsDefinition::eType_bool:
-			{
-				bool bValue = GetDataForColumn(stColumn) != 0 ? true : false;
-				DBTRACE1_D(_T("- param(bool): %ld\n"), bValue ? 1l : 0l);
-				tStatement.BindValue(iSQLiteColumnNumber++, bValue);
-				break;
-			}
+			if (stColumn == stSkipColumn)
+				continue;
 
-			case IColumnsDefinition::eType_short:
+			if (HasData(stColumn))
 			{
-				short siValue = *(short*)(unsigned short*)&GetDataForColumn(stColumn);
-				DBTRACE1_D(_T("- param(short): %d\n"), siValue);
-				tStatement.BindValue(iSQLiteColumnNumber++, siValue);
-				break;
-			}
+				switch (m_rColumns.GetColumnType(stColumn))
+				{
+				case IColumnsDefinition::eType_bool:
+				{
+					bool bValue = GetDataForColumn(stColumn) != 0 ? true : false;
+					DBTRACE1_D(_T("- param(bool): %ld\n"), bValue ? 1l : 0l);
+					tStatement.BindValue(iSQLiteColumnNumber++, bValue);
+					break;
+				}
 
-			case IColumnsDefinition::eType_ushort:
-			{
-				unsigned short usiValue = (unsigned short)GetDataForColumn(stColumn);
-				DBTRACE1_D(_T("- param(ushort): %u\n"), usiValue);
-				tStatement.BindValue(iSQLiteColumnNumber++, usiValue);
-				break;
-			}
+				case IColumnsDefinition::eType_short:
+				{
+					short siValue = *(short*)(unsigned short*)&GetDataForColumn(stColumn);
+					DBTRACE1_D(_T("- param(short): %d\n"), siValue);
+					tStatement.BindValue(iSQLiteColumnNumber++, siValue);
+					break;
+				}
 
-			case IColumnsDefinition::eType_int:
-			{
-				int iValue = *(int*)(unsigned int*)&GetDataForColumn(stColumn);
-				DBTRACE1_D(_T("- param(int): %ld\n"), iValue);
-				tStatement.BindValue(iSQLiteColumnNumber++, iValue);
-				break;
-			}
+				case IColumnsDefinition::eType_ushort:
+				{
+					unsigned short usiValue = (unsigned short)GetDataForColumn(stColumn);
+					DBTRACE1_D(_T("- param(ushort): %u\n"), usiValue);
+					tStatement.BindValue(iSQLiteColumnNumber++, usiValue);
+					break;
+				}
 
-			case IColumnsDefinition::eType_uint:
-			{
-				unsigned int uiValue = (unsigned int)GetDataForColumn(stColumn);
-				DBTRACE1_D(_T("- param(uint): %lu\n"), uiValue);
-				tStatement.BindValue(iSQLiteColumnNumber++, uiValue);
-				break;
-			}
+				case IColumnsDefinition::eType_int:
+				{
+					int iValue = *(int*)(unsigned int*)&GetDataForColumn(stColumn);
+					DBTRACE1_D(_T("- param(int): %ld\n"), iValue);
+					tStatement.BindValue(iSQLiteColumnNumber++, iValue);
+					break;
+				}
 
-			case IColumnsDefinition::eType_long:
-			{
-				long lValue = *(long*)(unsigned long*)&GetDataForColumn(stColumn);
-				DBTRACE1_D(_T("- param(long): %ld\n"), lValue);
-				tStatement.BindValue(iSQLiteColumnNumber++, lValue);
-				break;
-			}
+				case IColumnsDefinition::eType_uint:
+				{
+					unsigned int uiValue = (unsigned int)GetDataForColumn(stColumn);
+					DBTRACE1_D(_T("- param(uint): %lu\n"), uiValue);
+					tStatement.BindValue(iSQLiteColumnNumber++, uiValue);
+					break;
+				}
 
-			case IColumnsDefinition::eType_ulong:
-			{
-				unsigned long ulValue = (unsigned long)GetDataForColumn(stColumn);
-				DBTRACE1_D(_T("- param(ulong): %lu\n"), ulValue);
-				tStatement.BindValue(iSQLiteColumnNumber++, ulValue);
-				break;
-			}
+				case IColumnsDefinition::eType_long:
+				{
+					long lValue = *(long*)(unsigned long*)&GetDataForColumn(stColumn);
+					DBTRACE1_D(_T("- param(long): %ld\n"), lValue);
+					tStatement.BindValue(iSQLiteColumnNumber++, lValue);
+					break;
+				}
 
-			case IColumnsDefinition::eType_longlong:
-			{
-				long long llValue = *(long long*)(unsigned long long*)&GetDataForColumn(stColumn);
-				DBTRACE1_D(_T("- param(llong): %I64d\n"), llValue);
-				tStatement.BindValue(iSQLiteColumnNumber++, llValue);
-				break;
-			}
+				case IColumnsDefinition::eType_ulong:
+				{
+					unsigned long ulValue = (unsigned long)GetDataForColumn(stColumn);
+					DBTRACE1_D(_T("- param(ulong): %lu\n"), ulValue);
+					tStatement.BindValue(iSQLiteColumnNumber++, ulValue);
+					break;
+				}
 
-			case IColumnsDefinition::eType_ulonglong:
-			{
-				unsigned long long ullValue = GetDataForColumn(stColumn);
-				DBTRACE1_D(_T("- param(ullong): %I64u\n"), ullValue);
-				tStatement.BindValue(iSQLiteColumnNumber++, ullValue);
-				break;
-			}
+				case IColumnsDefinition::eType_longlong:
+				{
+					long long llValue = *(long long*)(unsigned long long*)&GetDataForColumn(stColumn);
+					DBTRACE1_D(_T("- param(llong): %I64d\n"), llValue);
+					tStatement.BindValue(iSQLiteColumnNumber++, llValue);
+					break;
+				}
 
-			case IColumnsDefinition::eType_double:
-			{
-				double dValue = *(double*)(unsigned long long*)&GetDataForColumn(stColumn);
-				DBTRACE1_D(_T("- param(double): %f\n"), dValue);
-				tStatement.BindValue(iSQLiteColumnNumber++, dValue);
-				break;
-			}
+				case IColumnsDefinition::eType_ulonglong:
+				{
+					unsigned long long ullValue = GetDataForColumn(stColumn);
+					DBTRACE1_D(_T("- param(ullong): %I64u\n"), ullValue);
+					tStatement.BindValue(iSQLiteColumnNumber++, ullValue);
+					break;
+				}
 
-			case IColumnsDefinition::eType_string:
-			{
-				const wchar_t* pszValue = (const wchar_t*)(unsigned long long*)GetDataForColumn(stColumn);
-				DBTRACE1_D(_T("- param(string): %s\n"), pszValue ? pszValue : _T(""));
-				tStatement.BindValue(iSQLiteColumnNumber++, pszValue ? pszValue : _T(""));
-				break;
-			}
+				case IColumnsDefinition::eType_double:
+				{
+					double dValue = *(double*)(unsigned long long*)&GetDataForColumn(stColumn);
+					DBTRACE1_D(_T("- param(double): %f\n"), dValue);
+					tStatement.BindValue(iSQLiteColumnNumber++, dValue);
+					break;
+				}
 
-			case IColumnsDefinition::eType_path:
-			{
-				const wchar_t* pszValue = (const wchar_t*)(unsigned long long*)GetDataForColumn(stColumn);
-				DBTRACE1_D(_T("- param(path): %s\n"), pszValue ? pszValue : _T(""));
-				tStatement.BindValue(iSQLiteColumnNumber++, pszValue ? PathFromString(pszValue) : TSmartPath());
-				break;
-			}
+				case IColumnsDefinition::eType_string:
+				{
+					const wchar_t* pszValue = (const wchar_t*)(unsigned long long*)GetDataForColumn(stColumn);
+					DBTRACE1_D(_T("- param(string): %s\n"), pszValue ? pszValue : _T(""));
+					tStatement.BindValue(iSQLiteColumnNumber++, pszValue ? pszValue : _T(""));
+					break;
+				}
 
-			default:
-				THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid type"));
+				case IColumnsDefinition::eType_path:
+				{
+					const wchar_t* pszValue = (const wchar_t*)(unsigned long long*)GetDataForColumn(stColumn);
+					DBTRACE1_D(_T("- param(path): %s\n"), pszValue ? pszValue : _T(""));
+					tStatement.BindValue(iSQLiteColumnNumber++, pszValue ? PathFromString(pszValue) : TSmartPath());
+					break;
+				}
+
+				default:
+					THROW_SERIALIZER_EXCEPTION(eErr_InvalidArgument, _T("Invalid type"));
+				}
 			}
 		}
 	}
-}
 
-unsigned long long TSQLiteSerializerRowData::GetDataHeader() const
-{
-	return m_pPoolMemory[0];
-}
+	unsigned long long TSQLiteSerializerRowData::GetDataHeader() const
+	{
+		return m_pPoolMemory[0];
+	}
 
-void TSQLiteSerializerRowData::FreeColumnData(size_t stColumnID)
-{
-	if(!HasData(stColumnID))
-		return;
-
-	switch(m_rColumns.GetColumnType(stColumnID))
+	void TSQLiteSerializerRowData::FreeColumnData(size_t stColumnID)
 	{
-	case IColumnsDefinition::eType_path:
-	case IColumnsDefinition::eType_string:
+		if (!HasData(stColumnID))
+			return;
+
+		switch (m_rColumns.GetColumnType(stColumnID))
 		{
+		case IColumnsDefinition::eType_path:
+		case IColumnsDefinition::eType_string:
+		{
 			unsigned long long& ullColumnData = m_pPoolMemory[stColumnID + 1];
 			ullColumnData = 0ULL;
-			
+
 			break;
 		}
+		}
 	}
-}
 
-void TSQLiteSerializerRowData::FreeAllColumnData()
-{
-	size_t stCount = m_rColumns.GetCount();
-	for(size_t stColumn = 0; stColumn < stCount; ++stColumn)
+	void TSQLiteSerializerRowData::FreeAllColumnData()
 	{
-		FreeColumnData(stColumn);
+		size_t stCount = m_rColumns.GetCount();
+		for (size_t stColumn = 0; stColumn < stCount; ++stColumn)
+		{
+			FreeColumnData(stColumn);
+		}
 	}
-}
 
-TSQLiteSerializerRowData& TSQLiteSerializerRowData::operator=(const TSQLiteSerializerRowData& rSrc)
-{
-	m_pPoolMemory = rSrc.m_pPoolMemory;
+	TSQLiteSerializerRowData& TSQLiteSerializerRowData::operator=(const TSQLiteSerializerRowData& rSrc)
+	{
+		m_pPoolMemory = rSrc.m_pPoolMemory;
 
-	return *this;
+		return *this;
+	}
 }
-
-END_CHCORE_NAMESPACE