Commit b210b162 authored by Hiroshi Inoue's avatar Hiroshi Inoue

Prevent an infinite loop of error reporting.

parent f2d70d32
...@@ -610,7 +610,7 @@ CC_connect(ConnectionClass *self, char do_password) ...@@ -610,7 +610,7 @@ CC_connect(ConnectionClass *self, char do_password)
int areq = -1; int areq = -1;
int beresp; int beresp;
static char msgbuffer[ERROR_MSG_LENGTH]; static char msgbuffer[ERROR_MSG_LENGTH];
char salt[5]; char salt[5], notice[512];
static char *func = "CC_connect"; static char *func = "CC_connect";
#ifdef MULTIBYTE #ifdef MULTIBYTE
...@@ -893,6 +893,9 @@ another_version_retry: ...@@ -893,6 +893,9 @@ another_version_retry:
case 'Z': /* Backend is ready for new query (6.4) */ case 'Z': /* Backend is ready for new query (6.4) */
ReadyForQuery = TRUE; ReadyForQuery = TRUE;
break; break;
case 'N': /* Notices may come */
while (SOCK_get_string(sock, notice, sizeof(notice) - 1)) ;
break;
default: default:
self->errormsg = "Unexpected protocol character during authentication"; self->errormsg = "Unexpected protocol character during authentication";
self->errornumber = CONN_INVALID_AUTHENTICATION; self->errornumber = CONN_INVALID_AUTHENTICATION;
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* *
* Comments: See "notice.txt" for copyright and license information. * 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 @@ ...@@ -17,7 +17,7 @@
typedef struct typedef struct
{ {
COL_INFO *col_info; /* cached SQLColumns info for this table */ 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 name[MAX_TABLE_LEN + 1];
char alias[MAX_TABLE_LEN + 1]; char alias[MAX_TABLE_LEN + 1];
} TABLE_INFO; } TABLE_INFO;
......
...@@ -342,6 +342,8 @@ PGAPI_GetInfo( ...@@ -342,6 +342,8 @@ PGAPI_GetInfo(
case SQL_MAX_OWNER_NAME_LEN: /* ODBC 1.0 */ case SQL_MAX_OWNER_NAME_LEN: /* ODBC 1.0 */
len = 2; len = 2;
value = 0; value = 0;
if (conn->schema_support)
value = MAX_SCHEMA_LEN;
break; break;
case SQL_MAX_PROCEDURE_NAME_LEN: /* ODBC 1.0 */ case SQL_MAX_PROCEDURE_NAME_LEN: /* ODBC 1.0 */
...@@ -484,12 +486,21 @@ PGAPI_GetInfo( ...@@ -484,12 +486,21 @@ PGAPI_GetInfo(
break; break;
case SQL_OWNER_TERM: /* ODBC 1.0 */ case SQL_OWNER_TERM: /* ODBC 1.0 */
if (conn->schema_support)
p = "schema";
else
p = "owner"; p = "owner";
break; break;
case SQL_OWNER_USAGE: /* ODBC 2.0 */ case SQL_OWNER_USAGE: /* ODBC 2.0 */
len = 4; len = 4;
value = 0; value = 0;
if (conn->schema_support)
value = SQL_OU_DML_STATEMENTS
| SQL_OU_TABLE_DEFINITION
| SQL_OU_INDEX_DEFINITION
| SQL_OU_PRIVILEGE_DEFINITION
;
break; break;
case SQL_POS_OPERATIONS: /* ODBC 2.0 */ case SQL_POS_OPERATIONS: /* ODBC 2.0 */
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* *
* Comments: See "notice.txt" for copyright and license information. * 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; ...@@ -124,6 +124,7 @@ typedef UInt4 Oid;
#define BYTELEN 8 #define BYTELEN 8
#define VARHDRSZ sizeof(Int4) #define VARHDRSZ sizeof(Int4)
#define MAX_SCHEMA_LEN 32
#define MAX_TABLE_LEN 32 #define MAX_TABLE_LEN 32
#define MAX_COLUMN_LEN 32 #define MAX_COLUMN_LEN 32
#define MAX_CURSOR_LEN 32 #define MAX_CURSOR_LEN 32
......
...@@ -301,6 +301,7 @@ SC_Constructor(void) ...@@ -301,6 +301,7 @@ SC_Constructor(void)
rv->inaccurate_result = FALSE; rv->inaccurate_result = FALSE;
rv->miscinfo = 0; rv->miscinfo = 0;
rv->updatable = FALSE; rv->updatable = FALSE;
rv->error_recsize = -1;
} }
return rv; return rv;
} }
......
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