Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Hive client build process
    • "libthrift.a: could not read symbols: Bad value" or "relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object"?
      • Try recompiling your Apache Thrift libraries with the -fPIC option for your C++ compiler
    • "undefined reference to vtable" ?
      • Make sure that your Apache Thrift libraries are being included from the proper Thrift directory and that it has the same architecture (32 or 64 bit) as the Hive client.
      • Also, check to make sure you are providing a fully qualified path for the thrift.home parameter.
    • In general, ldd, file, and nm are essential unix tools for debugging problems with shared object libraries. If you don't know what they are, use man to get more details.

      Current Status

  • Comments: Please keep in mind that this is still an initial version and is still very rough around the edges. However, it provides basic ODBC 3.51 API support for connecting, executing queries, fetching, etc. This driver has been successfully tested on 32-bit and 64-bit linux machines with iSQL. It has also been tested with partial success on enterprise applications such as MicroStrategy. Due to licensing reasons, the unixODBC API wrapper files will be uploaded as a separate JIRA attachment that will not be part of this code repository.
  • Limitations:
    • Only support for Linux operating systems
    • No support for Unicode
    • No support for asynchronous execution of queries
    • Does not support pattern matching for functions such as SQLColumns and SQLTables; requires exact matches.
    • Hive Server is currently not thread safe (see JIRA HIVE-80: https://issues.apache.org/jira/browse/HIVE-80). This will prevent the driver from safely making multiple connections to the same Hive Server. We need to resolve this issue to allow the driver to operate properly.
    • Hive Server's getSchema() function seems to have trouble with certain types of queries (such as "SELECT * ..." or "EXPLAIN"), and so the Hive ODBC driver sometimes has difficulties with these queries as well.
  • ODBC API Function Support (does anyone know how to remove the linking from the function names?):

    SQLAllocConnect

    supported

    SQLAllocEnv

    supported

    SQLAllocHandle

    supported

    SQLAllocStmt

    supported

    SQLBindCol

    supported

    SQLBindParameter

    NOT supported

    SQLCancel

    NOT supported

    SQLColAttribute

    supported

    SQLColumns

    supported

    SQLConnect

    supported

    SQLDescribeCol

    supported

    SQLDescribeParam

    NOT supported

    SQLDisconnect

    supported

    SQLDriverConnect

    supported

    SQLError

    supported

    SQLExecDirect

    supported

    SQLExecute

    supported

    SQLExtendedFetch

    NOT supported

    SQLFetch

    supported

    SQLFetchScroll

    NOT supported

    SQLFreeConnect

    supported

    SQLFreeEnv

    supported

    SQLFreeHandle

    supported

    SQLFreeStmt

    supported

    SQLGetConnectAttr

    NOT supported

    SQLGetData

    supported (however, SQLSTATE not returning values)

    SQLGetDiagField

    NOT supported

    SQLGetDiagRec

    supported

    SQLGetInfo

    partially supported; (to get MSTR v9 running)

    SQLMoreResults

    NOT supported

    SQLNumParams

    NOT supported

    SQLNumResultCols

    supported

    SQLParamOptions

    NOT supported

    SQLPrepare

    supported; but does not permit parameter markers

    SQLRowCount

    NOT supported

    SQLSetConnectAttr

    NOT supported

    SQLSetConnectOption

    NOT supported

    SQLSetEnvAttr

    Limited support

    SQLSetStmtAttr

    NOT supported

    SQLSetStmtOption

    NOT supported

    SQLTables

    supported

    SQLTransact

    NOT supported

    a