This change fixes the diff of prepare-test regression test reported by Mangold Fabian.
ColAttSet(StatementClass *stmt, TABLE_INFO *rti)
{
CSTR func = "ColAttSet";
- QResultClass *res = SC_get_Parsed(stmt);
+ QResultClass *res = SC_get_ExecdOrParsed(stmt);
IRDFields *irdflds = SC_get_IRDF(stmt);
COL_INFO *col_info = NULL;
FIELD_INFO **fi, *wfi;
PODBC_NOT_SEARCH_PATTERN, 0, 0);
MYLOG(0, " Past PG_Columns\n");
- res = SC_get_Parsed(col_stmt);
+ res = SC_get_ExecdOrParsed(col_stmt);
if (SQL_SUCCEEDED(result)
&& res != NULL && QR_get_num_cached_tuples(res) > 0)
{
pgtype_attr_column_size(const ConnectionClass *conn, OID type, int atttypmod, int adtsize_or_longest, int handle_unknown_size_as)
{
const ConnInfo *ci = &(conn->connInfo);
+MYLOG(0, "entering type=%d, atttypmod=%d, adtsize_or=%d, unknown = %d\n", type, atttypmod, adtsize_or_longest, handle_unknown_size_as);
switch (type)
{
{
const QResultClass *res;
- if (res = SC_get_Curres(stmt), NULL != res)
+ if (res = SC_get_ExecdOrParsed(stmt), NULL != res)
{
atttypmod = QR_get_atttypmod(res, col);
if (NULL != adtsize_or_longestlen)
BOOL exec_ok = TRUE;
num_fields = SC_describe(stmt);
- result = SC_get_Parsed(stmt);
+ result = SC_get_ExecdOrParsed(stmt);
MYLOG(0, "entering result = %p, status = %d, numcols = %d\n", result, stmt->status, result != NULL ? QR_NumResultCols(result) : -1);
/****if ((!result) || ((stmt->status != STMT_FINISHED) && (stmt->status != STMT_PREMATURE))) ****/
goto cleanup;
}
- result = SC_get_Parsed(stmt);
+ result = SC_get_ExecdOrParsed(stmt);
*pccol = QR_NumPublicResultCols(result);
}
goto cleanup;
}
- res = SC_get_Parsed(stmt);
+ res = SC_get_ExecdOrParsed(stmt);
if (icol >= QR_NumPublicResultCols(res))
{
SC_set_error(stmt, STMT_INVALID_COLUMN_NUMBER_ERROR, "Invalid column number in DescribeCol.", func);
if (icol < irdflds->nfields && irdflds->fi)
fi = irdflds->fi[icol];
}
- res = SC_get_Parsed(stmt);
+ res = SC_get_ExecdOrParsed(stmt);
#ifdef SUPPRESS_LONGEST_ON_CURSORS
if (UNKNOWNS_AS_LONGEST == unknown_sizes)
{
* is ignored anyway, so it may be 0.
*/
- res = SC_get_Parsed(stmt);
+ res = SC_get_ExecdOrParsed(stmt);
if (0 == icol && SQL_DESC_COUNT != fDescType) /* bookmark column */
{
MYLOG(DETAIL_LOG_LEVEL, "answering bookmark info\n");
if (!SC_describe_ok(stmt, build_fi, col_idx, func))
return SQL_ERROR;
- res = SC_get_Parsed(stmt);
+ res = SC_get_ExecdOrParsed(stmt);
cols = QR_NumPublicResultCols(res);
/*
QResultClass *res;
MYLOG(0, "entering status = %d\n", self->status);
- res = SC_get_Parsed(self);
+ res = SC_get_ExecdOrParsed(self);
if (NULL != res)
{
num_fields = QR_NumResultCols(res);
self->status = STMT_DESCRIBED;
break;
}
- if (res = SC_get_Parsed(self), NULL != res)
+ if (res = SC_get_ExecdOrParsed(self), NULL != res)
{
num_fields = QR_NumResultCols(res);
return num_fields;
self->pgerror = NULL;
}
self->diag_row_count = 0;
- if (res = SC_get_Curres(self), res)
+ if (res = SC_get_ExecdOrParsed(self), res)
{
QR_set_message(res, NULL);
QR_set_notice(res, NULL);
static PG_ErrorInfo *
SC_create_errorinfo(const StatementClass *self, PG_ErrorInfo *pgerror_fail_safe)
{
- QResultClass *res = SC_get_Curres(self);
+ QResultClass *res = SC_get_ExecdOrParsed(self);
ConnectionClass *conn = SC_get_conn(self);
Int4 errornum;
size_t pos;
char *ermsg = NULL, *sqlstate = NULL;
PG_ErrorInfo *pgerror;
- if (!res)
- res = SC_get_Parsed(self);
if (self->pgerror)
return self->pgerror;
errornum = self->__error_number;
ER_Destructor(self->pgerror);
self->pgerror = NULL;
}
- self_res = SC_get_Curres(self);
+ self_res = SC_get_ExecdOrParsed(self);
if (!self_res) return;
if (self_res == from_res) return;
QR_add_message(self_res, QR_get_message(from_res));
ER_Destructor(self->pgerror);
self->pgerror = NULL;
}
- self_res = SC_get_Curres(self);
- from_res = SC_get_Curres(from);
+ self_res = SC_get_ExecdOrParsed(self);
+ from_res = SC_get_ExecdOrParsed(from);
if (!self_res || !from_res)
return;
QR_add_message(self_res, QR_get_message(from_res));
#define SC_get_Result(a) ((a)->rhold).first
#define SC_set_Curres(a, b) ((a)->curres = b)
#define SC_get_Curres(a) ((a)->curres)
-#define SC_get_Parsed(a) ((a)->parsed ? (a)->parsed : (a)->curres)
+#define SC_get_ExecdOrParsed(a) ((a)->curres ? (a)->curres : (a)->parsed)
#define SC_get_ARD(a) ((a)->ard)
#define SC_get_APD(a) ((a)->apd)
#define SC_get_IRD(a) ((a)->ird)