Commit 1eab86e2 authored by Thomas G. Lockhart's avatar Thomas G. Lockhart

Update source code to Byron's v6.30.0250 sources plus minor cleanup

 to get rid of unused variables.
Get clean compile on Linux (Thomas and Gerald).
Implement autoconf/configure for standalone builds and use the existing
 autoconf/configure system when in the Postgres source tree.
Code tests and functions with ApplixWare-4.4.1beta on a Linux box.
Changes should be backward compatible with WIN32 but still needs testing.
parent dfde7f14
#-------------------------------------------------------------------------
#
# Makefile.inc--
# Build and install postgres.
#
# Copyright (c) 1994, Regents of the University of California
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/GNUmakefile.in,v 1.1 1998/10/06 05:57:56 thomas Exp $
#
#-------------------------------------------------------------------------
@SET_MAKE@
NAME = psqlodbc
SRCDIR=@srcdir@
ODBCSRCDIR=@srcdir@
include $(ODBCSRCDIR)/Makefile.global
include Version.mk
PORTNAME= @PORTNAME@
FIND = @find@
# assuming gnu tar and split here
TAR = @tar@
SPLIT = @split@
ifeq ($(PORTNAME), linux)
install-shlib-dep := install-shlib
shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
LDFLAGS_SL = -shared -soname lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
LDFLAGS_SL += -Bsymbolic $(LDFLAGS) -lc -lm
CFLAGS += -I. $(CFLAGS_SL)
endif
ifeq ($(PORTNAME), bsd)
ifdef BSD_SHLIB
install-shlib-dep := install-shlib
shlib := lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
LDFLAGS_SL = -x -Bshareable -Bforcearchive $(LDFLAGS)
CFLAGS += -I. $(CFLAGS_SL)
endif
endif
SOURCES = *.c *.h *.in Config.mk Makefile Makefile.unx README.Linux \
TODO.txt Version.mk config.guess config.sub configure \
install-sh license.txt notice.txt odbcinst.ini patch \
psqlodbc.aps psqlodbc.def psqlodbc.mak psqlodbc.mdp \
psqlodbc.ncb psqlodbc.rc readme.txt
OBJECTS = info.o bind.o columninfo.o connection.o convert.o drvconn.o \
environ.o execute.o lobj.o misc.o options.o \
pgtypes.o psqlodbc.o qresult.o results.o socket.o parse.o statement.o \
gpps.o tuple.o tuplelist.o dlg_specific.o $(OBJX)
CFLAGS += @DEFS@
all: libpsqlodbc.a $(shlib)
libpsqlodbc.a: $(OBJECTS)
$(AR) $(AROPT) libpsqlodbc.a $(OBJS)
$(RANLIB) libpsqlodbc.a
$(shlib): $(OBJECTS)
$(LD) $(LDFLAGS_SL) $(OBJECTS) \
-o $(shlib) $(LIBS)
.PHONY: beforeinstall-headers
.PHONY: install
install: $(HEADERDIR) $(LIBDIR) $(ODBCINST) install-headers \
install-libpsqlodbc install-ini $(install-shlib-dep)
$(HEADERDIR) $(LIBDIR) $(ODBCINST):
mkdir -p $@
install-headers: beforeinstall-headers isql.h isqlext.h iodbc.h
$(INSTALL) $(INSTLOPTS) iodbc.h $(HEADERDIR)/iodbc/iodbc.h
$(INSTALL) $(INSTLOPTS) isql.h $(HEADERDIR)/iodbc/isql.h
$(INSTALL) $(INSTLOPTS) isqlext.h $(HEADERDIR)/iodbc/isqlext.h
beforeinstall-headers:
@if [ ! -d $(HEADERDIR)/iodbc ]; then mkdir -p $(HEADERDIR)/iodbc; fi
install-libpsqlodbc: libpsqlodbc.a
$(INSTALL) $(INSTL_LIB_OPTS) libpsqlodbc.a $(DESTDIR)$(LIBDIR)/lib$(NAME).a
install-shlib: $(shlib)
$(INSTALL) $(INSTL_LIB_OPTS) $(shlib) $(DESTDIR)$(LIBDIR)/$(shlib)
rm -f $(DESTDIR)$(LIBDIR)/lib$(NAME)$(DLSUFFIX)
rm -f $(DESTDIR)$(LIBDIR)/lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
cd $(DESTDIR)$(LIBDIR) && $(LN_S) -f $(shlib) lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
cd $(DESTDIR)$(LIBDIR) && $(LN_S) -f lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION) lib$(NAME)$(DLSUFFIX)
install-ini: odbcinst.ini
$(INSTALL) $(INSTL_LIB_OPTS) odbcinst.ini $(ODBCINST)/odbcinst.ini
depend dep:
$(CC) -MM *.c >depend
.PHONY: clean
clean:
-rm -f lib$(NAME).a $(shlib) $(OBJECTS) lib$(NAME)$(DLSUFFIX)
-rm -f config.log config.cache config.status
.PHONY: distclean
distclean: clean
-rm -f config.h GNUmakefile Makefile.global
.PHONY: standalone
standalone:
-rm -f psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION).tar.gz
tar -cf psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION).tar $(SOURCES)
tar -r -C ../.. -f psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION).tar template
gzip psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION).tar
.PHONY: integrated
integrated:
-rm -f psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION)-int.tar.gz
tar -cf psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION)-int.tar $(SOURCES)
gzip psqlodbc-$(SO_MAJOR_VERSION)$(SO_MINOR_VERSION)-int.tar
#----------------------------------------------------------------------------
#
# Makefile.global--
# global configuration for the Makefiles
#
# Copyright (c) 1994, Regents of the University of California
#
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/Makefile.global.in,v 1.1 1998/10/06 05:57:56 thomas Exp $
#
# NOTES
# This is derived from the main Postgres makefile.
#
# When running standalone:
# To override the default setting, create a Makefile.custom in this
# directory and put your defines there. (Makefile.custom is included
# near the end of this file). Sometimes, a variable gets set in
# Makefile.global after Makefile.custom has been included, so you can't
# simply set that variable in Makefile.custom. In those cases, there is
# often another variable (like CUSTOM_COPT) that you can set in
# Makefile.custom that influences the later setting of the true variable
# of interest (like CFLAGS) by Makefile.global.
#
#
# If you change any of these defines you probably have to
# make clean; make
# since no dependencies are created for these. (of course you can
# be crafty and check what files really depend on them and just remake
# those).
#
# Before including this file, you must set the SRCDIR variable to the
# path of the top of the Postgres source tree (the directory that
# contains this file).
#
#-------------------------------------------------------------------------
##############################################################################
#
# CONFIGURATION SECTION
#
# Following are settings pertaining to the postgres build and
# installation.
# of the port.
#
# Ignore LINUX_ELF if you're not using Linux. But if you are, and you're
# compiling to a.out (which means you're using the dld dynamic loading
# library), set LINUX_ELF to null in Makefile.custom.
LINUX_ELF= true
#
# Ignore BSD_SHLIB if you're not using one of the BSD ports. But if you
# are, and it's one that doesn't have shared libraries (NetBSD/vax is an
# example of this), set BSD_SHLIB to null in Makefile.custom.
BSD_SHLIB= true
# For convenience, POSTGRESDIR is where BINDIR, and LIBDIR
# and other target destinations are rooted. Of course, each of these is
# changable separately.
POSTGRESDIR=@prefix@
# Where the postgres executables live (changeable by just putting them
# somewhere else and putting that directory in your shell PATH)
BINDIR= $(POSTGRESDIR)/bin
# Where libpsqlodbc.a gets installed. You must put it where your loader will
# look for it if you wish to use the -lpq convention. Otherwise you
# can just put the absolute pathname to the library at the end of your
# command line.
LIBDIR= $(POSTGRESDIR)/lib
# Where the man pages (suitable for use with "man") get installed.
POSTMANDIR= $(POSTGRESDIR)/man
# Where the formatted documents (e.g., the reference manual) get installed.
POSTDOCDIR= $(POSTGRESDIR)/doc
# Where the header files necessary to build frontend programs get installed.
HEADERDIR= $(POSTGRESDIR)/include
# Where the odbcinst.ini file will be placed
ODBCINST= $(POSTGRESDIR)@ODBCINSTDIR@
##############################################################################
#
# FEATURES
#
# To disable a feature, comment out the entire definition
# (that is, prepend '#', don't set it to "0" or "no").
##############################################################################
#
# Installation.
#
# For many ports, INSTALL is overridden below.
INSTALL= @INSTALL@
RANLIB= @RANLIB@
INSTLOPTS= @INSTLOPTS@
INSTL_EXE_OPTS= @INSTL_EXE_OPTS@
INSTL_LIB_OPTS= @INSTL_LIB_OPTS@
##############################################################################
#
# For building shell scripts:
#
# For many ports, these are overridden below.
# DASH_N is what we put before the text on an echo command when we don't
# want a trailing newline. BACKSLASH_C is what we put at the end of the
# string on a echo command when we don't want a trailing newline. On
# some systems, you do echo -n "no newline after this", while on others
# you do echo "no newline after this\c".
DASH_N= @DASH_N@
BACKSLASH_C= @BACKSLASH_C@
#-------------------------------------------------------------
# See the subdirectory template for default settings for these
#-------------------------------------------------------------
CC= @CC@
AROPT= @AROPT@
CFLAGS= -I$(ODBCSRCDIR) @CPPFLAGS@ @CFLAGS@
CFLAGS_SL= @SHARED_LIB@
LDFLAGS= @LDFLAGS@ @LIBS@
DLSUFFIX= @DLSUFFIX@
LN_S = @LN_S@
##############################################################################
#
# Customization.
#
# This includes local customizations. If we're being build from
# within the Postgres distribution and a Makefile.custom exists
# in the top level Postgres directory it overrides any local customization
# that might be in Makefile.custom of the odbc driver directory. These
# files don't exist in the original
# distribution so that they don't get overwritten when you upgrade.
ifneq ($(wildcard $(SRCDIR)/Makefile.custom), )
include $(SRCDIR)/Makefile.custom
endif
ifneq ($(wildcard ../../Makefile.custom), )
include ../../Makefile.custom
endif
# This goes here so that customization in Makefile.custom is effective
##############################################################################
ifneq ($(CUSTOM_INSTALL),)
INSTALL= $(CUSTOM_INSTALL)
endif
#
# Flags for CC and LD.
##############################################################################
# COPT
#
# COPT is for options that the sophisticated builder might want to vary
# from one build to the next, like options to build Postgres with debugging
# information included. COPT is meant to be set on the make command line,
# for example with the command "make COPT=-g". The value you see set here
# is the default that gets used if the builder does not give a value for
# COPT on his make command.
#
# There is a nonobvious relationship between -O (optimization) and
# -Werror (consider all warnings fatal). On some systems, if you don't
# optimize, you will always get some warnings because the system header
# files will include some unreferenced functions in the code. These are
# functions that are supposed to be inline, so there wouldn't ordinarily
# be an "unreferenced" problem, but if you don't enable optimization, no
# inlining can happen, and hence the problem. Therefore, we include
# if you override -O, you override -Werror as well.
#
# CUSTOM_COPT is something the user may set in Makefile.custom
# Common values for COPT are: -g for debuggable binaries, -m486 if you are
# using a i486 or better.
ifneq ($(CUSTOM_CC),)
CC= $(CUSTOM_CC)
endif
ifneq ($(CUSTOM_COPT),)
COPT= $(CUSTOM_COPT)
endif
ifeq ($(CC), gcc)
CFLAGS+= -Wall -Wmissing-prototypes
endif
ifdef COPT
CFLAGS+= $(COPT)
endif
# .include "Version.mk"
# .include "Config.mk"
include Version.mk
include Config.mk
#==============================================================================
# Makefile
#
# UNIX Makefile to build the CLI for PostgreSQL/Postgres95
#
#==============================================================================
# Site specific configuration (UNIX)
#==============================================================================
#
# option switches
#
# debug: select this to enable debugging of the software
#DEBUG = -D_DEBUG
#
#==============================================================================
#---| definitions |------------------------------------------------------------
# NAME = cli
NAME = psqlodbc
OBJECTS = info.o bind.o columninfo.o connection.o convert.o drvconn.o \
environ.o execute.o lobj.o misc.o options.o \
pgtypes.o psqlodbc.o qresult.o results.o socket.o statement.o \
gpps.o tuple.o tuplelist.o dlg_specific.o $(OBJX)
#CFLAGS = -c $(DEBUG) -D$(PG_ENV) -O $(PIC) $(ANSI) -I$(PG_INCLUDE) \
# -I$(ODBC_INCLUDE) -D$(DLDAPI) $(CFLAGSX) -DHAVE_CONFIG_H \
# -DVERSION=\"$(VERSION)$(EXTVER)\"
CFLAGS = -g -c -Wall $(DEBUG) -O $(PIC) $(ANSI) -I. -I.. \
-I$(PG_INCLUDE) -I$(ODBC_INCLUDE) $(CFLAGSX) -DHAVE_CONFIG_H
shlib = lib$(NAME)-$(VERSION).$(DLSUFFIX)
DESTDIR = /usr/local
LIBDIR = /lib
#---| global dependencies |----------------------------------------------------
#all: $(OBJECTS) lib dll
all: $(OBJECTS) dll
clean:
-rm -f core *.o *~ *.core
delete: clean
delete_all: delete
-rm -f /usr/local/lib/lib$(NAME)_$(MSQL_ENV).a
-rm -f /usr/local/lib/lib$(NAME)_$(MSQL_ENV).$(DLSUFFIX)
#---| local dependencies |-----------------------------------------------------
#log.o: ../SRC_LOG/log.c ../SRC_LOG/log.h
# $(CC) $(CFLAGS) -I../SRC_LOG ../SRC_LOG/log.c
lib:
$(AR) lib$(NAME)$(PG_ENV).a $(OBJECTS)
$(RANLIB) lib$(NAME)$(PG_ENV).a
dll: $(OBJECTS)
$(LD) $(LDFLAGS) -L$(PG_LIBPATH) $(OBJECTS) \
-o $(shlib) $(LIBS) $(PG_LIBS)
install-shlib: $(shlib)
$(INSTALL_DATA) $(shlib) $(DESTDIR)$(LIBDIR)/$(shlib)
rm -f $(DESTDIR)$(LIBDIR)/lib$(NAME).so
ln -sf $(shlib) $(DESTDIR)$(LIBDIR)/lib$(NAME).so
install-headers: $(INSTHEADERS)
if [ -d $(DESTDIR)$(INCDIR)/iodbc ]; then : ; else $(MKDIR) $(DESTDIR)$(INCDIR)/iodbc; fi
$(INSTALL_DATA) $(INSTHEADERS) $(DESTDIR)$(INCDIR)/iodbc
install-ini: odbcinst.ini
$(INSTALL_DATA) odbcinst.ini /etc
install: install-headers install-shlib install-ini
#==============================================================================
Unix port of psqlodbc, brought to you by:
Gerald Gryschuk(ggryschuk@home.com)
This is the first release of a port of psqlodbc to Unix(specifically Linux),
as such the installation may not be as straight forward as it could be(then
again it might be). As well the only testing of the driver has been with
the real project I'm working on, since it seems to be working there I assumed
it was ready to go out. This port works with Ke Jin's iodbc driver manager
although there is no theoretical reason why it couldn't work with other
driver managers for UNIX(I know of none though). The FreeODBC site
(http://users.ids.net/~bjepson/freeODBC/) has a link to download the current
version of iodbc(iodbc-2.12).
This driver has been successfully compiled and tested on a RedHat 4.1 system
using both gcc 2.7.2 and egcs 1.0.2.
INSTALLATION:
If you have a system any where close to mine this will be easy, just
copy Makefile.lnx to Makefile then type 'make' and see what happens. Note
that if you have not enabled logging(read the file misc.h) then you
may get alot of warning messages, just ignore these, they shouldn't be
a problem. If this doesn't work, well... I don't know what to say, see if
you can figure out what's wrong,fix it and send me a message. If everything
makes o.k. you can 'make install' which will install the shared library
(in /usr/local/lib) and a WINDOWS type INI file in /etc (called odbcinst.ini,
see CONFIGURATION below). If you want to program using this driver do a
'make install-headers' which will install programming header files in
/usr/local/include/iodbc. If you don't like these install locations edit
Config.mk and change the environment variable DESTDIR(and possible DESTINCDIR
to get rid of the /iodbc) to suit your system.
CONFIGURATION:
The psqlodbc driver reads two Windows type INI files for configuration,
one called odbcinst.ini located in /etc which is used for system wide
configuration of the driver and one in the users home directory called
.odbc.ini, which can be used to override the system wide settings. Note that
the location of odbcinst is currently hardcoded into the source so if you
want to change this you have to change it in the source as well. This latter
file is also searched for by iodbc and is where
the DataSource definitions are placed. The format of both files is exactly
like that of a Windows INI file using key,value pairs. A DataSource definition
is started with a section name enclosed in square brackets i.e. [PostODBC].
Comments are started using a ';' character and are restricted to being
only on seperate lines(i.e. no comments are allowed on definition lines).
The important keywords for psqlodbc are:
Driver = (location where the psqlodbc library was installed)
ex. Driver = /usr/local/lib/libpspqlodbc.so
ServerName = hostname or ip-address of postgreSQL server
ex. ServerName = simpsons.springfield.com
or ServerName = 192.1.1.1
Database = name of database to connect to
ex. Database = template1
Port = tcp port that the postgreSQL server is listening on, note
that this need not be set as the driver defaults to the
default postgreSQL port of 5432. Of course if your server
is listening on a different port than you need to say
what it is here.
Username = name of authorized postgreSQL user
ex. Username = homer
Password = the password for the user named in Username. Note
that if you have password checking on in postgreSQL
you have to have this field. Unfortunately this means
storing clear text passwords in a file. If this bothers
you, well... write a dialog box routine and send it
to me.
ex. Password = Doh!
ReadOnly = 0 or 1. Default is 1 => database IS readonly. If
set to 0, database is read-write.
ex. ReadOnly = 0
Protocol = 6.2 to force the use of Postgres 6.2 protocol
The odbcinst.ini file is where sytem wide settings are kept. There are
quite a number of these, all of which have built-in defaults. Since I'm
not even sure what they are all for I won't try to describe them, check
the file dlg_specific.h for a list and some explanation. Two that I found
useful are Debug and CommLog, which can be used to tailor logging of messages
by the driver(note that you have to have defined MY_LOG and Q_LOG during
compilation of the driver, see the file misc.h for an explanation). If
you have logging On(ie. CommLog = 1 and/or Debug = 1) then logging will
occur to the files /tmp/mylog.log(Debug, only developers will be
interested) and /tmp/psqlodbc.log(end user log file).
USE:
run an ODBC enabled application :-) .
O.k. Well, the only ODBC compliant applications that I can
"guarantee" to work are those that are compiled using the following
headers that come with this driver, iodbc.h, isql.h and isqlext.h.
BUGS,etc.
If you have problems with compiling/installing or making this
package send e-mail to me at:
gerald.gryschuk@home.com or to the pgsql-interfaces mailing list
pgsql-interfaces@postgresql.org .
Ports to different Unices are greatly appreciated and can probably be
sent to me for now(although this may change shortly).
Bugs of a general nature should still be sent to the current
maintainer or to the interfaces list.
ODBC Driver TO-DO List
Last Updated: 9/16/98
Task Added Priority %Complete?
-----------------------------------------------------------------------------------
Implement 6.4 protocol changes 09/16/98 high
Handle multi-row rowsets (SQLBindCol) 09/16/98 med
Port to 16 bit? 04/20/98 med
Handle Literal precision in parsing 07/01/98 med
Cache SQLColumns at a higher level (henv or dll) 07/02/98 med
Add lo_text type to map to LONGVARCHAR 07/09/98 low
Add encrypted password capability 06/11/98 low
Remove tuplelist structure 06/25/98 low
Support SQLTables "%" semantics 07/01/98 low
VERSION = 0.24
EXTVER = .2
VERSION = 0.25
EXTVER = .0
SO_MAJOR_VERSION = 0
SO_MINOR_VERSION = 25
/* default path for the location of the odbcinst.ini file */
#undef ODBCINST
......@@ -14,7 +14,7 @@
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#include "config.h"
#endif
#include "bind.h"
......@@ -25,7 +25,7 @@
#include <stdlib.h>
#include <malloc.h>
#ifdef HAVE_IODBC
#ifndef WIN32
#include "iodbc.h"
#include "isql.h"
#include "isqlext.h"
......@@ -49,7 +49,9 @@ RETCODE SQL_API SQLBindParameter(
SDWORD FAR *pcbValue)
{
StatementClass *stmt = (StatementClass *) hstmt;
char *func="SQLBindParameter";
static char *func="SQLBindParameter";
mylog( "%s: entering...\n", func);
if( ! stmt) {
SC_log_error(func, "", NULL);
......@@ -131,8 +133,7 @@ char *func="SQLBindParameter";
else
stmt->parameters[ipar].data_at_exec = FALSE;
mylog("SQLBindParamater: ipar = %d, *pcbValue = %d, data_at_exec = %d\n",
ipar, pcbValue ? *pcbValue: -777, stmt->parameters[ipar].data_at_exec);
mylog("SQLBindParamater: ipar = %d, *pcbValue = %d, data_at_exec = %d\n", ipar, pcbValue ? *pcbValue: -777, stmt->parameters[ipar].data_at_exec);
return SQL_SUCCESS;
}
......@@ -149,8 +150,9 @@ RETCODE SQL_API SQLBindCol(
SDWORD FAR *pcbValue)
{
StatementClass *stmt = (StatementClass *) hstmt;
Int2 numcols = 0;
char *func="SQLBindCol";
static char *func="SQLBindCol";
mylog( "%s: entering...\n", func);
mylog("**** SQLBindCol: stmt = %u, icol = %d\n", stmt, icol);
......@@ -230,7 +232,9 @@ RETCODE SQL_API SQLDescribeParam(
SWORD FAR *pfNullable)
{
StatementClass *stmt = (StatementClass *) hstmt;
char *func = "SQLDescribeParam";
static char *func = "SQLDescribeParam";
mylog( "%s: entering...\n", func);
if( ! stmt) {
SC_log_error(func, "", NULL);
......@@ -272,7 +276,9 @@ RETCODE SQL_API SQLParamOptions(
UDWORD crow,
UDWORD FAR *pirow)
{
char *func = "SQLParamOptions";
static char *func = "SQLParamOptions";
mylog( "%s: entering...\n", func);
SC_log_error(func, "Function not implemented", (StatementClass *) hstmt);
return SQL_ERROR;
......@@ -294,7 +300,9 @@ RETCODE SQL_API SQLNumParams(
StatementClass *stmt = (StatementClass *) hstmt;
char in_quote = FALSE;
unsigned int i;
char *func = "SQLNumParams";
static char *func = "SQLNumParams";
mylog( "%s: entering...\n", func);
if(!stmt) {
SC_log_error(func, "", NULL);
......@@ -357,10 +365,11 @@ int i;
void
extend_bindings(StatementClass *stmt, int num_columns)
{
static char *func="extend_bindings";
BindInfoClass *new_bindings;
int i;
mylog("in extend_bindings: stmt=%u, bindings_allocated=%d, num_columns=%d\n", stmt, stmt->bindings_allocated, num_columns);
mylog("%s: entering ... stmt=%u, bindings_allocated=%d, num_columns=%d\n", func, stmt, stmt->bindings_allocated, num_columns);
/* if we have too few, allocate room for more, and copy the old */
/* entries into the new structure */
......@@ -368,6 +377,8 @@ mylog("in extend_bindings: stmt=%u, bindings_allocated=%d, num_columns=%d\n", st
new_bindings = create_empty_bindings(num_columns);
if ( ! new_bindings) {
mylog("%s: unable to create %d new bindings from %d old bindings\n", func, num_columns, stmt->bindings_allocated);
if (stmt->bindings) {
free(stmt->bindings);
stmt->bindings = NULL;
......
......@@ -80,7 +80,7 @@ char new_field_name[MAX_MESSAGE_LEN+1];
CI_set_field_info(self, lf, new_field_name, new_adtid, new_adtsize);
}
return SOCK_get_errcode(sock) == 0;
return (SOCK_get_errcode(sock) == 0);
}
......
......@@ -26,7 +26,7 @@ struct ColumnInfoClass_ {
#define CI_get_fieldsize(self, col) (self->adtsize[col])
#define CI_get_display_size(self, col) (self->display_size[col])
ColumnInfoClass *CI_Constructor();
ColumnInfoClass *CI_Constructor(void);
void CI_Destructor(ColumnInfoClass *self);
void CI_free_memory(ColumnInfoClass *self);
char CI_read_fields(ColumnInfoClass *self, SocketClass *sock);
......
This diff is collapsed.
/* config.h.in. Generated automatically from configure.in by autoheader. */
/* Define if you have the ANSI C header files. */
#undef STDC_HEADERS
/* default path for the location of the odbcinst.ini file */
#undef ODBCINST
/* Define if you have the stricmp function. */
#undef HAVE_STRICMP
/* Define if you have the <pwd.h> header file. */
#undef HAVE_PWD_H
/* Define if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
/* Define if you have the c library (-lc). */
#undef HAVE_LIBC
/* Define if you have the dl library (-ldl). */
#undef HAVE_LIBDL
/* Define if you have the m library (-lm). */
#undef HAVE_LIBM
#! /bin/sh
# Generated automatically by configure.
# Run this file to recreate the current configuration.
# This directory was configured as follows,
# on host golem:
#
# ./configure
#
# Compiler output produced by configure, useful for debugging
# configure, is in ./config.log if it exists.
ac_cs_usage="Usage: ./config.status [--recheck] [--version] [--help]"
for ac_option
do
case "$ac_option" in
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
echo "running ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion"
exec ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
echo "./config.status generated by autoconf version 2.12"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "$ac_cs_usage"; exit 0 ;;
*) echo "$ac_cs_usage"; exit 1 ;;
esac
done
ac_given_srcdir=.
trap 'rm -fr GNUmakefile Makefile.global config.h conftest*; exit 1' 1 2 15
# Protect against being on the right side of a sed subst in config.status.
sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\&%]/\\&/g;
s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
/^[ ]*VPATH[ ]*=[^:]*$/d
s%@CFLAGS@%-O2%g
s%@CPPFLAGS@%%g
s%@CXXFLAGS@%%g
s%@DEFS@%-DHAVE_CONFIG_H%g
s%@LDFLAGS@%%g
s%@LIBS@%-ldl -lm -lc %g
s%@exec_prefix@%${prefix}%g
s%@prefix@%/usr/local/pgsql%g
s%@program_transform_name@%s,x,x,%g
s%@bindir@%${exec_prefix}/bin%g
s%@sbindir@%${exec_prefix}/sbin%g
s%@libexecdir@%${exec_prefix}/libexec%g
s%@datadir@%${prefix}/share%g
s%@sysconfdir@%${prefix}/etc%g
s%@sharedstatedir@%${prefix}/com%g
s%@localstatedir@%${prefix}/var%g
s%@libdir@%${exec_prefix}/lib%g
s%@includedir@%${prefix}/include%g
s%@oldincludedir@%/usr/include%g
s%@infodir@%${prefix}/info%g
s%@mandir@%${prefix}/man%g
s%@host@%i686-pc-linux-gnu%g
s%@host_alias@%i686-pc-linux-gnu%g
s%@host_cpu@%i686%g
s%@host_vendor@%pc%g
s%@host_os@%linux-gnu%g
s%@PORTNAME@%linux%g
s%@ODBCINSTDIR@%%g
s%@CC@%gcc%g
s%@CPP@%gcc -E%g
s%@AROPT@%crs%g
s%@SHARED_LIB@%-fpic%g
s%@DLSUFFIX@%.so%g
s%@DL_LIB@%%g
s%@INSTALL@%/usr/bin/install%g
s%@INSTLOPTS@%-c -m 444%g
s%@INSTL_LIB_OPTS@%-c -m 644%g
s%@INSTL_EXE_OPTS@%-c -m 555%g
s%@DASH_N@%-n%g
s%@BACKSLASH_C@%%g
s%@LN_S@%ln -s%g
s%@SET_MAKE@%%g
s%@RANLIB@%ranlib%g
s%@find@%/usr/bin/find%g
s%@tar@%/bin/tar%g
s%@split@%/usr/bin/split%g
CEOF
# Split the substitutions into bite-sized pieces for seds with
# small command number limits, like on Digital OSF/1 and HP-UX.
ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
ac_file=1 # Number of current file.
ac_beg=1 # First line for current file.
ac_end=$ac_max_sed_cmds # Line after last line for current file.
ac_more_lines=:
ac_sed_cmds=""
while $ac_more_lines; do
if test $ac_beg -gt 1; then
sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
else
sed "${ac_end}q" conftest.subs > conftest.s$ac_file
fi
if test ! -s conftest.s$ac_file; then
ac_more_lines=false
rm -f conftest.s$ac_file
else
if test -z "$ac_sed_cmds"; then
ac_sed_cmds="sed -f conftest.s$ac_file"
else
ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
fi
ac_file=`expr $ac_file + 1`
ac_beg=$ac_end
ac_end=`expr $ac_end + $ac_max_sed_cmds`
fi
done
if test -z "$ac_sed_cmds"; then
ac_sed_cmds=cat
fi
CONFIG_FILES=${CONFIG_FILES-"GNUmakefile Makefile.global"}
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case "$ac_file" in
*:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
*) ac_file_in="${ac_file}.in" ;;
esac
# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
# Remove last slash and all that follows it. Not all systems have dirname.
ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
# The file is in a subdirectory.
test ! -d "$ac_dir" && mkdir "$ac_dir"
ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
# A "../" for each directory in $ac_dir_suffix.
ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
else
ac_dir_suffix= ac_dots=
fi
case "$ac_given_srcdir" in
.) srcdir=.
if test -z "$ac_dots"; then top_srcdir=.
else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
/*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
*) # Relative path.
srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
top_srcdir="$ac_dots$ac_given_srcdir" ;;
esac
echo creating "$ac_file"
rm -f "$ac_file"
configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
case "$ac_file" in
*Makefile*) ac_comsub="1i\\
# $configure_input" ;;
*) ac_comsub= ;;
esac
ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
sed -e "$ac_comsub
s%@configure_input@%$configure_input%g
s%@srcdir@%$srcdir%g
s%@top_srcdir@%$top_srcdir%g
" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
fi; done
rm -f conftest.s*
# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
# NAME is the cpp macro being defined and VALUE is the value it is being given.
#
# ac_d sets the value in "#define NAME VALUE" lines.
ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
ac_dC='\3'
ac_dD='%g'
# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
ac_uB='\([ ]\)%\1#\2define\3'
ac_uC=' '
ac_uD='\4%g'
# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
ac_eB='$%\1#\2define\3'
ac_eC=' '
ac_eD='%g'
if test "${CONFIG_HEADERS+set}" != set; then
CONFIG_HEADERS="config.h"
fi
for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case "$ac_file" in
*:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
*) ac_file_in="${ac_file}.in" ;;
esac
echo creating $ac_file
rm -f conftest.frag conftest.in conftest.out
ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
cat $ac_file_inputs > conftest.in
cat > conftest.frag <<CEOF
${ac_dA}ODBCINST${ac_dB}ODBCINST${ac_dC}${ac_dD}
${ac_uA}ODBCINST${ac_uB}ODBCINST${ac_uC}${ac_uD}
${ac_eA}ODBCINST${ac_eB}ODBCINST${ac_eC}${ac_eD}
${ac_dA}HAVE_LIBC${ac_dB}HAVE_LIBC${ac_dC}1${ac_dD}
${ac_uA}HAVE_LIBC${ac_uB}HAVE_LIBC${ac_uC}1${ac_uD}
${ac_eA}HAVE_LIBC${ac_eB}HAVE_LIBC${ac_eC}1${ac_eD}
${ac_dA}HAVE_LIBM${ac_dB}HAVE_LIBM${ac_dC}1${ac_dD}
${ac_uA}HAVE_LIBM${ac_uB}HAVE_LIBM${ac_uC}1${ac_uD}
${ac_eA}HAVE_LIBM${ac_eB}HAVE_LIBM${ac_eC}1${ac_eD}
${ac_dA}HAVE_LIBDL${ac_dB}HAVE_LIBDL${ac_dC}1${ac_dD}
${ac_uA}HAVE_LIBDL${ac_uB}HAVE_LIBDL${ac_uC}1${ac_uD}
${ac_eA}HAVE_LIBDL${ac_eB}HAVE_LIBDL${ac_eC}1${ac_eD}
CEOF
sed -f conftest.frag conftest.in > conftest.out
rm -f conftest.in
mv conftest.out conftest.in
cat > conftest.frag <<CEOF
${ac_dA}STDC_HEADERS${ac_dB}STDC_HEADERS${ac_dC}1${ac_dD}
${ac_uA}STDC_HEADERS${ac_uB}STDC_HEADERS${ac_uC}1${ac_uD}
${ac_eA}STDC_HEADERS${ac_eB}STDC_HEADERS${ac_eC}1${ac_eD}
${ac_dA}HAVE_SYS_PARAM_H${ac_dB}HAVE_SYS_PARAM_H${ac_dC}1${ac_dD}
${ac_uA}HAVE_SYS_PARAM_H${ac_uB}HAVE_SYS_PARAM_H${ac_uC}1${ac_uD}
${ac_eA}HAVE_SYS_PARAM_H${ac_eB}HAVE_SYS_PARAM_H${ac_eC}1${ac_eD}
${ac_dA}HAVE_PWD_H${ac_dB}HAVE_PWD_H${ac_dC}1${ac_dD}
${ac_uA}HAVE_PWD_H${ac_uB}HAVE_PWD_H${ac_uC}1${ac_uD}
${ac_eA}HAVE_PWD_H${ac_eB}HAVE_PWD_H${ac_eC}1${ac_eD}
s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
CEOF
sed -f conftest.frag conftest.in > conftest.out
rm -f conftest.in
mv conftest.out conftest.in
rm -f conftest.frag conftest.h
echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
cat conftest.in >> conftest.h
rm -f conftest.in
if cmp -s $ac_file conftest.h 2>/dev/null; then
echo "$ac_file is unchanged"
rm -f conftest.h
else
# Remove last slash and all that follows it. Not all systems have dirname.
ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
# The file is in a subdirectory.
test ! -d "$ac_dir" && mkdir "$ac_dir"
fi
rm -f $ac_file
mv conftest.h $ac_file
fi
fi; done
exit 0
This diff is collapsed.
This diff is collapsed.
dnl Process this file with autoconf to produce a configure script.
AC_INIT(bind.c)
AC_PREFIX_DEFAULT(/usr/local)
if test -d ../../interfaces
then
TEMPLATEDIR=../../template
if test "$prefix" = "NONE"
then
ac_default_prefix=/usr/local/pgsql
fi
ODBCINSTDIR=
else
TEMPLATEDIR=./template
if test "$prefix" = "NONE"
then
ODBCINSTDIR=/share
else
ODBCINSTDIR=
fi
fi
echo "*** configuring psqlodbc ***"
AC_CANONICAL_HOST
case "$host_os" in
solaris*)
case "$host_cpu" in
sparc) os=sparc_solaris ;;
i386) os=i386_solaris ;;
esac ;;
sunos*) os=sunos4 ;;
aux*) os=aux ;;
linux*) os=linux ;;
bsdi*) os=bsdi ;;
freebsd*|netbsd*|openbsd*) os=bsd ;;
dgux*) os=dgux ;;
aix*) os=aix ;;
nextstep*) os=nextstep ;;
ultrix*) os=ultrix4 ;;
irix*) os=irix5 ;;
hpux*) os=hpux ;;
osf*) os=alpha ;;
sco*) os=sco ;;
machten*) os=machten ;;
cygwin*) os=win ;;
sysv4.2*)
case "$host_vendor" in
univel) os=univel ;;
*) os=unknown ;;
esac ;;
sysv4*) os=svr4 ;;
*) echo ""
echo "*************************************************************"
echo "configure does not currently recognize your operating system,"
echo "therefore you must do a manual configuration of:"
echo "$host_os"
echo "Please contact scrappy@hub.org to see about rectifying this, "
echo "including the above 'checking host system type...' line "
echo "*************************************************************"
echo ""
exit;;
esac
PORTNAME=${os}
AC_SUBST(PORTNAME)
echo "checking echo setting..."
if echo '\c' | grep -s c >/dev/null 2>&1
then
ECHO_N="echo -n"
ECHO_C=""
else
ECHO_N="echo"
ECHO_C='\c'
fi
dnl cat <<EOT
dnl **************************************************************
dnl Postodbc v0.0250 Installation Program
dnl
dnl Welcome to the new improved Postodbc installation program.
dnl This configuration program is for version 0.0250 of the
dnl Postodbc software.
dnl
dnl EOT
dnl this part selects the template from the one in the
dnl template directory.
dnl if test "X$with_template" != "X"
dnl then
dnl TEMPLATE=template/$with_template
dnl else
dnl TEMPLATE=DO_NOT_CHANGE_THIS_INVALID_FILENAME
dnl fi
AC_MSG_CHECKING(setting template to)
AC_ARG_WITH(template,
[ --with-template=TEMPLATE
use operating system template file
see template directory],
[ TEMPLATE=$withval ],
[ host_no_ver=`echo "$host" | sed 's/[[0-9.]]*$//'`
GUESS=`grep "$host_no_ver" $TEMPLATEDIR/.similar | sed 's/.*=//' | tail -1`
if test "$GUESS"
then TEMPLATE="$GUESS"
else TEMPLATE=`uname -s | tr A-Z a-z`
fi
])
AC_MSG_RESULT($TEMPLATE)
if test ! -d "$TEMPLATEDIR"
then
cat << EOT
**************************************************************
You seem to be missing the template directory needed by
configure. If you just copied the source from the Postgres
distribution you should instead have issued the command
'make standalone' which would have built a distribution
containing the necessary template directory. The other
option is that your trying to build from the source
which is meant to be placed in the Postgres distribution
directory 'interfaces/odbc'. Depending on your case either get the
standalone source from the following Web site:
www.insightdist.com/psqlodbc/
or issue the 'make standalone' command from the
'interfaces/odbc' directory of your Postgres Distribution,
or copy the distribution file you have to your Postgres
distribution's 'interfaces/odbc' directory and try
again.
If neither of these is the case than please complain
kindly to the maintainers, their e-mail addresses can
be found in the Readme files.
*************************************************************
EOT
exit
else
if test ! -f "$TEMPLATEDIR/$TEMPLATE"
then
cat <<EOT
Please select a template from the ones listed below. If no
template is available, then select the 'generic' one and
consider emailling scrappy@hub.org with the above line which
starts 'checking host system type...'
**************************************************************
EOT
TEMPLATE=generic
GUESS=`grep "^$host_no_ver=" $TEMPLATEDIR/.similar 2>/dev/null`
if test ! "$GUESS"
then host_no_ver=`echo "$host" | sed 's/[[0-9.]]*$//'`
GUESS=`grep "$host_no_ver" $TEMPLATEDIR/.similar 2>/dev/null`
fi
if test "$GUESS"
then
TEMPLATE=`echo $GUESS | sed 's/.*=//'`
fi
export TEMPLATE
ls $TEMPLATEDIR
echo "**************************************************************"
$ECHO_N "Appropriate template file { $TEMPLATE }: $ECHO_C"
read a
if test "$a." != "."
then
TEMPLATE=$a
fi
if test ! -f $TEMPLATEDIR/$TEMPLATE
then
echo "You must choose an appropriate template file."
exit
fi
fi
fi
TEMPLATE=$TEMPLATEDIR/$TEMPLATE
export TEMPLATE
echo ""
AROPT=`grep '^AROPT:' $TEMPLATE | awk -F: '{print $2}'`
SHARED_LIB=`grep '^SHARED_LIB:' $TEMPLATE | awk -F: '{print $2}'`
CFLAGS=`grep '^CFLAGS:' $TEMPLATE | awk -F: '{print $2}'`
SRCH_INC=`grep '^SRCH_INC:' $TEMPLATE | awk -F: '{print $2}'`
SRCH_LIB=`grep '^SRCH_LIB:' $TEMPLATE | awk -F: '{print $2}'`
DLSUFFIX=`grep '^DLSUFFIX:' $TEMPLATE | awk -F: '{print $2}'`
DL_LIB=`grep '^DL_LIB:' $TEMPLATE | awk -F: '{print $2}'`
CC=`grep '^CC:' $TEMPLATE | awk -F: '{print $2}'`
LIBS=`grep '^LIBS:' $TEMPLATE | awk -F: '{print $2}'`
a=$SRCH_INC
CPPFLAGS=`echo "$a" | sed 's@ *@ @g; s@^\([[^ ]]\)@-I\1@; s@ \([[^ ]]\)@ -I\1@g'`
export CPPFLAGS
echo "- setting CPPFLAGS=$CPPFLAGS"
a=$SRCH_LIB
LDFLAGS=`echo "$a" | sed 's@ *@ @g; s@^\([[^ ]]\)@-L\1@; s@ \([[^ ]]\)@ -L\1@g'`
export LDFLAGS
echo "- setting LDFLAGS=$LDFLAGS"
dnl Allow for overriding the default location of the odbcinst.ini
dnl file which is normally ${prefix}/share or ${prefix} if this is
dnl being compiled inside the postgres distribution.
AC_MSG_CHECKING(setting ODBCINST)
AC_ARG_WITH(
odbcinst,
[ --with-odbcinst=<datadir> change default directory for odbcinst.ini],
AC_DEFINE_UNQUOTED(ODBCINST, ${with_odbcinst}) AC_MSG_RESULT($with_odbcinst),
AC_DEFINE_UNQUOTED(ODBCINST, ${ODBCINSTDIR}) AC_MSG_RESULT(${ODBCINSTDIR})
)
if test "X$with_odbcinst" != "X"
then
ODBCINSTDIR=$with_odbcinst
fi
AC_SUBST(ODBCINSTDIR)
if test "X$with_compiler" != "X"
then
CC=$with_compiler
else
AC_PROG_CC
fi
AC_CONFIG_HEADER(config.h)
dnl Checks for programs.
AC_PROG_CPP
AC_SUBST(PORTNAME)
AC_SUBST(LDFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(AROPT)
AC_SUBST(SHARED_LIB)
AC_SUBST(CFLAGS)
AC_SUBST(DLSUFFIX)
AC_SUBST(DL_LIB)
INSTALLPATH="/usr/ucb:$PATH"
AC_PATH_PROGS(INSTALL, ginstall installbsd bsdinst scoinst install, NONE, $INSTALLPATH)
if test $INSTALL = "NONE"
then
echo "- No Install Script found - aborting."
exit 0;
fi
INSTLOPTS="-m 444"
INSTL_EXE_OPTS="-m 555"
INSTL_LIB_OPTS="-m 644"
case "`basename $INSTALL`" in
install|installbsd|scoinst)
INSTLOPTS="-c $INSTLOPTS"
INSTL_EXE_OPTS="-c $INSTL_EXE_OPTS"
INSTL_LIB_OPTS="-c $INSTL_LIB_OPTS";;
esac
echo "- Using $INSTALL"
AC_SUBST(INSTALL)
AC_SUBST(INSTLOPTS)
AC_SUBST(INSTL_LIB_OPTS)
AC_SUBST(INSTL_EXE_OPTS)
dnl Check the option to echo to inhibit newlines.
ECHO_N_OUT=`echo -n "" | wc -c`
ECHO_C_OUT=`echo "\c" | wc -c`
if test "$ECHO_N_OUT" -eq 0; then
DASH_N='-n'
BACKSLASH_C=
else
if test "ECHO_C_OUT" -eq 0; then
DASH_N=
BACKSLASH_C='\\\\c'
else
AC_MSG_ERROR("echo behaviour undetermined")
fi
fi
AC_SUBST(DASH_N)
AC_SUBST(BACKSLASH_C)
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AC_PATH_PROG(find, find)
AC_PATH_PROG(tar, tar)
AC_PATH_PROG(split,split)
AC_CHECK_LIB(c, main)
AC_CHECK_LIB(m, main)
AC_CHECK_LIB(dl, main)
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(sys/param.h pwd.h)
dnl Checks for typedefs, structures, and compiler characteristics.
dnl Check for any "odd" conditions
dnl Checks for library functions.
AC_CHECK_FUNCS(stricmp)
dnl Check for X libraries
dnl Check for X library
AC_OUTPUT(GNUmakefile Makefile.global)
This diff is collapsed.
......@@ -11,10 +11,10 @@
#define __CONNECTION_H__
#ifdef HAVE_CONFIG_H
#include <config.h>
#include "config.h"
#endif
#ifdef HAVE_IODBC
#ifndef WIN32
#include "iodbc.h"
#include "isql.h"
#include "isqlext.h"
......@@ -163,6 +163,14 @@ struct col_info {
};
/* Translation DLL entry points */
#ifdef WIN32
#define DLLHANDLE HINSTANCE
#else
#define WINAPI CALLBACK
#define DLLHANDLE void *
#define HINSTANCE void *
#endif
typedef BOOL (FAR WINAPI *DataSourceToDriverProc) (UDWORD,
SWORD,
PTR,
......@@ -222,7 +230,7 @@ struct ConnectionClass_ {
/* prototypes */
ConnectionClass *CC_Constructor();
ConnectionClass *CC_Constructor(void);
char CC_Destructor(ConnectionClass *self);
int CC_cursor_count(ConnectionClass *self);
char CC_cleanup(ConnectionClass *self);
......
This diff is collapsed.
This diff is collapsed.
......@@ -11,13 +11,13 @@
#define __DLG_SPECIFIC_H__
#ifdef HAVE_CONFIG_H
#include <config.h>
#include "config.h"
#endif
#include "psqlodbc.h"
#include "connection.h"
#ifndef UNIX
#ifdef WIN32
#include <windows.h>
#include <windowsx.h>
#include <odbcinst.h>
......@@ -30,13 +30,20 @@
#define UNKNOWNS_AS_LONGEST 2
/* INI File Stuff */
#ifdef UNIX
#define ODBC_INI ".odbc.ini"
#define ODBCINST_INI "/etc/odbcinst.ini"
#ifndef WIN32
#define ODBC_INI ".odbc.ini"
#ifdef ODBCINST
#define xstr(s) str(s)
#define str(s) #s
#define ODBCINST_INI xstr(ODBCINST) "/odbcinst.ini"
#else
#define ODBC_INI "ODBC.INI" /* ODBC initialization file */
#define ODBCINST_INI "ODBCINST.INI" /* ODBC Installation file */
#define ODBCINST_INI "/etc/odbcinst.ini"
#endif
#else
#define ODBC_INI "ODBC.INI" /* ODBC initialization file */
#define ODBCINST_INI "ODBCINST.INI" /* ODBC Installation file */
#endif
#define INI_DSN DBMS_NAME /* Name of default Datasource in ini file (not used?) */
#define INI_KDESC "Description" /* Data source description */
......@@ -81,13 +88,14 @@
/* Connection Defaults */
#define DEFAULT_PORT "5432"
#define DEFAULT_READONLY 1
#define DEFAULT_USEDECLAREFETCH 1
#define DEFAULT_USEDECLAREFETCH 0
#define DEFAULT_TEXTASLONGVARCHAR 1
#define DEFAULT_UNKNOWNSASLONGVARCHAR 0
#define DEFAULT_BOOLSASCHAR 1
#define DEFAULT_OPTIMIZER 1 // disable
#define DEFAULT_UNIQUEINDEX 0 // dont recognize
#define DEFAULT_COMMLOG 0 // dont log
#define DEFAULT_DEBUG 0
#define DEFAULT_UNKNOWNSIZES UNKNOWNS_AS_MAX
......@@ -101,9 +109,9 @@
#define DEFAULT_EXTRASYSTABLEPREFIXES "dd_;"
/* prototypes */
void getGlobalDefaults(void);
void getGlobalDefaults(char *section, char *filename, char override);
#ifndef UNIX
#ifdef WIN32
void SetDlgStuff(HWND hdlg, ConnInfo *ci);
void GetDlgStuff(HWND hdlg, ConnInfo *ci);
......@@ -115,7 +123,7 @@ int CALLBACK ds_optionsProc(HWND hdlg,
WORD wMsg,
WPARAM wParam,
LPARAM lParam);
#endif /* ! UNIX */
#endif /* WIN32 */
void updateGlobals(void);
void writeDSNinfo(ConnInfo *ci);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment