Skip to content

Commit

Permalink
Added one more native error(specific to mariadb_stmt_execute_direct) to
Browse files Browse the repository at this point in the history
be treated as "lost connection"
Changed CMakeLists to configure odbc*.ini only if tests directory is
present.
  • Loading branch information
lawrinn committed Jan 8, 2017
1 parent 0542505 commit 1bf80e2
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 35 deletions.
69 changes: 35 additions & 34 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -235,40 +235,6 @@ IF(WIN32)

ADD_EXECUTABLE(dsn_test WIN32 dsn_test.c)
TARGET_LINK_LIBRARIES(dsn_test ${MARIADB_LIB})
ELSE()
# Configuring ini files for testing with UnixODBC
SET_VALUE(TEST_DRIVER "maodbc_test")
SET_VALUE(TEST_DSN "maodbc_test")
SET_VALUE(TEST_PORT "3306")
SET_VALUE(TEST_SERVER "localhost")
SET_VALUE(TEST_SOCKET "")
SET_VALUE(TEST_SCHEMA "test")
SET_VALUE(TEST_UID "root")
SET_VALUE(TEST_PASSWORD "")

MESSAGE(STATUS "Configurig Test Driver: ${TEST_DRIVER}, Test DSN: ${TEST_DSN}, tcp://${TEST_UID}@${TEST_SERVER}:${TEST_PORT}/${TEST_SCHEMA} socket: ${TEST_SOCKET}")

ADD_CUSTOM_COMMAND(TARGET maodbc POST_BUILD
COMMAND ${CMAKE_COMMAND} ARGS -DDRIVER_LIB_LOCATION=$<TARGET_FILE:maodbc>
-DTEST_DRIVER=${TEST_DRIVER}
-DFILE_IN=${CMAKE_SOURCE_DIR}/test/odbcinst.ini.in
-DFILE_OUT=${CMAKE_SOURCE_DIR}/test/odbcinst.ini
-P ${CMAKE_SOURCE_DIR}/cmake/ConfigureFile.cmake
)

ADD_CUSTOM_COMMAND(TARGET maodbc POST_BUILD
COMMAND ${CMAKE_COMMAND} ARGS -DTEST_DRIVER=${TEST_DRIVER}
-DTEST_DSN=${TEST_DSN}
-DTEST_PORT=${TEST_PORT}
-DTEST_SERVER=${TEST_SERVER}
-DTEST_SOCKET=${TEST_SOCKET}
-DTEST_SCHEMA=${TEST_SCHEMA}
-DTEST_UID=${TEST_UID}
-DTEST_PASSWORD=${TEST_PASSWORD}
-DFILE_IN=${CMAKE_SOURCE_DIR}/test/odbc.ini.in
-DFILE_OUT=${CMAKE_SOURCE_DIR}/test/odbc.ini
-P ${CMAKE_SOURCE_DIR}/cmake/ConfigureFile.cmake
)
ENDIF()


Expand Down Expand Up @@ -296,6 +262,41 @@ ENDIF()
# Tests. Checking if we have them. May be not the case if we are building from source package
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
ADD_SUBDIRECTORY(test)
IF(NOT WIN32)
# Configuring ini files for testing with UnixODBC
SET_VALUE(TEST_DRIVER "maodbc_test")
SET_VALUE(TEST_DSN "maodbc_test")
SET_VALUE(TEST_PORT "3306")
SET_VALUE(TEST_SERVER "localhost")
SET_VALUE(TEST_SOCKET "")
SET_VALUE(TEST_SCHEMA "test")
SET_VALUE(TEST_UID "root")
SET_VALUE(TEST_PASSWORD "")

MESSAGE(STATUS "Configurig Test Driver: ${TEST_DRIVER}, Test DSN: ${TEST_DSN}, tcp://${TEST_UID}@${TEST_SERVER}:${TEST_PORT}/${TEST_SCHEMA} socket: ${TEST_SOCKET}")

ADD_CUSTOM_COMMAND(TARGET maodbc POST_BUILD
COMMAND ${CMAKE_COMMAND} ARGS -DDRIVER_LIB_LOCATION=$<TARGET_FILE:maodbc>
-DTEST_DRIVER=${TEST_DRIVER}
-DFILE_IN=${CMAKE_SOURCE_DIR}/test/odbcinst.ini.in
-DFILE_OUT=${CMAKE_SOURCE_DIR}/test/odbcinst.ini
-P ${CMAKE_SOURCE_DIR}/cmake/ConfigureFile.cmake
)

ADD_CUSTOM_COMMAND(TARGET maodbc POST_BUILD
COMMAND ${CMAKE_COMMAND} ARGS -DTEST_DRIVER=${TEST_DRIVER}
-DTEST_DSN=${TEST_DSN}
-DTEST_PORT=${TEST_PORT}
-DTEST_SERVER=${TEST_SERVER}
-DTEST_SOCKET=${TEST_SOCKET}
-DTEST_SCHEMA=${TEST_SCHEMA}
-DTEST_UID=${TEST_UID}
-DTEST_PASSWORD=${TEST_PASSWORD}
-DFILE_IN=${CMAKE_SOURCE_DIR}/test/odbc.ini.in
-DFILE_OUT=${CMAKE_SOURCE_DIR}/test/odbc.ini
-P ${CMAKE_SOURCE_DIR}/cmake/ConfigureFile.cmake
)
ENDIF()
ENDIF()

# Packaging
Expand Down
5 changes: 4 additions & 1 deletion ma_error.c
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,11 @@ SQLRETURN MADB_SetNativeError(MADB_Error *Error, SQLSMALLINT HandleType, void *P
NativeError= mysql_stmt_errno((MYSQL_STMT *)Ptr);
break;
}
if ((NativeError == 2013 || NativeError == 2006) && strcmp(Sqlstate, "HY000") == 0)
/* work-around of probalby a bug in mariadb_stmt_execute_direct, that returns 1160 in case of lost connection */
if ((NativeError == 2013 || NativeError == 2006 || NativeError == 1160) && strcmp(Sqlstate, "HY000") == 0)
{
Sqlstate= "08S01";
}

Error->ReturnValue= SQL_ERROR;
if (Errormsg)
Expand Down

0 comments on commit 1bf80e2

Please sign in to comment.