summaryrefslogtreecommitdiff
path: root/info.c
diff options
context:
space:
mode:
Diffstat (limited to 'info.c')
-rw-r--r--info.c114
1 files changed, 64 insertions, 50 deletions
diff --git a/info.c b/info.c
index df533f5..7ebb6c2 100644
--- a/info.c
+++ b/info.c
@@ -50,9 +50,9 @@
/* extern GLOBAL_VALUES globals; */
-CSTR pubstr = "public";
-CSTR likeop = "like";
-CSTR eqop = "=";
+static const SQLCHAR *pubstr = (SQLCHAR *) "public";
+static const char *likeop = "like";
+static const char *eqop = "=";
RETCODE SQL_API
PGAPI_GetInfo(
@@ -1360,7 +1360,7 @@ PGAPI_GetFunctions(
static char *
-simpleCatalogEscape(const char *src, int srclen, int *result_len, const ConnectionClass *conn)
+simpleCatalogEscape(const SQLCHAR *src, SQLLEN srclen, int *result_len, const ConnectionClass *conn)
{
int i, outlen;
const char *in;
@@ -1372,13 +1372,13 @@ simpleCatalogEscape(const char *src, int srclen, int *result_len, const Connecti
if (!src || srclen == SQL_NULL_DATA)
return dest;
else if (srclen == SQL_NTS)
- srclen = (int) strlen(src);
+ srclen = (SQLLEN) strlen((char *) src);
if (srclen <= 0)
return dest;
mylog("simple in=%s(%d)\n", src, srclen);
- encoded_str_constr(&encstr, conn->ccsc, src);
+ encoded_str_constr(&encstr, conn->ccsc, (char *) src);
dest = malloc(2 * srclen + 1);
- for (i = 0, in = src, outlen = 0; i < srclen; i++, in++)
+ for (i = 0, in = (char *) src, outlen = 0; i < srclen; i++, in++)
{
encoded_nextchar(&encstr);
if (ENCODE_STATUS(encstr) != 0)
@@ -1402,7 +1402,7 @@ mylog("simple output=%s(%d)\n", dest, outlen);
* PostgreSQL needs 2 '\\' to escape '_' and '%'.
*/
static char *
-adjustLikePattern(const char *src, int srclen, char escape_ch, int *result_len, const ConnectionClass *conn)
+adjustLikePattern(const SQLCHAR *src, int srclen, char escape_ch, int *result_len, const ConnectionClass *conn)
{
int i, outlen;
const char *in;
@@ -1415,14 +1415,14 @@ adjustLikePattern(const char *src, int srclen, char escape_ch, int *result_len,
if (!src || srclen == SQL_NULL_DATA)
return dest;
else if (srclen == SQL_NTS)
- srclen = (int) strlen(src);
+ srclen = (int) strlen((char *) src);
/* if (srclen <= 0) */
if (srclen < 0)
return dest;
mylog("adjust in=%.*s(%d)\n", srclen, src, srclen);
- encoded_str_constr(&encstr, conn->ccsc, src);
+ encoded_str_constr(&encstr, conn->ccsc, (char *) src);
dest = malloc(2 * srclen + 1);
- for (i = 0, in = src, outlen = 0; i < srclen; i++, in++)
+ for (i = 0, in = (char *) src, outlen = 0; i < srclen; i++, in++)
{
encoded_nextchar(&encstr);
if (ENCODE_STATUS(encstr) != 0)
@@ -1496,7 +1496,7 @@ static const char *gen_opestr(const char *orig_opestr, const ConnectionClass * c
* 'public', allowed to use the 'public' schema.
*/
static BOOL
-allow_public_schema(ConnectionClass *conn, const char *szSchemaName, SQLSMALLINT cbSchemaName)
+allow_public_schema(ConnectionClass *conn, const SQLCHAR *szSchemaName, SQLSMALLINT cbSchemaName)
{
const char *user = CC_get_username(conn);
size_t userlen = strlen(user);
@@ -1505,11 +1505,11 @@ allow_public_schema(ConnectionClass *conn, const char *szSchemaName, SQLSMALLINT
return FALSE;
if (SQL_NTS == cbSchemaName)
- cbSchemaName = strlen(szSchemaName);
+ cbSchemaName = strlen((char *) szSchemaName);
return (cbSchemaName == (SQLSMALLINT) userlen &&
- strnicmp(szSchemaName, user, userlen) == 0 &&
- stricmp(CC_get_current_schema(conn), pubstr) == 0);
+ strnicmp((char *) szSchemaName, user, userlen) == 0 &&
+ stricmp(CC_get_current_schema(conn), (char *) pubstr) == 0);
}
RETCODE SQL_API
@@ -1558,7 +1558,7 @@ PGAPI_Tables(
int i;
SQLSMALLINT internal_asis_type = SQL_C_CHAR, cbSchemaName;
const char *like_or_eq, *op_string;
- const char *szSchemaName;
+ const SQLCHAR *szSchemaName;
BOOL search_pattern;
BOOL list_cat = FALSE, list_schemas = FALSE, list_table_types = FALSE, list_some = FALSE;
SQLLEN cbRelname, cbRelkind, cbSchName;
@@ -1790,7 +1790,7 @@ retry_public_schema:
strcat(tables_query, " and usesysid = relowner order by relname");
}
- result = PGAPI_ExecDirect(htbl_stmt, tables_query, SQL_NTS, 0);
+ result = PGAPI_ExecDirect(htbl_stmt, (SQLCHAR *) tables_query, SQL_NTS, 0);
if (!SQL_SUCCEEDED(result))
{
SC_full_error_copy(stmt, htbl_stmt, FALSE);
@@ -2039,7 +2039,7 @@ PGAPI_Columns(
ConnectionClass *conn;
SQLSMALLINT internal_asis_type = SQL_C_CHAR, cbSchemaName;
const char *like_or_eq = likeop, *op_string;
- const char *szSchemaName;
+ const SQLCHAR *szSchemaName;
BOOL setIdentity = FALSE;
mylog("%s: entering...stmt=%p scnm=%p len=%d\n", func, stmt, szTableOwner, cbTableOwner);
@@ -2173,7 +2173,7 @@ retry_public_schema:
mylog("%s: hcol_stmt = %p, col_stmt = %p\n", func, hcol_stmt, col_stmt);
col_stmt->internal = TRUE;
- result = PGAPI_ExecDirect(hcol_stmt, columns_query, SQL_NTS, 0);
+ result = PGAPI_ExecDirect(hcol_stmt, (SQLCHAR *) columns_query, SQL_NTS, 0);
if (!SQL_SUCCEEDED(result))
{
SC_full_error_copy(stmt, col_stmt, FALSE);
@@ -2775,7 +2775,8 @@ PGAPI_SpecialColumns(
char relhasrules[MAX_INFO_STRING], relkind[8], relhasoids[8];
BOOL relisaview;
SQLSMALLINT internal_asis_type = SQL_C_CHAR, cbSchemaName;
- const char *szSchemaName, *eq_string;
+ const SQLCHAR *szSchemaName;
+ const char *eq_string;
mylog("%s: entering...stmt=%p scnm=%p len=%d colType=%d scope=%d\n", func, stmt, szTableOwner, cbTableOwner, fColType, fScope);
@@ -2844,7 +2845,7 @@ retry_public_schema:
mylog("%s: hcol_stmt = %p, col_stmt = %p\n", func, hcol_stmt, col_stmt);
- result = PGAPI_ExecDirect(hcol_stmt, columns_query, SQL_NTS, 0);
+ result = PGAPI_ExecDirect(hcol_stmt, (SQLCHAR *) columns_query, SQL_NTS, 0);
if (!SQL_SUCCEEDED(result))
{
SC_full_error_copy(stmt, col_stmt, FALSE);
@@ -3047,7 +3048,8 @@ PGAPI_Statistics(
ConnInfo *ci;
char buf[256];
SQLSMALLINT internal_asis_type = SQL_C_CHAR, cbSchemaName, field_number;
- const char *szSchemaName, *eq_string;
+ const SQLCHAR *szSchemaName;
+ const char *eq_string;
OID ioid;
Int4 relhasoids;
@@ -3130,8 +3132,12 @@ PGAPI_Statistics(
/*
* table_name parameter cannot contain a string search pattern.
*/
- result = PGAPI_Columns(hcol_stmt, NULL, 0, table_schemaname, SQL_NTS,
- table_name, SQL_NTS, NULL, 0, PODBC_NOT_SEARCH_PATTERN | PODBC_SEARCH_PUBLIC_SCHEMA, 0, 0);
+ result = PGAPI_Columns(hcol_stmt,
+ NULL, 0,
+ (SQLCHAR *) table_schemaname, SQL_NTS,
+ (SQLCHAR *) table_name, SQL_NTS,
+ NULL, 0,
+ PODBC_NOT_SEARCH_PATTERN | PODBC_SEARCH_PUBLIC_SCHEMA, 0, 0);
col_stmt->internal = FALSE;
if (!SQL_SUCCEEDED(result))
@@ -3207,11 +3213,11 @@ PGAPI_Statistics(
indx_stmt = (StatementClass *) hindx_stmt;
/* TableName cannot contain a string search pattern */
- escTableName = simpleCatalogEscape(table_name, SQL_NTS, NULL, conn);
+ escTableName = simpleCatalogEscape((SQLCHAR *) table_name, SQL_NTS, NULL, conn);
eq_string = gen_opestr(eqop, conn);
if (conn->schema_support)
{
- escSchemaName = simpleCatalogEscape(table_schemaname, SQL_NTS, NULL, conn);
+ escSchemaName = simpleCatalogEscape((SQLCHAR *) table_schemaname, SQL_NTS, NULL, conn);
snprintf(index_query, sizeof(index_query), "select c.relname, i.indkey, i.indisunique"
", i.indisclustered, a.amname, c.relhasrules, n.nspname"
", c.oid, %s, %s"
@@ -3245,7 +3251,7 @@ PGAPI_Statistics(
else
strcat(index_query, " i.indisunique, c.relname");
- result = PGAPI_ExecDirect(hindx_stmt, index_query, SQL_NTS, 0);
+ result = PGAPI_ExecDirect(hindx_stmt, (SQLCHAR *) index_query, SQL_NTS, 0);
if (!SQL_SUCCEEDED(result))
{
/*
@@ -3670,7 +3676,8 @@ PGAPI_PrimaryKeys(
qstart,
qend;
SQLSMALLINT internal_asis_type = SQL_C_CHAR, cbSchemaName;
- const char *szSchemaName, *eq_string;
+ const SQLCHAR *szSchemaName;
+ const char *eq_string;
char *escSchemaName = NULL, *escTableName = NULL;
mylog("%s: entering...stmt=%p scnm=%p len=%d\n", func, stmt, szTableOwner, cbTableOwner);
@@ -3747,7 +3754,7 @@ retry_public_schema:
free(escSchemaName);
escSchemaName = simpleCatalogEscape(szSchemaName, cbSchemaName, NULL, conn);
if (conn->schema_support)
- schema_strcat(pkscm, "%.*s", escSchemaName, SQL_NTS, szTableName, cbTableName, conn);
+ schema_strcat(pkscm, "%.*s", (SQLCHAR *) escSchemaName, SQL_NTS, szTableName, cbTableName, conn);
}
result = PGAPI_BindCol(htbl_stmt, 1, internal_asis_type,
@@ -3901,7 +3908,7 @@ retry_public_schema:
}
mylog("%s: tables_query='%s'\n", func, tables_query);
- result = PGAPI_ExecDirect(htbl_stmt, tables_query, SQL_NTS, 0);
+ result = PGAPI_ExecDirect(htbl_stmt, (SQLCHAR *) tables_query, SQL_NTS, 0);
if (!SQL_SUCCEEDED(result))
{
SC_full_error_copy(stmt, tbl_stmt, FALSE);
@@ -3998,11 +4005,11 @@ cleanup:
* future version. The way is very forcible currently.
*/
static BOOL
-isMultibyte(const UCHAR *str)
+isMultibyte(const char *str)
{
for (; *str; str++)
{
- if (*str >= 0x80)
+ if ((unsigned char) *str >= 0x80)
return TRUE;
}
return FALSE;
@@ -4236,13 +4243,13 @@ PGAPI_ForeignKeys_old(
if (fk_table_needed && fk_table_needed[0] != '\0')
{
mylog("%s: entering Foreign Key Case #2", func);
- escFkTableName = simpleCatalogEscape(fk_table_needed, SQL_NTS, NULL, conn);
+ escFkTableName = simpleCatalogEscape((SQLCHAR *) fk_table_needed, SQL_NTS, NULL, conn);
if (conn->schema_support)
{
char *escSchemaName;
schema_strcat(schema_needed, "%.*s", szFkTableOwner, cbFkTableOwner, szFkTableName, cbFkTableName, conn);
- escSchemaName = simpleCatalogEscape(schema_needed, SQL_NTS, NULL, conn);
+ escSchemaName = simpleCatalogEscape((SQLCHAR *) schema_needed, SQL_NTS, NULL, conn);
snprintf(tables_query, sizeof(tables_query), "SELECT pt.tgargs, "
" pt.tgnargs, "
" pt.tgdeferrable, "
@@ -4323,7 +4330,7 @@ PGAPI_ForeignKeys_old(
"order by pt.tgconstrname",
eq_string, escFkTableName);
- result = PGAPI_ExecDirect(htbl_stmt, tables_query, SQL_NTS, 0);
+ result = PGAPI_ExecDirect(htbl_stmt, (SQLCHAR *) tables_query, SQL_NTS, 0);
if (!SQL_SUCCEEDED(result))
{
@@ -4466,7 +4473,10 @@ PGAPI_ForeignKeys_old(
}
got_pkname = FALSE;
- keyresult = PGAPI_PrimaryKeys(hpkey_stmt, NULL, 0, schema_fetched, SQL_NTS, pk_table_fetched, SQL_NTS, 0);
+ keyresult = PGAPI_PrimaryKeys(hpkey_stmt, NULL, 0,
+ (SQLCHAR *) schema_fetched, SQL_NTS,
+ (SQLCHAR *) pk_table_fetched, SQL_NTS,
+ 0);
if (keyresult != SQL_SUCCESS)
{
SC_set_error(stmt, STMT_NO_MEMORY_ERROR, "Couldn't get primary keys for PGAPI_ForeignKeys result.", func);
@@ -4607,13 +4617,13 @@ PGAPI_ForeignKeys_old(
*/
else if (pk_table_needed[0] != '\0')
{
- escPkTableName = simpleCatalogEscape(pk_table_needed, SQL_NTS, NULL, conn);
+ escPkTableName = simpleCatalogEscape((SQLCHAR *) pk_table_needed, SQL_NTS, NULL, conn);
if (conn->schema_support)
{
char *escSchemaName;
schema_strcat(schema_needed, "%.*s", szPkTableOwner, cbPkTableOwner, szPkTableName, cbPkTableName, conn);
- escSchemaName = simpleCatalogEscape(schema_needed, SQL_NTS, NULL, conn);
+ escSchemaName = simpleCatalogEscape((SQLCHAR *) schema_needed, SQL_NTS, NULL, conn);
snprintf(tables_query, sizeof(tables_query), "SELECT pt.tgargs, "
" pt.tgnargs, "
" pt.tgdeferrable, "
@@ -4694,7 +4704,7 @@ PGAPI_ForeignKeys_old(
" order by pt.tgconstrname",
eq_string, escPkTableName);
- result = PGAPI_ExecDirect(htbl_stmt, tables_query, SQL_NTS, 0);
+ result = PGAPI_ExecDirect(htbl_stmt, (SQLCHAR *) tables_query, SQL_NTS, 0);
if (!SQL_SUCCEEDED(result))
{
SC_error_copy(stmt, tbl_stmt, TRUE);
@@ -4818,7 +4828,9 @@ PGAPI_ForeignKeys_old(
SC_set_error(stmt, STMT_NO_MEMORY_ERROR, "Couldn't bindcol for primary keys for PGAPI_ForeignKeys result.", func);
goto cleanup;
}
- keyresult = PGAPI_PrimaryKeys(hpkey_stmt, NULL, 0, schema_needed, SQL_NTS, pk_table_needed, SQL_NTS, 0);
+ keyresult = PGAPI_PrimaryKeys(hpkey_stmt, NULL, 0,
+ (SQLCHAR *) schema_needed, SQL_NTS,
+ (SQLCHAR *) pk_table_needed, SQL_NTS, 0);
if (keyresult != SQL_SUCCESS)
{
SC_set_error(stmt, STMT_NO_MEMORY_ERROR, "Couldn't get primary keys for PGAPI_ForeignKeys result.", func);
@@ -5034,11 +5046,13 @@ PGAPI_ProcedureColumns(
TupleField *tuple;
char *schema_name, *procname;
char *escSchemaName = NULL, *escProcName = NULL;
- UCHAR *params, *proargnames, *proargmodes, *delim = NULL;
+ char *params, *proargnames;
+ char *proargmodes;
+ char *delim = NULL;
char *atttypid, *attname, *column_name;
QResultClass *res, *tres;
SQLLEN tcount;
- OID pgtype;
+ OID pgtype;
Int4 paramcount, column_size, i, j;
RETCODE result;
BOOL search_pattern, bRetset;
@@ -5277,14 +5291,14 @@ mylog("atttypid=%s\n", atttypid ? atttypid : "(null)");
pgtype = 0;
if (params)
{
- while (isspace(*params) || ',' == *params)
+ while (isspace((unsigned char) *params) || ',' == *params)
params++;
if ('\0' == *params || '}' == *params)
params = NULL;
else
{
sscanf(params, "%u", &pgtype);
- while (isdigit(*params))
+ while (isdigit((unsigned char) *params))
params++;
}
}
@@ -5311,7 +5325,7 @@ mylog("atttypid=%s\n", atttypid ? atttypid : "(null)");
}
else
{
- for (delim = proargnames; *delim && !isspace(*delim) && ',' != *delim && '}' != *delim; delim++)
+ for (delim = proargnames; *delim && !isspace((unsigned char) *delim) && ',' != *delim && '}' != *delim; delim++)
;
}
if (proargnames && '\0' == *delim) /* discard the incomplete name */
@@ -5603,7 +5617,7 @@ PGAPI_TablePrivileges(
const char *reln, *owner, *priv, *schnm = NULL;
RETCODE result, ret = SQL_SUCCESS;
const char *like_or_eq, *op_string;
- const char *szSchemaName;
+ const SQLCHAR *szSchemaName;
SQLSMALLINT cbSchemaName;
char *escSchemaName = NULL, *escTableName = NULL;
BOOL search_pattern;
@@ -5922,7 +5936,7 @@ PGAPI_ForeignKeys_new(
if (NULL != fk_table_needed)
{
mylog("%s: entering Foreign Key Case #2", func);
- escTableName = simpleCatalogEscape(fk_table_needed, SQL_NTS, NULL, conn);
+ escTableName = simpleCatalogEscape((SQLCHAR *) fk_table_needed, SQL_NTS, NULL, conn);
schema_strcat(schema_needed, "%.*s", szFkTableOwner, cbFkTableOwner, szFkTableName, cbFkTableName, conn);
relqual = "\n and conrelid = c.oid";
}
@@ -5933,7 +5947,7 @@ PGAPI_ForeignKeys_new(
*/
else if (NULL != pk_table_needed)
{
- escTableName = simpleCatalogEscape(pk_table_needed, SQL_NTS, NULL, conn);
+ escTableName = simpleCatalogEscape((SQLCHAR *) pk_table_needed, SQL_NTS, NULL, conn);
schema_strcat(schema_needed, "%.*s", szPkTableOwner, cbPkTableOwner, szPkTableName, cbPkTableName, conn);
relqual = "\n and confrelid = c.oid";
}
@@ -5953,7 +5967,7 @@ PGAPI_ForeignKeys_new(
strcpy(catName, "NULL::name");
strcpy(scmName1, "n2.nspname");
strcpy(scmName2, "n1.nspname");
- escSchemaName = simpleCatalogEscape(schema_needed, SQL_NTS, NULL, conn);
+ escSchemaName = simpleCatalogEscape((SQLCHAR *) schema_needed, SQL_NTS, NULL, conn);
snprintf(tables_query, sizeof(tables_query),
"select"
@@ -6051,7 +6065,7 @@ PGAPI_ForeignKeys_new(
NULL != fk_table_needed)
{
free(escTableName);
- escTableName = simpleCatalogEscape(pk_table_needed, SQL_NTS, NULL, conn);
+ escTableName = simpleCatalogEscape((SQLCHAR *) pk_table_needed, SQL_NTS, NULL, conn);
snprintf_add(tables_query, sizeof(tables_query),
"\n where c2.relname %s'%s'",
eq_string, escTableName);