Prevent an infinite loop of error reporting.

This commit is contained in:
Hiroshi Inoue 2002-04-10 08:18:54 +00:00
parent f2d70d32eb
commit b210b16265
5 changed files with 21 additions and 5 deletions

View File

@ -610,7 +610,7 @@ CC_connect(ConnectionClass *self, char do_password)
int areq = -1;
int beresp;
static char msgbuffer[ERROR_MSG_LENGTH];
char salt[5];
char salt[5], notice[512];
static char *func = "CC_connect";
#ifdef MULTIBYTE
@ -893,6 +893,9 @@ another_version_retry:
case 'Z': /* Backend is ready for new query (6.4) */
ReadyForQuery = TRUE;
break;
case 'N': /* Notices may come */
while (SOCK_get_string(sock, notice, sizeof(notice) - 1)) ;
break;
default:
self->errormsg = "Unexpected protocol character during authentication";
self->errornumber = CONN_INVALID_AUTHENTICATION;

View File

@ -5,7 +5,7 @@
*
* Comments: See "notice.txt" for copyright and license information.
*
* $Id: descriptor.h,v 1.3 2002/04/02 10:50:44 inoue Exp $
* $Id: descriptor.h,v 1.4 2002/04/10 08:18:54 inoue Exp $
*
*/
@ -17,7 +17,7 @@
typedef struct
{
COL_INFO *col_info; /* cached SQLColumns info for this table */
char schema[MAX_TABLE_LEN + 1];
char schema[MAX_SCHEMA_LEN + 1];
char name[MAX_TABLE_LEN + 1];
char alias[MAX_TABLE_LEN + 1];
} TABLE_INFO;

View File

@ -342,6 +342,8 @@ PGAPI_GetInfo(
case SQL_MAX_OWNER_NAME_LEN: /* ODBC 1.0 */
len = 2;
value = 0;
if (conn->schema_support)
value = MAX_SCHEMA_LEN;
break;
case SQL_MAX_PROCEDURE_NAME_LEN: /* ODBC 1.0 */
@ -484,12 +486,21 @@ PGAPI_GetInfo(
break;
case SQL_OWNER_TERM: /* ODBC 1.0 */
p = "owner";
if (conn->schema_support)
p = "schema";
else
p = "owner";
break;
case SQL_OWNER_USAGE: /* ODBC 2.0 */
len = 4;
value = 0;
if (conn->schema_support)
value = SQL_OU_DML_STATEMENTS
| SQL_OU_TABLE_DEFINITION
| SQL_OU_INDEX_DEFINITION
| SQL_OU_PRIVILEGE_DEFINITION
;
break;
case SQL_POS_OPERATIONS: /* ODBC 2.0 */

View File

@ -5,7 +5,7 @@
*
* Comments: See "notice.txt" for copyright and license information.
*
* $Id: psqlodbc.h,v 1.63 2002/04/02 10:50:49 inoue Exp $
* $Id: psqlodbc.h,v 1.64 2002/04/10 08:18:53 inoue Exp $
*
*/
@ -124,6 +124,7 @@ typedef UInt4 Oid;
#define BYTELEN 8
#define VARHDRSZ sizeof(Int4)
#define MAX_SCHEMA_LEN 32
#define MAX_TABLE_LEN 32
#define MAX_COLUMN_LEN 32
#define MAX_CURSOR_LEN 32

View File

@ -301,6 +301,7 @@ SC_Constructor(void)
rv->inaccurate_result = FALSE;
rv->miscinfo = 0;
rv->updatable = FALSE;
rv->error_recsize = -1;
}
return rv;
}