summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Ehrlicher <[email protected]>2025-04-18 21:16:41 +0200
committerChristian Ehrlicher <[email protected]>2025-04-23 06:18:27 +0200
commit3208ad494c7c03b964487787e246aedc444397dc (patch)
treeb062e4bc0d8dc49f555b7a163a977ece9920c7af
parent87bbcddb1d68142b3b8a21d20ec19e38c55a5e93 (diff)
SQL/OCI: do not shadow QSqlCachedResultPrivate::sql
Rename QOCIResultPrivate::sql to QOCIResultPrivate::stmtp to avoid shadowing of the sql member from base class. Remove some useless casts as a drive-by. Pick-to: 6.9 Task-number: QTBUG-136024 Change-Id: I2a5951991039c4de7aecc29f9161dede7b4f3473 Reviewed-by: Volker Hilsheimer <[email protected]>
-rw-r--r--src/plugins/sqldrivers/oci/qsql_oci.cpp108
-rw-r--r--src/plugins/sqldrivers/oci/qsql_oci_p.h2
2 files changed, 54 insertions, 56 deletions
diff --git a/src/plugins/sqldrivers/oci/qsql_oci.cpp b/src/plugins/sqldrivers/oci/qsql_oci.cpp
index 9ebead8bc3f..c1ef405806c 100644
--- a/src/plugins/sqldrivers/oci/qsql_oci.cpp
+++ b/src/plugins/sqldrivers/oci/qsql_oci.cpp
@@ -218,13 +218,13 @@ public:
OCIEnv *env;
OCIError *err = nullptr;
OCISvcCtx *&svc;
- OCIStmt *sql = nullptr;
+ OCIStmt *stmtp = nullptr;
bool transaction;
int serverVersion;
int prefetchRows, prefetchMem;
void setStatementAttributes();
- int bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, int pos,
+ int bindValue(OCIStmt *stmtp, OCIBind **hbnd, OCIError *err, int pos,
const QVariant &val, dvoid *indPtr, ub4 *tmpSize, TempStorage &tmpStorage);
int bindValues(QVariantList &values, IndicatorArray &indicators, SizeArray &tmpSizes,
TempStorage &tmpStorage);
@@ -273,12 +273,12 @@ public:
void QOCIResultPrivate::setStatementAttributes()
{
- Q_ASSERT(sql);
+ Q_ASSERT(stmtp);
int r = 0;
if (prefetchRows >= 0) {
- r = OCIAttrSet(sql,
+ r = OCIAttrSet(stmtp,
OCI_HTYPE_STMT,
&prefetchRows,
0,
@@ -289,7 +289,7 @@ void QOCIResultPrivate::setStatementAttributes()
" Couldn't set OCI_ATTR_PREFETCH_ROWS: ", err);
}
if (prefetchMem >= 0) {
- r = OCIAttrSet(sql,
+ r = OCIAttrSet(stmtp,
OCI_HTYPE_STMT,
&prefetchMem,
0,
@@ -301,7 +301,7 @@ void QOCIResultPrivate::setStatementAttributes()
}
}
-int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, int pos,
+int QOCIResultPrivate::bindValue(OCIStmt *stmtp, OCIBind **hbnd, OCIError *err, int pos,
const QVariant &val, dvoid *indPtr, ub4 *tmpSize, TempStorage &tmpStorage)
{
int r = OCI_SUCCESS;
@@ -309,7 +309,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
switch (val.typeId()) {
case QMetaType::QByteArray:
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
isOutValue(pos)
? const_cast<char *>(reinterpret_cast<QByteArray *>(data)->constData())
@@ -321,7 +321,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
case QMetaType::QDate:
case QMetaType::QDateTime: {
QOCIDateTime *ptr = new QOCIDateTime(env, err, val.toDateTime());
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
&ptr->dateTime,
sizeof(OCIDateTime *),
@@ -330,7 +330,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
break;
}
case QMetaType::Int:
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
// if it's an out value, the data is already detached
// so the const cast is safe.
@@ -339,7 +339,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
SQLT_INT, indPtr, 0, 0, 0, 0, OCI_DEFAULT);
break;
case QMetaType::UInt:
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
// if it's an out value, the data is already detached
// so the const cast is safe.
@@ -350,7 +350,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
case QMetaType::LongLong:
{
QByteArray ba = qMakeOCINumber(val.toLongLong(), err);
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
ba.data(),
ba.size(),
@@ -361,7 +361,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
case QMetaType::ULongLong:
{
QByteArray ba = qMakeOCINumber(val.toULongLong(), err);
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
ba.data(),
ba.size(),
@@ -370,7 +370,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
break;
}
case QMetaType::Double:
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
// if it's an out value, the data is already detached
// so the const cast is safe.
@@ -381,7 +381,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
case QMetaType::QString: {
const QString s = val.toString();
if (isBinaryValue(pos)) {
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
const_cast<ushort *>(s.utf16()),
s.length() * sizeof(QChar),
@@ -389,7 +389,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
break;
} else if (!isOutValue(pos)) {
// don't detach the string
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
// safe since oracle doesn't touch OUT values
const_cast<ushort *>(s.utf16()),
@@ -406,7 +406,7 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
if (val.canConvert<QOCIRowIdPointer>() && !isOutValue(pos)) {
// use a const pointer to prevent a detach
const QOCIRowIdPointer rptr = qvariant_cast<QOCIRowIdPointer>(val);
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
// it's an IN value, so const_cast is ok
const_cast<OCIRowid **>(&rptr->id),
@@ -417,9 +417,9 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
QOCIResultPrivate *resPrivate = static_cast<QOCIResultPrivate *>(res->d_ptr);
if (res->internal_prepare()) {
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
- &resPrivate->sql,
+ &resPrivate->stmtp,
(sb4)0,
SQLT_RSET, indPtr, 0, 0, 0, 0, OCI_DEFAULT);
@@ -436,13 +436,13 @@ int QOCIResultPrivate::bindValue(OCIStmt *sql, OCIBind **hbnd, OCIError *err, in
if (isOutValue(pos)) {
ba.reserve((s.capacity() + 1) * sizeof(QChar));
*tmpSize = ba.size();
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
ba.data(),
ba.capacity(),
SQLT_STR, indPtr, tmpSize, 0, 0, 0, OCI_DEFAULT);
} else {
- r = OCIBindByPos2(sql, hbnd, err,
+ r = OCIBindByPos2(stmtp, hbnd, err,
pos + 1,
ba.data(),
ba.size(),
@@ -473,7 +473,7 @@ int QOCIResultPrivate::bindValues(QVariantList &values, IndicatorArray &indicato
sb2 *indPtr = &indicators[i];
*indPtr = QSqlResultPrivate::isVariantNull(val) ? -1 : 0;
- bindValue(sql, &hbnd, err, i, val, indPtr, &tmpSizes[i], tmpStorage);
+ bindValue(stmtp, &hbnd, err, i, val, indPtr, &tmpSizes[i], tmpStorage);
}
return r;
}
@@ -851,7 +851,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
sb4 parmStatus = 0;
ub4 count = 1;
int idx = 0;
- parmStatus = OCIParamGet(d->sql,
+ parmStatus = OCIParamGet(d->stmtp,
OCI_HTYPE_STMT,
d->err,
reinterpret_cast<void **>(&param),
@@ -889,7 +889,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
qCWarning(lcOci, "QOCICols: Unable to allocate the OCIDateTime descriptor");
break;
}
- r = OCIDefineByPos(d->sql,
+ r = OCIDefineByPos(d->stmtp,
&dfn,
d->err,
count,
@@ -900,7 +900,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
0, 0, OCI_DEFAULT);
break;
case QMetaType::Double:
- r = OCIDefineByPos(d->sql,
+ r = OCIDefineByPos(d->stmtp,
&dfn,
d->err,
count,
@@ -911,7 +911,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
0, 0, OCI_DEFAULT);
break;
case QMetaType::Int:
- r = OCIDefineByPos(d->sql,
+ r = OCIDefineByPos(d->stmtp,
&dfn,
d->err,
count,
@@ -922,7 +922,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
0, 0, OCI_DEFAULT);
break;
case QMetaType::LongLong:
- r = OCIDefineByPos(d->sql,
+ r = OCIDefineByPos(d->stmtp,
&dfn,
d->err,
count,
@@ -936,7 +936,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
// RAW and LONG RAW fields can't be bound to LOB locators
if (ofi.oraType == SQLT_BIN) {
// qDebug("binding SQLT_BIN");
- r = OCIDefineByPos(d->sql,
+ r = OCIDefineByPos(d->stmtp,
&dfn,
d->err,
count,
@@ -947,7 +947,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
0, 0, OCI_DYNAMIC_FETCH);
} else if (ofi.oraType == SQLT_LBI) {
// qDebug("binding SQLT_LBI");
- r = OCIDefineByPos(d->sql,
+ r = OCIDefineByPos(d->stmtp,
&dfn,
d->err,
count,
@@ -957,7 +957,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
&(fieldInf[idx].ind),
0, 0, OCI_DYNAMIC_FETCH);
} else if (ofi.oraType == SQLT_CLOB) {
- r = OCIDefineByPos(d->sql,
+ r = OCIDefineByPos(d->stmtp,
&dfn,
d->err,
count,
@@ -968,7 +968,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
0, 0, OCI_DEFAULT);
} else {
// qDebug("binding SQLT_BLOB");
- r = OCIDefineByPos(d->sql,
+ r = OCIDefineByPos(d->stmtp,
&dfn,
d->err,
count,
@@ -981,7 +981,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
break;
case QMetaType::QString:
if (ofi.oraType == SQLT_LNG) {
- r = OCIDefineByPos(d->sql,
+ r = OCIDefineByPos(d->stmtp,
&dfn,
d->err,
count,
@@ -993,7 +993,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
} else {
dataSize += dataSize + sizeof(QChar);
//qDebug("OCIDefineByPosStr(%d): %d", count, dataSize);
- r = OCIDefineByPos(d->sql,
+ r = OCIDefineByPos(d->stmtp,
&dfn,
d->err,
count,
@@ -1010,7 +1010,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
// this should make enough space even with character encoding
dataSize = (dataSize + 1) * sizeof(utext) ;
//qDebug("OCIDefineByPosDef(%d): %d", count, dataSize);
- r = OCIDefineByPos(d->sql,
+ r = OCIDefineByPos(d->stmtp,
&dfn,
d->err,
count,
@@ -1026,7 +1026,7 @@ QOCICols::QOCICols(qsizetype size, QOCIResultPrivate* dp)
fieldInf[idx].def = dfn;
++count;
++idx;
- parmStatus = OCIParamGet(d->sql,
+ parmStatus = OCIParamGet(d->stmtp,
OCI_HTYPE_STMT,
d->err,
reinterpret_cast<void **>(&param),
@@ -1073,7 +1073,7 @@ int QOCICols::readPiecewise(QVariantList &values, int index)
bool nullField;
do {
- r = OCIStmtGetPieceInfo(d->sql, d->err, reinterpret_cast<void **>(&dfn), &typep,
+ r = OCIStmtGetPieceInfo(d->stmtp, d->err, reinterpret_cast<void **>(&dfn), &typep,
&in_outp, &iterp, &idxp, &piecep);
if (r != OCI_SUCCESS)
qOraWarning("OCIResultPrivate::readPiecewise: unable to get piece info:", d->err);
@@ -1086,7 +1086,7 @@ int QOCICols::readPiecewise(QVariantList &values, int index)
&chunkSize, piecep, NULL, NULL);
if (r != OCI_SUCCESS)
qOraWarning("OCIResultPrivate::readPiecewise: unable to set piece info:", d->err);
- status = OCIStmtFetch (d->sql, d->err, 1, OCI_FETCH_NEXT, OCI_DEFAULT);
+ status = OCIStmtFetch (d->stmtp, d->err, 1, OCI_FETCH_NEXT, OCI_DEFAULT);
if (status == -1) {
sb4 errcode;
OCIErrorGet(d->err, 1, 0, &errcode, 0, 0,OCI_HTYPE_ERROR);
@@ -1311,7 +1311,7 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVariantList &boundValues, bool a
singleCol.indicators = new sb2[1];
*singleCol.indicators = QSqlResultPrivate::isVariantNull(boundValues.at(i)) ? -1 : 0;
- r = d->bindValue(d->sql, &singleCol.bindh, d->err, i,
+ r = d->bindValue(d->stmtp, &singleCol.bindh, d->err, i,
boundValues.at(i), singleCol.indicators, &tmpSizes[i], tmpStorage);
if (r != OCI_SUCCESS && r != OCI_SUCCESS_WITH_INFO) {
@@ -1483,7 +1483,7 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVariantList &boundValues, bool a
#ifdef QOCI_DEBUG
qCDebug(lcOci, "OCIBindByPos2(%p, %p, %p, %d, %p, %d, %d, %p, %p, 0, %d, %p, OCI_DEFAULT)",
- d->sql, &bindColumn.bindh, d->err, i + 1, bindColumn.data,
+ d->stmtp, &bindColumn.bindh, d->err, i + 1, bindColumn.data,
bindColumn.maxLen, bindColumn.bindAs, bindColumn.indicators, bindColumn.lengths,
arrayBind ? bindColumn.maxarr_len : 0, arrayBind ? &bindColumn.curelep : 0);
@@ -1496,7 +1496,7 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVariantList &boundValues, bool a
// binding the column
r = OCIBindByPos2(
- d->sql, &bindColumn.bindh, d->err, i + 1,
+ d->stmtp, &bindColumn.bindh, d->err, i + 1,
bindColumn.data,
bindColumn.maxLen,
bindColumn.bindAs,
@@ -1536,7 +1536,7 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVariantList &boundValues, bool a
}
//finally we can execute
- r = OCIStmtExecute(d->svc, d->sql, d->err,
+ r = OCIStmtExecute(d->svc, d->stmtp, d->err,
arrayBind ? 1 : columns[0].recordCount,
0, NULL, NULL,
d->transaction ? OCI_DEFAULT : OCI_COMMIT_ON_SUCCESS);
@@ -1777,7 +1777,7 @@ void QOCICols::getValues(QVariantList &v, int index)
QOCIResultPrivate::QOCIResultPrivate(QOCIResult *q, const QOCIDriver *drv)
: QSqlCachedResultPrivate(q, drv),
env(drv_d_func()->env),
- svc(const_cast<OCISvcCtx*&>(drv_d_func()->svc)),
+ svc(drv_d_func()->svc),
transaction(drv_d_func()->transaction),
serverVersion(drv_d_func()->serverVersion),
prefetchRows(drv_d_func()->prefetchRows),
@@ -1796,7 +1796,7 @@ QOCIResultPrivate::~QOCIResultPrivate()
{
delete cols;
- if (sql && OCIHandleFree(sql, OCI_HTYPE_STMT) != OCI_SUCCESS)
+ if (stmtp && OCIHandleFree(stmtp, OCI_HTYPE_STMT) != OCI_SUCCESS)
qCWarning(lcOci, "~QOCIResult: unable to free statement handle");
if (OCIHandleFree(err, OCI_HTYPE_ERROR) != OCI_SUCCESS)
@@ -1819,7 +1819,7 @@ QOCIResult::~QOCIResult()
QVariant QOCIResult::handle() const
{
Q_D(const QOCIResult);
- return QVariant::fromValue(d->sql);
+ return QVariant::fromValue(d->stmtp);
}
bool QOCIResult::reset (const QString& query)
@@ -1837,7 +1837,7 @@ bool QOCIResult::gotoNext(QSqlCachedResult::ValueCache &values, int index)
bool piecewise = false;
int r = OCI_SUCCESS;
- r = OCIStmtFetch(d->sql, d->err, 1, OCI_FETCH_NEXT, OCI_DEFAULT);
+ r = OCIStmtFetch(d->stmtp, d->err, 1, OCI_FETCH_NEXT, OCI_DEFAULT);
if (index < 0) //not interested in values
return r == OCI_SUCCESS || r == OCI_SUCCESS_WITH_INFO;
@@ -1893,7 +1893,7 @@ int QOCIResult::numRowsAffected()
{
Q_D(QOCIResult);
int rowCount;
- OCIAttrGet(d->sql,
+ OCIAttrGet(d->stmtp,
OCI_HTYPE_STMT,
&rowCount,
NULL,
@@ -1913,16 +1913,16 @@ bool QOCIResult::internal_prepare()
d->cols = nullptr;
QSqlCachedResult::cleanup();
- if (d->sql) {
- r = OCIHandleFree(d->sql, OCI_HTYPE_STMT);
+ if (d->stmtp) {
+ r = OCIHandleFree(d->stmtp, OCI_HTYPE_STMT);
if (r == OCI_SUCCESS)
- d->sql = nullptr;
+ d->stmtp = nullptr;
else
qOraWarning("QOCIResult::prepare: unable to free statement handle:", d->err);
}
r = OCIHandleAlloc(d->env,
- reinterpret_cast<void **>(&d->sql),
+ reinterpret_cast<void **>(&d->stmtp),
OCI_HTYPE_STMT,
0, nullptr);
if (r != OCI_SUCCESS) {
@@ -1948,7 +1948,7 @@ bool QOCIResult::prepare(const QString& query)
const OraText *txt = reinterpret_cast<const OraText *>(query.utf16());
const auto len = ub4(query.length() * sizeof(QChar));
Q_D(QOCIResult);
- r = OCIStmtPrepare(d->sql,
+ r = OCIStmtPrepare(d->stmtp,
d->err,
txt,
len,
@@ -1974,7 +1974,7 @@ bool QOCIResult::exec()
IndicatorArray indicators(boundValueCount());
SizeArray tmpSizes(boundValueCount());
- r = OCIAttrGet(d->sql,
+ r = OCIAttrGet(d->stmtp,
OCI_HTYPE_STMT,
&stmtType,
NULL,
@@ -2009,7 +2009,7 @@ bool QOCIResult::exec()
if (!isCursor) {
// execute
r = OCIStmtExecute(d->svc,
- d->sql,
+ d->stmtp,
d->err,
iters,
0,
@@ -2029,7 +2029,7 @@ bool QOCIResult::exec()
if (stmtType == OCI_STMT_SELECT) {
ub4 parmCount = 0;
- int r = OCIAttrGet(d->sql, OCI_HTYPE_STMT, reinterpret_cast<void **>(&parmCount),
+ int r = OCIAttrGet(d->stmtp, OCI_HTYPE_STMT, reinterpret_cast<void **>(&parmCount),
0, OCI_ATTR_PARAM_COUNT, d->err);
if (r == 0 && !d->cols)
d->cols = new QOCICols(parmCount, d);
@@ -2062,7 +2062,7 @@ QVariant QOCIResult::lastInsertId() const
if (isActive()) {
QOCIRowIdPointer ptr(new QOCIRowId(d->env));
- int r = OCIAttrGet(d->sql, OCI_HTYPE_STMT, ptr.constData()->id,
+ int r = OCIAttrGet(d->stmtp, OCI_HTYPE_STMT, ptr.constData()->id,
0, OCI_ATTR_ROWID, d->err);
if (r == OCI_SUCCESS)
return QVariant::fromValue(ptr);
diff --git a/src/plugins/sqldrivers/oci/qsql_oci_p.h b/src/plugins/sqldrivers/oci/qsql_oci_p.h
index 8aa25c55285..4e44b1050d8 100644
--- a/src/plugins/sqldrivers/oci/qsql_oci_p.h
+++ b/src/plugins/sqldrivers/oci/qsql_oci_p.h
@@ -70,8 +70,6 @@ protected:
class Q_EXPORT_SQLDRIVER_OCI QOCIResult : public QSqlCachedResult
{
- friend class QOCIDriver;
- friend class QOCIResultPrivate;
friend class QOCICols;
public:
explicit QOCIResult(const QOCIDriver * db);