"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/jrd/trace/TraceObjects.cpp" between
Firebird-3.0.2.32703-0.tar.bz2 and Firebird-3.0.4.33054-0.tar.bz2

About: Firebird is a relational database offering many ANSI SQL standard features.

TraceObjects.cpp  (Firebird-3.0.2.32703-0.tar.bz2):TraceObjects.cpp  (Firebird-3.0.4.33054-0.tar.bz2)
skipping to change at line 183 skipping to change at line 183
const string* stmtText = m_stmt->getStatement()->getSqlText(); const string* stmtText = m_stmt->getStatement()->getSqlText();
return stmtText ? stmtText->c_str() : ""; return stmtText ? stmtText->c_str() : "";
} }
const char* TraceSQLStatementImpl::getTextUTF8() const char* TraceSQLStatementImpl::getTextUTF8()
{ {
const string* stmtText = m_stmt->getStatement()->getSqlText(); const string* stmtText = m_stmt->getStatement()->getSqlText();
if (m_textUTF8.isEmpty() && stmtText && !stmtText->isEmpty()) if (m_textUTF8.isEmpty() && stmtText && !stmtText->isEmpty())
{ {
if (!DataTypeUtil::convertToUTF8(*stmtText, m_textUTF8)) if (!DataTypeUtil::convertToUTF8(*stmtText, m_textUTF8, CS_dynami c, status_exception::raise))
return stmtText->c_str(); return stmtText->c_str();
} }
return m_textUTF8.c_str(); return m_textUTF8.c_str();
} }
const char* TraceSQLStatementImpl::getPlan() const char* TraceSQLStatementImpl::getPlan()
{ {
fillPlan(false); fillPlan(false);
return m_plan.c_str(); return m_plan.c_str();
skipping to change at line 279 skipping to change at line 279
const dsc* TraceSQLStatementImpl::DSQLParamsImpl::getParam(FB_SIZE_T idx) const dsc* TraceSQLStatementImpl::DSQLParamsImpl::getParam(FB_SIZE_T idx)
{ {
fillParams(); fillParams();
if (idx >= 0 && idx < m_descs.getCount()) if (idx >= 0 && idx < m_descs.getCount())
return &m_descs[idx]; return &m_descs[idx];
return NULL; return NULL;
} }
const char* TraceSQLStatementImpl::DSQLParamsImpl::getTextUTF8(CheckStatusWrappe
r* status, FB_SIZE_T idx)
{
const dsc* param = getParam(idx);
UCHAR* address;
USHORT length;
switch (param->dsc_dtype)
{
case dtype_text:
address = param->dsc_address;
length = param->dsc_length;
break;
case dtype_varying:
address = param->dsc_address + sizeof(USHORT);
length = *(USHORT*)param->dsc_address;
break;
default:
return NULL;
}
string src(address, length);
try
{
if (!DataTypeUtil::convertToUTF8(src, temp_utf8_text, param->dsc_
sub_type, status_exception::raise))
temp_utf8_text = src;
}
catch (const Firebird::Exception&)
{
temp_utf8_text = src;
}
return temp_utf8_text.c_str();
}
/// TraceFailedSQLStatement /// TraceFailedSQLStatement
const char* TraceFailedSQLStatement::getTextUTF8() const char* TraceFailedSQLStatement::getTextUTF8()
{ {
if (m_textUTF8.isEmpty() && !m_text.isEmpty()) if (m_textUTF8.isEmpty() && !m_text.isEmpty())
{ {
if (!DataTypeUtil::convertToUTF8(m_text, m_textUTF8)) if (!DataTypeUtil::convertToUTF8(m_text, m_textUTF8, CS_dynamic, status_exception::raise))
return m_text.c_str(); return m_text.c_str();
} }
return m_textUTF8.c_str(); return m_textUTF8.c_str();
} }
/// TraceParamsImpl /// TraceParamsImpl
FB_SIZE_T TraceParamsImpl::getCount() FB_SIZE_T TraceParamsImpl::getCount()
{ {
return m_descs->getCount(); return m_descs->getCount();
} }
const dsc* TraceParamsImpl::getParam(FB_SIZE_T idx) const dsc* TraceParamsImpl::getParam(FB_SIZE_T idx)
{ {
return m_descs->getParam(idx); return m_descs->getParam(idx);
} }
const char* TraceParamsImpl::getTextUTF8(CheckStatusWrapper* status, FB_SIZE_T i
dx)
{
const dsc* param = getParam(idx);
UCHAR* address;
USHORT length;
switch (param->dsc_dtype)
{
case dtype_text:
address = param->dsc_address;
length = param->dsc_length;
break;
case dtype_varying:
address = param->dsc_address + sizeof(USHORT);
length = *(USHORT*)param->dsc_address;
break;
default:
return NULL;
}
string src(address, length);
try
{
if (!DataTypeUtil::convertToUTF8(src, temp_utf8_text, param->dsc_
sub_type, status_exception::raise))
temp_utf8_text = src;
}
catch (const Firebird::Exception&)
{
temp_utf8_text = src;
}
return temp_utf8_text.c_str();
}
/// TraceDscFromValues /// TraceDscFromValues
void TraceDscFromValues::fillParams() void TraceDscFromValues::fillParams()
{ {
if (m_descs.getCount() || !m_params) if (m_descs.getCount() || !m_params)
return; return;
thread_db* tdbb = JRD_get_thread_data(); thread_db* tdbb = JRD_get_thread_data();
const NestConst<ValueExprNode>* ptr = m_params->items.begin(); const NestConst<ValueExprNode>* ptr = m_params->items.begin();
 End of changes. 4 change blocks. 
2 lines changed or deleted 80 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)