opened HEAD for 9.4 development
Generate a non-Maven JAR filename using build-time version and JDBC API level.
Don't ignore the result of Statement.executeQuery().

Coverity thinks it's bad form.
Mark a nested class as static.

Coverity thinks that's cleaner. Also fix a comment typo while we're at it.
Make sure file is closed on exception.

The system will eventually close the file anyway, and this read is highly
unlikely to throw an IOException in practice.

Also, use RandomAccessFile.readFully(byte[]) to slurp the file into byte
array, rather than FileInputStream.read(byte[]). The latter would need to
be called in a loop to protect from short reads.

Both issues were complained of by Coverity.
Fix a couple of trivial Statement leaks.

Found by Coverity.
Plug some Statement leaks in metadata queries.

These are fairly harmless, nobody calls these metadata methods frequently
enough for the leaks to matter, and a regular Statement doesn't hold onto
any server resources anyway. But let's appease Coverity.
Avoid integer overflow.

The function returns long, but does the calculation first in int. If someone
sets the timeout to 600 hours in the URL, it will overflow, even though the
return value of the function is long and hence could return a larger value.

To silence a Coverity complaint.
Use StringBuffer to construct a string.

This piece of code isn't performance-critical at all, but silences a
Coverity complaint.
Merge pull request #101 from lordnelson/jar-rename

Create a version string when building the JAR
Merge pull request #102 from hlinnaka/coverity-fixes

Coverity fixes
Fix various setQueryTimeout bugs.

1. If you call setQueryTimeout(5), wait 10 seconds, and call execute(), the
cancel timer has already expired, and the statement will be allowed to run
forever. Likewise, if you call setQueryTimeout(5), wait 4 seconds, and call
execute(), the statement will be canceled after only 1 second.

2. If you call setQueryTimeout on a PreparedStatement, and execute the same
statement several times, the timeout only takes affect on the first
statement.

3. If you call setQueryTimeout on one Statement, but don't execute it, the
timer will still fire, possible on an unrelated victim Statement.

The root cause of all of these bugs was that the timer was started at the
setQueryTimeout() call, not on the execute() call.

Also, remove the finally-block from the cancellation task's run-method,
because that might erroneously cancel the timer for the next query, if a
new query is started using the same statement fast enough.
fixed driver fails to find foreign tables fix from plalg@hotmail.com
Merge pull request #106 from davecramer/master

fixed driver fails to find foreign tables fix from plalg@hotmail.com
Merge pull request #105 from hlinnaka/querytimeout-fixes

Fix various setQueryTimeout bugs.
Base table more usefull than "" as basic table name
fixed bug PreparedStatement.getMetaData failed if result set was closed
reported by Emmanuel Guiton
Merge pull request #108 from davecramer/master

fixed bug PreparedStatement.getMetaData failed if result set was closed
fixed bug PreparedStatement.getMetaData failed if result set was closed
reported by Emmanuel Guiton #bugfix#
Merge pull request #109 from davecramer/REL9_3_STABLE

fixed bug PreparedStatement.getMetaData failed if result set was closed