Skip to content

Commit

Permalink
More fixes of missing symbols.
Browse files Browse the repository at this point in the history
This time of newly introduced while fixed unixodbc problems with calls of
odbc api from inside driver.
  • Loading branch information
lawrinn committed Feb 12, 2015
1 parent bd25021 commit b0103f5
Show file tree
Hide file tree
Showing 6 changed files with 86 additions and 84 deletions.
2 changes: 2 additions & 0 deletions ma_debug.h
Expand Up @@ -21,6 +21,8 @@

#ifndef MAODBC_DEBUG1

void ma_debug_print(my_bool ident, char *format, ...);

#define MDBUG_C_ENTER(C,A) {}
#define MDBUG_C_RETURN(C,A) return (A)
#define MDBUG_C_PRINT(C, format, args) {}
Expand Down
2 changes: 2 additions & 0 deletions ma_environment.c
Expand Up @@ -43,6 +43,8 @@ SQLRETURN MADB_EnvFree(MADB_Env *Env)
}
/* }}} */

const char* GetDefaultLogDir();

/* {{{ MADB_EnvInit */
MADB_Env *MADB_EnvInit()
{
Expand Down
19 changes: 6 additions & 13 deletions ma_odbc.h
Expand Up @@ -520,19 +520,6 @@ SQLRETURN MA_SQLPrepare(SQLHSTMT StatementHandle,

SQLRETURN MA_SQLCancel(SQLHSTMT StatementHandle);

SQLRETURN SQL_API MA_SQLColAttribute (SQLHSTMT StatementHandle,
SQLUSMALLINT ColumnNumber,
SQLUSMALLINT FieldIdentifier,
SQLPOINTER CharacterAttributePtr,
SQLSMALLINT BufferLength,
SQLSMALLINT *StringLengthPtr,
#ifdef SQLCOLATTRIB_SQLPOINTER
SQLPOINTER NumericAttributePtr
#else
SQLLEN *NumericAttributePtr
#endif
);

SQLRETURN MA_SQLFetchScroll(SQLHSTMT StatementHandle,
SQLSMALLINT FetchOrientation,
SQLLEN FetchOffset);
Expand Down Expand Up @@ -567,5 +554,11 @@ SQLRETURN MA_SQLAllocConnect(SQLHANDLE InputHandle,

SQLRETURN MA_SQLAllocStmt(SQLHANDLE InputHandle,
SQLHANDLE *OutputHandlePtr);
SQLRETURN MADB_StmtColAttr(MADB_Stmt *Stmt, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttributePtr,
SQLSMALLINT BufferLength, SQLSMALLINT *StringLengthPtr, SQLLEN *NumericAttributePtr, my_bool IsWchar);

SQLRETURN MA_SQLFetch(SQLHSTMT StatementHandle);

SQLRETURN MADB_StmtColAttr(MADB_Stmt *Stmt, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttributePtr,
SQLSMALLINT BufferLength, SQLSMALLINT *StringLengthPtr, SQLLEN *NumericAttributePtr, my_bool IsWchar);
#endif /* _ma_odbc_h_ */
2 changes: 1 addition & 1 deletion ma_platform_win32.c
Expand Up @@ -30,7 +30,7 @@ char LogFile[256];

const char* GetDefaultLogDir()
{
const char *DefaultLogFile= "c:";
const char *DefaultLogDir= "c:";
char *tmp= getenv("USERPROFILE");
if (tmp)
{
Expand Down
1 change: 1 addition & 0 deletions ma_platform_win32.h
Expand Up @@ -31,6 +31,7 @@
#define WIN32_LEAN_AND_MEAN
#define _WINSOCKAPI_
#define DONT_DEFINE_VOID
#define HAVE_UNICODE

#include <windows.h>

Expand Down
144 changes: 74 additions & 70 deletions odbc_3_api.c
Expand Up @@ -393,23 +393,6 @@ SQLRETURN SQL_API SQLColAttribute (SQLHSTMT StatementHandle,
MDBUG_C_RETURN(Stmt->Connection, ret);
}

SQLRETURN MA_SQLColAttribute (SQLHSTMT StatementHandle,
SQLUSMALLINT ColumnNumber,
SQLUSMALLINT FieldIdentifier,
SQLPOINTER CharacterAttributePtr,
SQLSMALLINT BufferLength,
SQLSMALLINT *StringLengthPtr,
#ifdef SQLCOLATTRIB_SQLPOINTER
SQLPOINTER NumericAttributePtr
#else
SQLLEN *NumericAttributePtr
#endif
)
{
return MA_SQLColAttribute(StatementHandle, ColumnNumber, FieldIdentifier, CharacterAttributePtr,
BufferLength, StringLengthPtr, NumericAttributePtr);
}
/* }}} */

#ifdef HAVE_UNICODE
/* {{{ SQLColAttributeW */
Expand Down Expand Up @@ -479,7 +462,12 @@ SQLRETURN SQL_API SQLColAttributes(SQLHSTMT hstmt,
SQLSMALLINT * pcbDesc,
SQLLEN * pfDesc)
{
return MA_SQLColAttribute(hstmt, icol, MapColAttributeDescType(fDescType), rgbDesc, cbDescMax, pcbDesc, pfDesc);
MADB_Stmt *Stmt= (MADB_Stmt *)hstmt;
if (!Stmt)
return SQL_INVALID_HANDLE;

return Stmt->Methods->ColAttribute(Stmt, icol, MapColAttributeDescType(fDescType), rgbDesc,
cbDescMax, pcbDesc, pfDesc, FALSE);
}
/* }}} */

Expand Down Expand Up @@ -1131,14 +1119,70 @@ SQLRETURN SQL_API SQLError(SQLHENV Env, SQLHDBC Dbc, SQLHSTMT Stmt,
/* }}} */

#ifdef HAVE_UNICODE
/* {{{ MA_SQLGetDiagRecW */
SQLRETURN SQL_API MA_SQLGetDiagRecW(SQLSMALLINT HandleType,
SQLHANDLE Handle,
SQLSMALLINT RecNumber,
SQLWCHAR *SQLState,
SQLINTEGER *NativeErrorPtr,
SQLWCHAR *MessageText,
SQLSMALLINT BufferLength,
SQLSMALLINT *TextLengthPtr)
{
if (!Handle)
return SQL_INVALID_HANDLE;

/* Maria ODBC driver doesn't support error lists, so only the first record can be retrieved */
if (RecNumber != 1)
return SQL_NO_DATA_FOUND;

switch (HandleType) {
case SQL_HANDLE_DBC:
{
MADB_Dbc *Dbc= (MADB_Dbc *)Handle;
return MADB_GetDiagRec(&Dbc->Error, RecNumber, (void *)SQLState, NativeErrorPtr,
(void *)MessageText, BufferLength, TextLengthPtr, TRUE,
Dbc->Environment->OdbcVersion);
}
break;
case SQL_HANDLE_STMT:
{
MADB_Stmt *Stmt= (MADB_Stmt *)Handle;
return MADB_GetDiagRec(&Stmt->Error, RecNumber, (void *)SQLState, NativeErrorPtr,
(void *)MessageText, BufferLength, TextLengthPtr, TRUE,
Stmt->Connection->Environment->OdbcVersion);
}
break;
case SQL_HANDLE_DESC:
{
MADB_Desc *Desc= (MADB_Desc *)Handle;
return MADB_GetDiagRec(&Desc->Error, RecNumber, (void *)SQLState, NativeErrorPtr,
(void *)MessageText, BufferLength, TextLengthPtr, TRUE,
SQL_OV_ODBC3);
}
break;
case SQL_HANDLE_ENV:
{
MADB_Env *Env= (MADB_Env *)Handle;
return MADB_GetDiagRec(&Env->Error, RecNumber, (void *)SQLState, NativeErrorPtr,
(void *)MessageText, BufferLength, TextLengthPtr, TRUE,
Env->OdbcVersion);
}
default:
return SQL_ERROR;
break;
}
}
/* }}} */

/*{{{ SQLErrorW */
SQLRETURN SQL_API
SQLErrorW(SQLHENV Env, SQLHDBC Dbc, SQLHSTMT Stmt, SQLWCHAR *Sqlstate,
SQLINTEGER *NativeError, SQLWCHAR *Message, SQLSMALLINT MessageMax,
SQLSMALLINT *MessageLen)

{
SQLSMALLINT HandleType= 0;
SQLSMALLINT HandleType= 0;
SQLHANDLE Handle= NULL;

if (Env)
Expand Down Expand Up @@ -1847,49 +1891,8 @@ SQLRETURN SQL_API SQLGetDiagRecW(SQLSMALLINT HandleType,
SQLSMALLINT BufferLength,
SQLSMALLINT *TextLengthPtr)
{
if (!Handle)
return SQL_INVALID_HANDLE;

/* Maria ODBC driver doesn't support error lists, so only the first record can be retrieved */
if (RecNumber != 1)
return SQL_NO_DATA_FOUND;

switch (HandleType) {
case SQL_HANDLE_DBC:
{
MADB_Dbc *Dbc= (MADB_Dbc *)Handle;
return MADB_GetDiagRec(&Dbc->Error, RecNumber, (void *)SQLState, NativeErrorPtr,
(void *)MessageText, BufferLength, TextLengthPtr, TRUE,
Dbc->Environment->OdbcVersion);
}
break;
case SQL_HANDLE_STMT:
{
MADB_Stmt *Stmt= (MADB_Stmt *)Handle;
return MADB_GetDiagRec(&Stmt->Error, RecNumber, (void *)SQLState, NativeErrorPtr,
(void *)MessageText, BufferLength, TextLengthPtr, TRUE,
Stmt->Connection->Environment->OdbcVersion);
}
break;
case SQL_HANDLE_DESC:
{
MADB_Desc *Desc= (MADB_Desc *)Handle;
return MADB_GetDiagRec(&Desc->Error, RecNumber, (void *)SQLState, NativeErrorPtr,
(void *)MessageText, BufferLength, TextLengthPtr, TRUE,
SQL_OV_ODBC3);
}
break;
case SQL_HANDLE_ENV:
{
MADB_Env *Env= (MADB_Env *)Handle;
return MADB_GetDiagRec(&Env->Error, RecNumber, (void *)SQLState, NativeErrorPtr,
(void *)MessageText, BufferLength, TextLengthPtr, TRUE,
Env->OdbcVersion);
}
default:
return SQL_ERROR;
break;
}
return MA_SQLGetDiagRecW(HandleType, Handle, RecNumber, SQLState, NativeErrorPtr, MessageText,
BufferLength, TextLengthPtr);
}
/* }}} */
#endif
Expand Down Expand Up @@ -2152,7 +2155,7 @@ SQLRETURN SQL_API SQLParamData(SQLHSTMT StatementHandle,
}
/* }}} */

/* {{{ SQLPrepare */
/* {{{ MA_SQLPrepare */
SQLRETURN MA_SQLPrepare(SQLHSTMT StatementHandle,
SQLCHAR *StatementText,
SQLINTEGER TextLength)
Expand Down Expand Up @@ -2515,19 +2518,20 @@ SQLRETURN SQL_API SQLSetConnectOptionW(SQLHDBC Hdbc, SQLUSMALLINT Option, SQLULE
{
SQLINTEGER StringLength= 0;
SQLRETURN ret;
MADB_Dbc *Dbc= (MADB_Dbc *)Hdbc;

if (!Hdbc)
if (!Dbc)
return SQL_INVALID_HANDLE;

MDBUG_C_ENTER((MADB_Dbc *)Hdbc, "SetSetConnectOptionW");
MDBUG_C_DUMP((MADB_Dbc *)Hdbc, Option, d);
MDBUG_C_DUMP((MADB_Dbc *)Hdbc, Param, u);
MDBUG_C_ENTER(Dbc, "SetSetConnectOptionW");
MDBUG_C_DUMP(Dbc, Option, d);
MDBUG_C_DUMP(Ddbc, Param, u);
/* todo: do we have more string options ? */
if (Option == SQL_ATTR_CURRENT_CATALOG)
StringLength= SQL_NTS;
ret= MA_SQLSetConnectAttrW(Hdbc, Option, (SQLPOINTER)Param, StringLength);
MDBUG_C_DUMP((MADB_Dbc *)Hdbc, ret, d);
MDBUG_C_RETURN((MADB_Dbc *)Hdbc, ret);
ret= Dbc->Methods->SetAttr(Dbc, Option, (SQLPOINTER)Param, StringLength, TRUE);
MDBUG_C_DUMP(Dbc, ret, d);
MDBUG_C_RETURN(Dbc, ret);
}
/* }}} */
#endif
Expand Down

0 comments on commit b0103f5

Please sign in to comment.