On Wed, 11 Apr 2018, karthik kumar wrote:
> Hello Adrian
>
> I built fdw with debug option and ran it with debug option. Here is the output
>
> postgres=# select * from odbc_testt;
> DEBUG: StartTransactionCommand
> DEBUG: StartTransaction
> DEBUG: name: unnamed; blockState: DEFAULT; state: INPROGR, xid/subid/cid: 0/1/0, nestlvl: 1, children:
> DEBUG: odbcGetForeignRelSize
> DEBUG: odbcGetTableOptions
> DEBUG: odbcGetOptions
> DEBUG: extract_odbcFdwOptions
> DEBUG: CONN STR: database=SAMPLE;DRIVER=SAMPLE;UID=db2inst1;PWD=db2inst1
> DEBUG: Error result (-1): Connecting to driver
> ERROR: Connecting to driver
>
> Looking at the code this is the place where the error is coming from:
>
> /* Allocate a connection handle */
> SQLAllocHandle(SQL_HANDLE_DBC, *env, dbc);
> /* Connect to the DSN */
> ret = SQLDriverConnect(*dbc, NULL, (SQLCHAR *) conn_str.data, SQL_NTS,
> OutConnStr, 1024, &OutConnStrLen, SQL_DRIVER_COMPLETE);
> check_return(ret, "Connecting to driver", dbc, SQL_HANDLE_DBC);
> }
>
> Trouble is, I can't get any unixodbc manual to indicate the meaning of -1.
Doesn't the DB2 driver have a debug/trace option you can turn on with an
environment variable? That may tell you more.
I'd also suggest you try connecting to the database from the same host
using the db2clp. That gets the FDW out of the picture and may give
better diagnostics.
--