...
- 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
, andnm
are essential unix tools for debugging problems with shared object libraries. If you don't know what they are, useman
to get more details.Current Status
- "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"?
- 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?): a
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