? postgresql-odbc.diff
? work
Index: Makefile
===================================================================
RCS file: /home/pcvs/ports/databases/postgresql-odbc/Makefile,v
retrieving revision 1.16
diff -u -p -r1.16 Makefile
--- Makefile	23 Jan 2009 23:43:10 -0000	1.16
+++ Makefile	26 Jan 2009 17:32:23 -0000
@@ -21,6 +21,7 @@
 
 PORTNAME=		postgresql
 PORTVERSION=		08.03.0400
+PORTREVISION=		1
 CATEGORIES=		databases
 MASTER_SITES=		${MASTER_SITE_PGSQL}
 MASTER_SITE_SUBDIR=	odbc/versions/src
@@ -43,9 +44,8 @@ WITH_UNIXODBC=	yes
 .if defined(WITH_UNIXODBC)
 # I.e. even if WITH_IODBC is defined
 LIB_DEPENDS+=		odbc.1:${PORTSDIR}/databases/unixODBC
+BUILD_DEPENDS+=		unixODBC>=2.2.14_1:${PORTSDIR}/databases/unixODBC
 CONFIGURE_ARGS+=	--with-unixodbc=${LOCALBASE}
-
-BROKEN=			does not compile
 .else
 LIB_DEPENDS+=		iodbc.3:${PORTSDIR}/databases/libiodbc
 CONFIGURE_ARGS+=	--with-iodbc=${LOCALBASE}
Index: files/patch-odbcapi.c
===================================================================
RCS file: files/patch-odbcapi.c
diff -N files/patch-odbcapi.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-odbcapi.c	26 Jan 2009 17:32:23 -0000
@@ -0,0 +1,32 @@
+--- odbcapi.c.orig	2009-01-26 23:29:21.000000000 +0600
++++ odbcapi.c	2009-01-26 23:30:15.000000000 +0600
+@@ -1111,11 +1111,7 @@
+ 				 HSTMT hstmt,
+ 				 SQLUSMALLINT fFetchType,
+ 				 SQLLEN irow,
+-#ifdef WITH_UNIXODBC
+-				 SQLROWSETSIZE *pcrow,
+-#else
+ 				 SQLULEN *pcrow,
+-#endif /* WITH_UNIXODBC */
+ 				 SQLUSMALLINT *rgfRowStatus)
+ {
+ 	RETCODE	ret;
+@@ -1125,17 +1121,7 @@
+ 	ENTER_STMT_CS(stmt);
+ 	SC_clear_error(stmt);
+ 	StartRollbackState(stmt);
+-#ifdef WITH_UNIXODBC
+-	{
+-		SQLULEN	retrieved;
+-
+-		ret = PGAPI_ExtendedFetch(hstmt, fFetchType, irow, &retrieved, rgfRowStatus, 0, SC_get_ARDF(stmt)->size_of_rowset_odbc2);
+-		if (pcrow)
+-			*pcrow = retrieved;
+-	}
+-#else
+ 	ret = PGAPI_ExtendedFetch(hstmt, fFetchType, irow, pcrow, rgfRowStatus, 0, SC_get_ARDF(stmt)->size_of_rowset_odbc2);
+-#endif /* WITH_UNIXODBC */
+ 	stmt->transition_status = STMT_TRANSITION_EXTENDED_FETCH;
+ 	ret = DiscardStatementSvp(stmt, ret, FALSE);
+ 	LEAVE_STMT_CS(stmt);
Index: files/patch-odbcapi30.c
===================================================================
RCS file: files/patch-odbcapi30.c
diff -N files/patch-odbcapi30.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-odbcapi30.c	26 Jan 2009 17:32:23 -0000
@@ -0,0 +1,13 @@
+--- odbcapi30.c.orig	2009-01-26 23:20:59.000000000 +0600
++++ odbcapi30.c	2009-01-26 23:21:47.000000000 +0600
+@@ -118,9 +118,7 @@
+ 			SQLPOINTER CharacterAttribute,
+ 			SQLSMALLINT BufferLength,
+ 			SQLSMALLINT *StringLength,
+-#if defined(_WIN64)
+-			SQLLEN *NumericAttribute
+-#elif defined(WITH_UNIXODBC) || defined(WIN32)
++#if defined(WIN32)
+ 			SQLPOINTER NumericAttribute
+ #else
+ 			SQLLEN *NumericAttribute
Index: files/patch-odbcapi30w.c
===================================================================
RCS file: files/patch-odbcapi30w.c
diff -N files/patch-odbcapi30w.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-odbcapi30w.c	26 Jan 2009 17:32:23 -0000
@@ -0,0 +1,11 @@
+--- odbcapi30w.c.orig	2009-01-26 23:23:19.000000000 +0600
++++ odbcapi30w.c	2009-01-26 23:24:07.000000000 +0600
+@@ -255,7 +255,7 @@
+ 	SQLPOINTER	pCharAttr,
+ 	SQLSMALLINT	cbCharAttrMax,	
+ 	SQLSMALLINT	*pcbCharAttr,
+-#if defined(WITH_UNIXODBC) || (defined(WIN32) && ! defined(_WIN64))
++#if defined(WIN32)
+ 	SQLPOINTER	pNumAttr
+ #else
+ 	SQLLEN		*pNumAttr
Index: files/patch-psqlodbc.h
===================================================================
RCS file: files/patch-psqlodbc.h
diff -N files/patch-psqlodbc.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-psqlodbc.h	26 Jan 2009 17:32:23 -0000
@@ -0,0 +1,16 @@
+--- psqlodbc.h.orig	2008-09-21 22:35:44.000000000 +0700
++++ psqlodbc.h	2009-01-26 23:19:02.000000000 +0600
+@@ -140,13 +140,8 @@
+ #if (SIZEOF_VOID_P == 8)
+ #define	FORMAT_INTEGER	"%d"	/* SQLINTEGER */
+ #define	FORMAT_UINTEGER	"%u"	/* SQLUINTEGER */
+-#if defined(WITH_UNIXODBC) && !defined(BUILD_REAL_64_BIT_MODE)
+-#define FORMAT_LEN	"%d"	/* SQLLEN */
+-#define FORMAT_ULEN	"%u"	/* SQLULEN */
+-#else
+ #define FORMAT_LEN	"%ld"	/* SQLLEN */
+ #define FORMAT_ULEN	"%lu"	/* SQLULEN */
+-#endif /* WITH_UNIXODBC */
+ #else
+ #define	FORMAT_LEN	"%ld"	/* SQLLEN */
+ #define	FORMAT_ULEN	"%lu"	/* SQLULEN */
