mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-23 19:39:53 +08:00
SimpleDateFormat performance improvement, thread-safe.
Barry Lind
This commit is contained in:
parent
39381507b7
commit
db491a6d78
@ -65,14 +65,6 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
|
||||
this.sql = sql;
|
||||
this.connection = connection;
|
||||
|
||||
// might just as well create it here, so we don't take the hit later
|
||||
|
||||
SimpleDateFormat df = new SimpleDateFormat("''yyyy-MM-dd''");
|
||||
tl_df.set(df);
|
||||
|
||||
df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
tl_tsdf.set(df);
|
||||
|
||||
for (i = 0; i < sql.length(); ++i)
|
||||
{
|
||||
int c = sql.charAt(i);
|
||||
@ -95,17 +87,6 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
|
||||
templateStrings[i] = (String)v.elementAt(i);
|
||||
}
|
||||
|
||||
/**
|
||||
* New in 7.1 - overides Statement.close() to dispose of a few local objects
|
||||
*/
|
||||
public void close() throws SQLException
|
||||
{
|
||||
// free the ThreadLocal caches
|
||||
tl_df.set(null);
|
||||
tl_tsdf.set(null);
|
||||
super.close();
|
||||
}
|
||||
|
||||
/**
|
||||
* A Prepared SQL query is executed and its ResultSet is returned
|
||||
*
|
||||
@ -343,6 +324,10 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
|
||||
public void setDate(int parameterIndex, java.sql.Date x) throws SQLException
|
||||
{
|
||||
SimpleDateFormat df = (SimpleDateFormat) tl_df.get();
|
||||
if(df==null) {
|
||||
df = new SimpleDateFormat("''yyyy-MM-dd''");
|
||||
tl_df.set(df);
|
||||
}
|
||||
|
||||
set(parameterIndex, df.format(x));
|
||||
|
||||
@ -382,6 +367,10 @@ public class PreparedStatement extends Statement implements java.sql.PreparedSta
|
||||
public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException
|
||||
{
|
||||
SimpleDateFormat df = (SimpleDateFormat) tl_tsdf.get();
|
||||
if(df==null) {
|
||||
df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
tl_tsdf.set(df);
|
||||
}
|
||||
df.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||
|
||||
// Use the shared StringBuffer
|
||||
|
Loading…
Reference in New Issue
Block a user