annotate release.md @ 944:fc32ba68a2cc

Remove onclient.txt. It is now made available on https://www.monetdb.org/documentation-Aug2024/user-guide/client-interfaces/libraries-drivers/jdbc-driver/#on-client-extension
author Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
date Thu, 09 Jan 2025 14:14:52 +0100 (3 months ago)
parents 1295183c400c
children b21578cf909f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a5a898f6886c Copy of MonetDB java directory changeset e6e32756ad31.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
1 RELEASE NOTES
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
2 =============
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
3
741
843f7d03540a Updated release numbers in preparation for a release.
Sjoerd Mullender <sjoerd@acm.org>
parents: 740
diff changeset
4 MonetDB JDBC driver version 3.3 (Liberica)
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
5 <br>
741
843f7d03540a Updated release numbers in preparation for a release.
Sjoerd Mullender <sjoerd@acm.org>
parents: 740
diff changeset
6 Release date: 2023-02-23
0
a5a898f6886c Copy of MonetDB java directory changeset e6e32756ad31.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
7
355
69803e5a5a49 Extend text in JDBC release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 354
diff changeset
8 The Java Database Connectivity (JDBC) API provides universal data access from
69803e5a5a49 Extend text in JDBC release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 354
diff changeset
9 the Java programming language.
69803e5a5a49 Extend text in JDBC release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 354
diff changeset
10
69803e5a5a49 Extend text in JDBC release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 354
diff changeset
11 The MonetDB JDBC driver is designed for use with MonetDB, an Open-Source column-store RDBMS.
177
4959b85b981c Extend DatabaseMetaData.getClientInfoProperties() with new property: treat_clob_as_varchar
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 176
diff changeset
12 For more information see https://www.monetdb.org/
0
a5a898f6886c Copy of MonetDB java directory changeset e6e32756ad31.
Sjoerd Mullender <sjoerd@acm.org>
parents:
diff changeset
13
355
69803e5a5a49 Extend text in JDBC release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 354
diff changeset
14 The latest MonetDB JDBC driver can be downloaded from
69803e5a5a49 Extend text in JDBC release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 354
diff changeset
15 https://www.monetdb.org/downloads/Java/
69803e5a5a49 Extend text in JDBC release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 354
diff changeset
16
477
0e30bc245838 Update the release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 444
diff changeset
17 The sources for this JDBC driver and related Java programs can be found at:
0e30bc245838 Update the release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 444
diff changeset
18 https://dev.monetdb.org/hg/monetdb-java/file/tip
0e30bc245838 Update the release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 444
diff changeset
19
0e30bc245838 Update the release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 444
diff changeset
20
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
21 URL Format
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
22 ----------
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
23
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
24 The MonetDB JDBC connection URL format is:
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
25
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
26 <pre>
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
27 jdbc:<b>monetdb</b>://[&lt;host>[:&lt;port>]]/&lt;databasename>[?&lt;properties>] (not encrypted)
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
28 OR
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
29 jdbc:<b>monetdbs</b>://[&lt;host>[:&lt;port>]]/&lt;databasename>[?&lt;properties>] (encrypted)
176
e701b51b3552 Extend release.txt with information on MonetDB JDBC connection URL format
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 163
diff changeset
30
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
31 where &lt;properties> are &-separated: prop1=value1[&prop2=value2[&prop3=value3...]]
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
32 </pre>
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
33
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
34 The second form (monetdbs) is for creating a TLS-protected connection. TLS (Transport Layer Security)
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
35 is the mechanism that is also used for HTTPS.
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
36
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
37 Property keys and values support percent-escaped bytes. For example, the
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
38 password 'chocolate&cookies' can be passed as follows: `jdbc:monetdb:///demo?user=me&password=chocolate%26cookies`.
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
39
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
40 Note: MonetDB-Java version 3.3 and earlier did not support percent-escapes.
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
41 If your password contains percent-characters, these must now be encoded as `%25`.
176
e701b51b3552 Extend release.txt with information on MonetDB JDBC connection URL format
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 163
diff changeset
42
177
4959b85b981c Extend DatabaseMetaData.getClientInfoProperties() with new property: treat_clob_as_varchar
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 176
diff changeset
43 Supported connection properties are:
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
44
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
45 | Property | Default | Notes |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
46 | ----------------------------------------- | ------- | --------------------------------------------------- |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
47 | user=&lt;login name> | - | required |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
48 | password=&lt;secret value> | - | required |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
49 | so_timeout=&lt;time in milliseconds> | - | |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
50 | treat_clob_as_varchar=&lt;bool> | true | |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
51 | treat_blob_as_binary=&lt;bool> | true | |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
52 | language=&lt;sql or mal> | sql | |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
53 | replysize=&lt;nr of rows> | 250 | -1 means fetch everything at once |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
54 | autocommit=&lt;bool> | true | |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
55 | schema=&lt;schema name> | - | initial schema to select |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
56 | timezone=&lt;minutes east of UTC> | system | |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
57 | debug=true | false | |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
58 | logfile=&lt;name of logfile> | | |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
59 | hash=&lt;SHA512, SHA384, SHA256 or SHA1> | | |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
60 | cert=&lt;path to certificate> | - | TLS certificate must be in PEM format |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
61 | certhash=sha256:&lt;hexdigits and colons> | - | required hash of server TLS certificate in DER form |
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
62
346
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
63
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
64 Booleans &lt;bool> can be written as 'true', 'false', 'yes', 'no', 'on' and 'off'. Property 'fetchsize' is accepted as an alias of 'replysize'.
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
65
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
66 Client authentication (Mutual TLS, or MTLS) is not yet supported.
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
67
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
68 When the properties 'treat_clob_as_varchar' and 'treat_blob_as_binary' are enabled,
381
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
69
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
70 The properties 'treat_clob_as_varchar' and 'treat_blob_as_binary' control which
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
71 type is returned by ResultSetMetaData.getColumnType(int) for CLOB and BLOB columns.
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
72 When 'treat_clob_as_varchar' is enabled, Types.VARCHAR is returned instead of Types.CLOB
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
73 for CLOB columns. When 'treat_blob_as_binary' is enabled, Types.VARBINARY is returned instead
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
74 of Types.BLOB for BLOB columns.
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
75 This will cause generic JDBC applications such as SQuirrel SQL and DBeaver to use
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
76 the more efficient '#getString()' and '#getBytes()' API rather than '#getClob()' and
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
77 '#getClob()'.
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
78 These properties are enabled by default since MonetDB-Java version 3.0.
381
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
79
176
e701b51b3552 Extend release.txt with information on MonetDB JDBC connection URL format
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 163
diff changeset
80
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
81 Use
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
82 ---
176
e701b51b3552 Extend release.txt with information on MonetDB JDBC connection URL format
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 163
diff changeset
83
364
37f54743b1fd Correcting invalid documentation URL refs.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 363
diff changeset
84 See also: https://www.monetdb.org/Documentation/SQLreference/Programming/JDBC
176
e701b51b3552 Extend release.txt with information on MonetDB JDBC connection URL format
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 163
diff changeset
85
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
86 The MonetDB JDBC driver class name is `org.monetdb.jdbc.MonetDriver`.
482
73cfc519ec1e Updated ChangeLog, Archive and release.txt in preparation of new release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 477
diff changeset
87 This has been changed as of release 3.0 (monetdb-jdbc-3.0.jre8.jar).
768
a80c21fe7bb2 Removed deprecated nl.cwi.monetdb.*.* classes and package.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 765
diff changeset
88 The old driver class (nl.cwi.monetdb.jdbc.MonetDriver) has been deprecated
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
89 since 12 Nov 2020 and has been removed in release 3.4 (monetdb-jdbc-3.4.jre8.jar).
482
73cfc519ec1e Updated ChangeLog, Archive and release.txt in preparation of new release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 477
diff changeset
90
73cfc519ec1e Updated ChangeLog, Archive and release.txt in preparation of new release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 477
diff changeset
91
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
92 Notes and tips
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
93 --------------
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
94
639
899f0c120256 Improve and extend information in .txt files.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 637
diff changeset
95 - After creating a Connection object check for SQLWarnings via conn.getWarnings();
899f0c120256 Improve and extend information in .txt files.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 637
diff changeset
96
346
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
97 - Close JDBC ResultSet, Statement, PreparedStatement, CallableStatement and
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
98 Connection objects immediately (via close()) when they are no longer needed,
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
99 in order to release resources and memory on the server and client side.
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
100 Especially ResultSets can occupy large amounts of memory on the server and
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
101 client side.
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
102
444
bc39810b3faa Update ChangeLog release.txt for creating new MonetDB JDBC Driver release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 435
diff changeset
103 - By default the ResultSets created by methods in DatabaseMetaData
bc39810b3faa Update ChangeLog release.txt for creating new MonetDB JDBC Driver release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 435
diff changeset
104 which return a ResultSet (such as dbmd.getColumns(...)) are
bc39810b3faa Update ChangeLog release.txt for creating new MonetDB JDBC Driver release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 435
diff changeset
105 TYPE_SCROLL_INSENSITIVE, so they cache their ResultSet data to
bc39810b3faa Update ChangeLog release.txt for creating new MonetDB JDBC Driver release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 435
diff changeset
106 allow absolute, relative and random access to data rows and fields.
639
899f0c120256 Improve and extend information in .txt files.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 637
diff changeset
107 To free heap memory and server resources, close those ResultSets
444
bc39810b3faa Update ChangeLog release.txt for creating new MonetDB JDBC Driver release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 435
diff changeset
108 immediately when no longer needed.
bc39810b3faa Update ChangeLog release.txt for creating new MonetDB JDBC Driver release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 435
diff changeset
109
bc39810b3faa Update ChangeLog release.txt for creating new MonetDB JDBC Driver release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 435
diff changeset
110 - By default the ResultSets created by stmt.executeQuery(...) or
bc39810b3faa Update ChangeLog release.txt for creating new MonetDB JDBC Driver release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 435
diff changeset
111 stmt.execute(...) are TYPE_FORWARD_ONLY, to reduce the potentially large
bc39810b3faa Update ChangeLog release.txt for creating new MonetDB JDBC Driver release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 435
diff changeset
112 amount of client memory needed to cache the whole ResultSet data.
bc39810b3faa Update ChangeLog release.txt for creating new MonetDB JDBC Driver release.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 435
diff changeset
113
346
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
114 - When you need to execute many SQL queries sequentially reuse the Statement
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
115 object instead of creating a new Statement for each single SQL query.
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
116 Alternatively you can execute the SQL queries as one script (each SQL query
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
117 must be separated by a ; character) string via stmt.execute(script),
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
118 stmt.getResultSet() and stmt.getMoreResults().
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
119 Or you can use the batch execution functionality, see stmt.addBatch() and
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
120 stmt.executeBatch() methods.
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
121
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
122 - The fastest way to retrieve data from a MonetDB ResultSet is via the
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
123 getString(int columnIndex) method, because internally all data
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
124 values (of all types) are stored as Strings, so no conversions are needed.
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
125
381
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
126 - Avoid using rs.getObject() as it will need to construct a new Object for
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
127 each value, even for primitive types such as int, long, boolean.
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
128
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
129 - Avoid using rs.getClob(). Instead use getString() for all CLOB
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
130 columns, which is much faster and uses much (3 times) less memory.
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
131
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
132 - Avoid using rs.getBlob(). Instead use getBytes() to get a byte array
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
133 or use getString() to get a string containing hex pairs, for all BLOB
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
134 columns. These methods are much faster and use much less memory.
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
135 The getString() is the fastest way as no conversions are done at all.
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
136 The getBytes() will need to convert the hex char string into a new bytes[].
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
137
346
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
138 - Try to avoid calling "rs.get...(String columnLabel)" methods inside the
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
139 while(rs.next()) {...} loop. Instead resolve the columnLabels to column
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
140 numbers before the loop via method "int findColumn(String columnLabel)"
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
141 and use the int variables with the rs.get...(int columnIndex) methods.
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
142 This eliminates the call to findColumn(String columnLabel) for
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
143 each value of every column for every row in the ResultSet.
355
69803e5a5a49 Extend text in JDBC release.txt
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 354
diff changeset
144 See also the example Java JDBC program on:
364
37f54743b1fd Correcting invalid documentation URL refs.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 363
diff changeset
145 https://www.monetdb.org/Documentation/SQLreference/Programming/JDBC
346
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
146
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
147 **WARNING**:
662
ee1f3b3ff5fd Remove MCL_MAJOR and MCL_MINOR references now we no longer distribute monetdb-mcl-1.##.jre8.jar file.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 658
diff changeset
148 The current implementation of the MonetDB JDBC driver is *NOT*
346
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
149 multi-thread safe. If your program uses multiple threads concurrently on
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
150 the same Connection (so one MapiSocket), this may lead to incorrect behavior
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
151 and results (due to race conditions).
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
152 You will need to serialize the processing of the threads in your Java program.
381
11c30e3b7966 Set the connection properties treat_clob_as_varchar and treat_blob_as_binary to true by default for faster processing (less objects created, less memory needed) when querying CLOB or BLOB column data.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 376
diff changeset
153 Alternatively you can use a separate JDBC Connection for each thread.
346
5d108b9ffc64 Improved and extended the JDBC driver release information with notes and tips for programmers who want to use the MonetDB JDBC driver.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 340
diff changeset
154
877
f31366ece930 Convert release.txt to release.md and add TLS info
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents: 774
diff changeset
155 Note: as of version 3.0 (monetdb-jdbc-3.0.jre8.jar) we compile all
354
b1f8750e6cde Switch to Java 8 compilation and distribution as Java 7 is no longer supported.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 346
diff changeset
156 the java sources to target: Java SE 8 (profile compact2), so
b1f8750e6cde Switch to Java 8 compilation and distribution as Java 7 is no longer supported.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 346
diff changeset
157 you need a JRE/JDK JVM of version 8 or higher to use it.
662
ee1f3b3ff5fd Remove MCL_MAJOR and MCL_MINOR references now we no longer distribute monetdb-mcl-1.##.jre8.jar file.
Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
parents: 658
diff changeset
158