mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-04 00:02:52 -05:00 
			
		
		
		
	Fix some multibyte related bugs.
Psqlodbc is 7.01.0007 now. Hiroshi Inoue
This commit is contained in:
		
							parent
							
								
									7e99cea816
								
							
						
					
					
						commit
						0521051b0b
					
				@ -551,13 +551,19 @@ CC_connect(ConnectionClass *self, char do_password)
 | 
			
		||||
			 ci->drivers.bools_as_char);
 | 
			
		||||
 | 
			
		||||
#ifdef MULTIBYTE
 | 
			
		||||
		encoding = check_client_encoding(ci->drivers.conn_settings);
 | 
			
		||||
		encoding = check_client_encoding(ci->conn_settings);
 | 
			
		||||
		if (encoding && strcmp(encoding, "OTHER"))
 | 
			
		||||
			self->client_encoding = strdup(encoding);
 | 
			
		||||
		else
 | 
			
		||||
		{ 
 | 
			
		||||
			encoding = check_client_encoding(ci->drivers.conn_settings);
 | 
			
		||||
			if (encoding && strcmp(encoding, "OTHER"))
 | 
			
		||||
				self->client_encoding = strdup(encoding);
 | 
			
		||||
		}
 | 
			
		||||
		qlog("                extra_systable_prefixes='%s', conn_settings='%s' conn_encoding='%s'\n",
 | 
			
		||||
			 ci->drivers.extra_systable_prefixes,
 | 
			
		||||
			 ci->drivers.conn_settings,
 | 
			
		||||
			 check_client_encoding(ci->drivers.conn_settings));
 | 
			
		||||
			 encoding ? encoding : "");
 | 
			
		||||
#else
 | 
			
		||||
		qlog("                extra_systable_prefixes='%s', conn_settings='%s'\n",
 | 
			
		||||
			 ci->drivers.extra_systable_prefixes,
 | 
			
		||||
 | 
			
		||||
@ -1156,7 +1156,11 @@ copy_statement_with_parameters(StatementClass *stmt)
 | 
			
		||||
				}
 | 
			
		||||
				opos += lit_call_len; 
 | 
			
		||||
				CVT_APPEND_STR("SELECT ");
 | 
			
		||||
#ifdef MULTIBYTE
 | 
			
		||||
				if (multibyte_strchr(&old_statement[opos], '('))
 | 
			
		||||
#else
 | 
			
		||||
				if (strchr(&old_statement[opos], '('))
 | 
			
		||||
#endif /* MULTIBYTE */
 | 
			
		||||
					proc_no_param = FALSE;
 | 
			
		||||
				continue; 
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
@ -826,7 +826,6 @@ PGAPI_GetTypeInfo(
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
RETCODE SQL_API
 | 
			
		||||
/*SQLGetFunctions(*/
 | 
			
		||||
PGAPI_GetFunctions(
 | 
			
		||||
				HDBC hdbc,
 | 
			
		||||
				UWORD fFunction,
 | 
			
		||||
@ -2202,6 +2201,8 @@ PGAPI_Statistics(
 | 
			
		||||
			" and i.indexrelid = c.oid"
 | 
			
		||||
			" and c.relam = a.oid"
 | 
			
		||||
			, table_name);
 | 
			
		||||
	if (PG_VERSION_GT(SC_get_conn(stmt), 6.4))
 | 
			
		||||
		strcat(index_query, " order by i.indisprimary desc");
 | 
			
		||||
 | 
			
		||||
	result = PGAPI_ExecDirect(hindx_stmt, index_query, strlen(index_query));
 | 
			
		||||
	if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO))
 | 
			
		||||
 | 
			
		||||
@ -616,7 +616,14 @@ in_expr = TRUE;
 | 
			
		||||
 | 
			
		||||
					/* lower case table name */
 | 
			
		||||
					for (ptr = ti[stmt->ntab]->name; *ptr; ptr++)
 | 
			
		||||
					{
 | 
			
		||||
#ifdef	MULTIBYTE
 | 
			
		||||
						if ((unsigned char) *ptr >= 0x80)
 | 
			
		||||
							ptr++;
 | 
			
		||||
						else
 | 
			
		||||
#endif /* MULTIBYTE */
 | 
			
		||||
						*ptr = tolower((unsigned char) *ptr);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				mylog("got table = '%s'\n", ti[stmt->ntab]->name);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user