From a7eba9ca7a8f9b5f011baf2fefbd400c7ff1b06e Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Sat, 21 Jul 2001 18:57:08 +0000
Subject: [PATCH] DatabaseMetaData.getColumns() doesn't appear to get the
 default value for each column. Here is a context diff of CVS which should fix
 it.

Jason Davies
---
 .../jdbc/org/postgresql/jdbc1/DatabaseMetaData.java           | 4 ++--
 .../jdbc/org/postgresql/jdbc2/DatabaseMetaData.java           | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
index a2c2e60db5c..1df59803ddd 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc1/DatabaseMetaData.java
@@ -1936,7 +1936,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
 
     // Now form the query
     // Modified by Stefan Andreasen <stefan@linux.kapow.dk>
-    r = connection.ExecSQL("select a.oid,c.relname,a.attname,a.atttypid,a.attnum,a.attnotnull,a.attlen,a.atttypmod from pg_class c, pg_attribute a where a.attrelid=c.oid and c.relname like '"+tableNamePattern.toLowerCase()+"' and a.attname like '"+columnNamePattern.toLowerCase()+"' and a.attnum>0 order by c.relname,a.attnum");
+    r = connection.ExecSQL("select a.oid,c.relname,a.attname,a.atttypid,a.attnum,a.attnotnull,a.attlen,a.atttypmod,d.adsrc from pg_class c,pg_attribute a,pg_attrdef d where a.attrelid=c.oid and c.relname like '"+tableNamePattern.toLowerCase()+"' and a.attname like '"+columnNamePattern.toLowerCase()+"' and a.attnum>0 and c.oid=d.adrelid and d.adnum=a.attnum order by c.relname,a.attnum");
 
     byte remarks[];
 
@@ -1983,7 +1983,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
 	// tuple[10] is below
 	// tuple[11] is above
 
-	tuple[12] = null;	// column default
+	tuple[12] = r.getBytes(9);	// column default
 
 	tuple[13] = null;	// sql data type (unused)
 	tuple[14] = null;	// sql datetime sub (unused)
diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java b/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
index df8aaf849f4..93e084f5368 100644
--- a/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
+++ b/src/interfaces/jdbc/org/postgresql/jdbc2/DatabaseMetaData.java
@@ -1936,7 +1936,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
 
     // Now form the query
     // Modified by Stefan Andreasen <stefan@linux.kapow.dk>
-    r = connection.ExecSQL("select a.oid,c.relname,a.attname,a.atttypid,a.attnum,a.attnotnull,a.attlen,a.atttypmod from pg_class c, pg_attribute a where a.attrelid=c.oid and c.relname like '"+tableNamePattern.toLowerCase()+"' and a.attname like '"+columnNamePattern.toLowerCase()+"' and a.attnum>0 order by c.relname,a.attnum");
+    r = connection.ExecSQL("select a.oid,c.relname,a.attname,a.atttypid,a.attnum,a.attnotnull,a.attlen,a.atttypmod,d.adsrc from pg_class c,pg_attribute a,pg_attrdef d where a.attrelid=c.oid and c.relname like '"+tableNamePattern.toLowerCase()+"' and a.attname like '"+columnNamePattern.toLowerCase()+"' and a.attnum>0 and c.oid=d.adrelid and d.adnum=a.attnum order by c.relname,a.attnum");
 
     byte remarks[];
 
@@ -1983,7 +1983,7 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
 	// tuple[10] is below
 	// tuple[11] is above
 
-	tuple[12] = null;	// column default
+	tuple[12] = r.getBytes(9);	// column default
 
 	tuple[13] = null;	// sql data type (unused)
 	tuple[14] = null;	// sql datetime sub (unused)
-- 
GitLab