[libpostgresql-jdbc-java] 88/93: Added caching for ResultSetMetaData from Christophe Canovas complete commit

Emmanuel Bourg ebourg-guest at moszumanska.debian.org
Mon Jan 9 10:18:56 UTC 2017


This is an automated email from the git hooks/post-receive script.

ebourg-guest pushed a commit to annotated tag REL9_3_1102
in repository libpostgresql-jdbc-java.

commit 39423885a5036a058e1146c693191028b00b9e71
Author: Dave Cramer <davecramer at gmail.com>
Date:   Tue Jul 8 12:47:39 2014 -0400

    Added caching for ResultSetMetaData from Christophe Canovas complete commit
---
 org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java b/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java
index c4adf02..8c802b9 100644
--- a/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java
+++ b/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java
@@ -20,6 +20,7 @@ public abstract class AbstractJdbc2ResultSetMetaData implements PGResultSetMetaD
     protected final Field[] fields;
 
     private boolean fieldInfoFetched;
+    private CacheMetadata _cache;
 
     /*
      * Initialise for a result with a tuple set and
@@ -32,6 +33,7 @@ public abstract class AbstractJdbc2ResultSetMetaData implements PGResultSetMetaD
         this.connection = connection;
         this.fields = fields;
         fieldInfoFetched = false;
+        _cache = new CacheMetadata();
     }
 
     /*
@@ -192,6 +194,15 @@ public abstract class AbstractJdbc2ResultSetMetaData implements PGResultSetMetaD
         if (fieldInfoFetched)
             return;
 
+        // see if cached
+        String idFields = _cache.getIdFields(fields);
+        if (_cache.isCached(idFields)) {
+          // get metadata from cache
+          _cache.getCache(idFields, fields);
+          fieldInfoFetched = true;
+          return;
+        }
+
         fieldInfoFetched = true;
 
         StringBuffer sql = new StringBuffer();
@@ -254,6 +265,8 @@ public abstract class AbstractJdbc2ResultSetMetaData implements PGResultSetMetaD
             }
         }
 	stmt.close();
+        // put in cache
+        _cache.setCache(idFields, fields);
     }
 
     public String getBaseSchemaName(int column) throws SQLException

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libpostgresql-jdbc-java.git



More information about the pkg-java-commits mailing list