Task
|
Status
|
MAX_FIELD_PRECISION - is this from the PostgreSQL documentation?
- The comment is incorrect. This is not 1048576*8*10 and is not 1GB, but 10MB. Remove "~~"
- MAX_LO_SIZE - Remove "~~" from the comment. This is 2GB-1.
|
DONE
|
BIND_BLOB
- Why is this code needed? Under what circumstances
- m_connection -> use getConnection instead.
- nLO -> l
You already have this value, no need to get it again later on. Use Primitive.createLong() to create the long value.
- If an error occurs, lo will not be closed. Please fix this.
- setAutoCommit - why is this modified at all? We cannot simply change the autocommit flag on a connection.
|
DONE
|
BIND_STRING, BIND_BINARY
- you can optimize these with much simpler conditions than the ones in isLOB.
|
|
RequestTimeout should take into account non-positive timeouts.
|
values <=0 do not get to requestTimeout
|
The timeout management functionality requestTimeout and releaseTimeout(rename to schedule and cancel)
- should be moved to the cancelation task, as static methods.
- The timer singleton instance (lazy initialized) should be there as well.
|
DONE
|
unwrap
- why is a pooled connection ever used there?
- When could an exception occur?
- Are we using the correct data source class?
|
- PGXADataSource is the one that gives pooled connections
- When using data load/schema tool
- Yes, PGXADataSource is the correct data source class
|
s_PGXAConnection, s_getQueryExecutor
- what is the purpose of the conditional logic involving these?
|
-s_PGXAConnection used to ensure that reflected methods and properties loaded successfully
-s_getQueryExecutor used to ensure that unwrapped connection is a PGConnection
|
appendIdentitySuffix
- Add a space after ";" for readability
|
DONE
|
appendLiteral
- TIMESTAMP_ORDINAL - this should be in UTC, I think that simply converting the timestamp to a string might not do it.
- Try to see if using Primitive.toString() will provide the right format.
|
DONE
- used StringUtil.appendUTC
|
appendTypeConversion
- TIMESTAMP_ORDINAL - please verify that this actually formats/parses UTC timestamps.
|
DONE
- modified postgresql setup scripts to set timezone to UTC
- changed to use date_part('epoch', timestamp)
|
indexNameMatches
- Spaces around commas are needed. Wrap the line after about 110 chars.
|
DONE
|
isUnicode
- Use lower case SQL keywords
- Use bind variables - this is what makes prepared statements cacheable by the DB
- Object [] { -> no spaces here
- catch(SQLException e) space before (
- Do not repackage the SQLException as a runtime exception - the method already allows throwing an SQLException
|
DONE
|