Commit 40eb5495 authored by Hiroshi Inoue's avatar Hiroshi Inoue

1) Fix a bug in declare/fetch mode.

2) Suppress some error logs for the request to other drivers.
No related merge requests found
......@@ -281,6 +281,9 @@ PGAPI_StmtError( HSTMT hstmt,
case STMT_INVALID_OPTION_IDENTIFIER:
strcpy(szSqlState, "HY092");
break;
case STMT_OPTION_NOT_FOR_THE_DRIVER:
strcpy(szSqlState, "HYC00");
break;
case STMT_EXEC_ERROR:
default:
strcpy(szSqlState, "S1000");
......
......@@ -209,6 +209,19 @@ set_statement_option(ConnectionClass *conn,
conn->stmtOptions.use_bookmarks = vParam;
break;
case 1227:
case 1228:
if (stmt)
{
stmt->errornumber = STMT_OPTION_NOT_FOR_THE_DRIVER;
stmt->errormsg = "The option may be for MS SQL Server(Set)";
}
else if (conn)
{
conn->errornumber = STMT_OPTION_NOT_FOR_THE_DRIVER;
conn->errormsg = "The option may be for MS SQL Server(Set)";
}
return SQL_ERROR;
default:
{
char option[64];
......
......@@ -102,6 +102,7 @@ struct QResultClass_
/* status macros */
#define QR_command_successful(self) ( !(self->status == PGRES_BAD_RESPONSE || self->status == PGRES_NONFATAL_ERROR || self->status == PGRES_FATAL_ERROR))
#define QR_command_maybe_successful(self) ( !(self->status == PGRES_BAD_RESPONSE || self->status == PGRES_FATAL_ERROR))
#define QR_command_nonfatal(self) ( self->status == PGRES_NONFATAL_ERROR)
#define QR_end_tuples(self) ( self->status == PGRES_END_TUPLES)
#define QR_set_status(self, condition) ( self->status = condition )
......
......@@ -628,7 +628,7 @@ inolog("COLUMN_NULLABLE=%d\n", value);
break;
case SQL_COLUMN_OWNER_NAME: /* == SQL_DESC_SCHEMA_NAME */
p = "";
p = fi && (fi->ti) ? fi->ti->schema : "";
break;
case SQL_COLUMN_PRECISION: /* in 2.x */
......@@ -744,6 +744,10 @@ inolog("COLUMN_TYPE=%d\n", value);
value = (fi && !fi->name[0] && !fi->alias[0]) ? SQL_UNNAMED : SQL_NAMED;
break;
#endif /* ODBCVER */
case 1212:
stmt->errornumber = STMT_OPTION_NOT_FOR_THE_DRIVER;
stmt->errormsg = "this request may be for MS SQL Server";
return SQL_ERROR;
default:
stmt->errornumber = STMT_INVALID_OPTION_IDENTIFIER;
stmt->errormsg = "ColAttribute for this type not implemented yet";
......@@ -1293,9 +1297,10 @@ PGAPI_ExtendedFetch(
/* increment the base row in the tuple cache */
QR_set_rowset_size(res, opts->rowset_size);
/* QR_inc_base(res, stmt->last_fetch_count); */
/* Is inc_base right ? */
res->base = stmt->rowset_start;
if (SC_is_fetchcursor(stmt))
QR_inc_base(res, stmt->last_fetch_count);
else
res->base = stmt->rowset_start;
/* Physical Row advancement occurs for each row fetched below */
......
......@@ -79,6 +79,7 @@ typedef enum
#define STMT_RETURN_NULL_WITHOUT_INDICATOR 29
#define STMT_ERROR_IN_ROW 30
#define STMT_INVALID_DESCRIPTOR_IDENTIFIER 31
#define STMT_OPTION_NOT_FOR_THE_DRIVER 32
/* statement types */
enum
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment