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

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 10.0, 9.3.1, 8.12.12.6_4
    • 9.1.1
    • ODBC
    • None
    • Workaround Exists
    • 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.

      Attachments

        Activity

          People

            rhn-engineering-shawkins Steven Hawkins
            scboyce_jira Steve Boyce (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: