iodbc interface on Unix

From: "Thomas G(dot) Lockhart" <lockhart(at)alumni(dot)caltech(dot)edu>
To: Byron Nikolaidis <byronn(at)insightdist(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Postgres Interfaces Mailing List <pgsql-interfaces(at)postgresql(dot)org>
Subject: iodbc interface on Unix
Date: 1998-08-18 15:07:02
Message-ID: 35D99896.DFB21123@alumni.caltech.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Hello Byron, welcome back from vacation!

So, I'm working on trying to get the iodbc interface playing with
ApplixWare on my Linux box. I'm using a current snapshot of the Postgres
development tree, and your newest source code, which you announced
yesterday.

OK, so there are some minor problems in compiling for the Unix
environment, most of which I've fixed or worked-around. The biggest
minor problem, and easiest to fix, is that there is an

#include <config.h>

in most of the files. I believe that this should be changed to

#include "config.h"

to allow the compiler to pick up the file from the local directory.
Otherwise, it is interpreted as a "system-ish" file and (with my
Makefile, using many of the compiler options from the Postgres
distribution) finds the config.h in the Postgres distribution instead.

There is some funny-business with "HINSTANCE", but I've #define'd it to
be the same as a pointer to void.

As was the case a few weeks ago, I'm now able to start to initiate a
connection into a database. The only additional problem there is that
ApplixWare is sending a DSN keyword with a trailing blank, so I'm having
to chop it off in psqlodbc to find things in the registry.

At this point, I can try connecting to a database, but it doesn't seem
to get past the first handshaking with Postgres on the wire. I'm
guessing that the protocol may have changed for v6.4 and those changes
are not in the driver I'm using? The protocol has settled down for the
next release, so perhaps we could incorporate the changes into my test
code.

Is there a summary somewhere of what the protocol changes are? I've
forgotten if it was posted in detail already...

btw, I assume that you don't want me to send changes until I can show
that something works :)

- Tom

golem> cat psqlodbc.log
DSN info:
DSN='PostgreSQL',server='localhost',port='5432',dbase='test',user='tgl',passwd=''

readonly='',protocol='',showoid='',fakeoidindex='',showsystable=''
conn_settings=''
translation_dll='',translation_option=''
conn = 134611472, SQLConnect(DSN='PostgreSQL', UID='tgl', PWD='no$way')
Global Options: fetch=100, socket=4096, unknown_sizes=0,
max_varchar_size=254, max_longvarchar_size=4094
disable_optimizer=1, unique_index=0, use_declarefetch=1
text_as_longvarchar=1, unknowns_as_longvarchar=0,
bools_as_char=1
extra_systable_prefixes='dd_;', conn_settings=''
conn=134611472, query=' '

golem$ /opt/postgres/current/bin/postmaster -B 1024 -i -d 3
FindExec: found "/opt/postgres/current/bin/postgres" using argv[0]
binding ShmemCreate(key=52e2c1, size=8779352)
/opt/postgres/current/bin/postmaster: ServerLoop: handling
reading 5
/opt/postgres/current/bin/postmaster: ServerLoop: handling
reading 5
/opt/postgres/current/bin/postmaster: ServerLoop: handling
writing 5
/opt/postgres/current/bin/postmaster: BackendStartup: environ dump:
-----------------------------------------
TERM=xterm-color
HOME=/home/postgres

PATH=.:/opt/postgres/current/bin:/opt/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/bin/mh
SHELL=/bin/tcsh
MAIL=/var/spool/mail/postgres
LOGNAME=postgres
HOSTTYPE=i386-linux
VENDOR=intel
OSTYPE=linux
MACHTYPE=i386
SHLVL=1
PWD=/opt/postgres/current/src
USER=postgres
GROUP=postgres
HOST=golem
HOSTNAME=golem
CVSROOT=/opt/postgres/cvs
PGROOT=/opt/postgres/current
PGDATA=/opt/postgres/current/data
PGLIB=/opt/postgres/current/lib
PGDATA2=/home/postgres/data
RCSINIT=-x,v/
POSTPORT=5432
POSTID=2147483647
PG_USER=tgl
IPC_KEY=5432000
-----------------------------------------
/opt/postgres/current/bin/postmaster: BackendStartup: pid 30174 user tgl
db test socket 5
/opt/postgres/current/bin/postmaster child[30174]: starting with
(/opt/postgres/current/bin/postgres, -p, -d3, -P5, -B, 1024, -v65536,
test, )
FindExec: found "/opt/postgres/current/bin/postgres" using argv[0]
---debug info---
Quiet = f
Noversion = f
timings = f
dates = Normal
bufsize = 1024
sortmem = 512
query echo = f
DatabaseName = [test]
----------------

InitPostgres()..
/opt/postgres/current/bin/postmaster: reaping dead processes...
/opt/postgres/current/bin/postmaster: CleanupProc: pid 30174 exited with
status 0

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Thomas G. Lockhart 1998-08-18 15:36:53 Re: [INTERFACES] iodbc interface on Unix
Previous Message Andrzej Szydlo 1998-08-18 13:39:21 ODBC, Delphi and BLOBs (images)