Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-2659

ODBC driver not relocatable

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Not A Problem
    • Impala 2.2.4
    • None
    • Clients
    • Debian/Ubuntu

    Description

      Impala's ODBC driver only seems to work when the libclouderaimpalaodbc64.so driver binary is placed in the default installation directory /opt/cloudera/impalaodbc/lib/64. I tried to change the location of the driver by

      • Copying the *.so file to a different folder
      • Symbolically linking the *.so file from a different folder

      In both cases, the copied/linked driver works for simple cases - provided export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libodbcinst.so is executed before using the driver. However, it seems to ignore the content of the CLOUDERAIMPALAINI environment variable. This influences a number of things:

      • Activating driver-side logging is not possible
      • Switching to UTF-16 mode for unixODBC support is not possible
      • Specifying the ErrorMessagesPath option is not possible, rendering all error messages issued by the driver into The error message XXX could not be found in the en-US locale

      Cross-checks

      I tried to make sure that I did not mess up on a trivial level (misspelling things etc.). Hence, I played around with the CLOUDERAIMPALAINI environment variable and the driver installed at its original location.

      It turns out all settings in the file specified by CLOUDERAIMPALAINI are fully respected. This means I can relocate the error message files (copying them somewhere else, even changing messages), fix unixODBC unicode compatibility, and enable logging for debugging.

      The only change from this well-documented situation to the one above is that I use the driver via a copied binary or a symbolic link.

      Why this bug is important for me

      In our company we mainly rely on Python wheels to let users install binary software in Python virtual environments without requiring root access. In the context of ODBC drivers, this procedure worked well so far, allowing us to package ODBC drivers for MySQL, PostgreSQL, Oracle, Teradata, MonetDB, etc. Impala's ODBC driver is the first to show this most confusing and annoying behavior.

      System environment

      I toyed around with the Impala ODBC driver (v 2.5.30) for Debian (64bit) on my Ubuntu 12.04 machine. Asking a system administrator I installed the provided .deb package into my system.

      Attachments

        Activity

          People

            Unassigned Unassigned
            michael.koenig@blue-yonder.com_impala_846b Michael Koenig
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: