Uploaded image for project: 'Teiid'
  1. Teiid
  2. TEIID-4950

PostgreSQL Linux ODBC driver v09.06.0100 and newer does not work with Teiid Server 9.1.1

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 9.1.1
    • Fix Version/s: 10.0, 9.3.1
    • Component/s: ODBC
    • Labels:
      None
    • Environment:

      Oracle Linux 7.3
      OBIEE 12c
      unixODBC
      Official PostgreSQL ODBC Drivers

    • Workaround:
      Workaround Exists
    • Workaround Description:
      Hide

      Stick with v09.05.0400 or earlier.

      Show
      Stick with v09.05.0400 or earlier.

      Description

      PostgreSQL ODBC driver v09.06.0100 and newer does not work with Teiid Server 9.1.1

      This is an OBIEE 12c/unixODBC error:

      [2017-06-06T15:00:48.159+00:00] [OBIS] [ERROR:1] [] [] [ecid: 005KKjYVpflEkJ4_VTS4yc0004Vq0002Lh,0:1] [sik: ssi] [tid: a5dc9700]  [nQSError: 16001] ODBC error state: 50000 code: 110 message: [unixODBC]ERROR: TEIID31100 Parsing error: Encountered "[*]SET[*] DateStyle =" at line 1, column 1. [[
      file: server/Query/Execution/DbGateway/Odbc35/../Odbc/Src/SQXDGOdbcConnection.cpp; line: 1009
      Properties: description=ExecutePhysical Exchange; producerID=0x321b5ff8; requestID=0x61ac0002; sessionID=0x61ac0000; userName=weblogic; 
      Was expecting: "alter" | "begin" | "call" | "create" | "delete" | "drop" | "exec" | "execute" | "insert" | "merge" ....
      

      Looking at the source code for the ODBC drivers, it seems that switching from CC_send_settings to CC_send_query for setting various settings does not work with Teiid.

      # grep -r -i --include *.c DateStyle psqlodbc-09*
      psqlodbc-09.05.0400/connection.c:       CC_send_settings(self, "SET DateStyle = 'ISO';SET extra_float_digits = 2");
      psqlodbc-09.06.0100/connection.c:       res = CC_send_query(self, "SET DateStyle = 'ISO';SET extra_float_digits = 2;" ISOLATION_SHOW_QUERY, NULL, 0, NULL);
      psqlodbc-09.06.0200/connection.c:       res = CC_send_query(self, "SET DateStyle = 'ISO';SET extra_float_digits = 2;" ISOLATION_SHOW_QUERY, NULL, 0, NULL);
      psqlodbc-09.06.0300/connection.c:       res = CC_send_query(self, "SET DateStyle = 'ISO';SET extra_float_digits = 2;" ISOLATION_SHOW_QUERY, NULL, 0, NULL);
      psqlodbc-09.06.0310/connection.c:       res = CC_send_query(self, "SET DateStyle = 'ISO';SET extra_float_digits = 2;" ISOLATION_SHOW_QUERY, NULL, 0, NULL);
      

      I'm not sure if the bug is with the ODBC driver or this was an intentional change that Postgres Server can deal with and therefore Teiid server should be able to deal with.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                shawkins Steven Hawkins
                Reporter:
                scboyce Steve Boyce
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: