Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-interfaces by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group