-
Notifications
You must be signed in to change notification settings - Fork 4
/
ChangeLog-Archive
1030 lines (869 loc) · 54.7 KB
/
ChangeLog-Archive
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# ChangeLog-Archive file for monetdb-java
# This file contains all past monetdb-java ChangeLog entries
# For every new release the ChangeLog is prepended to this file.
* Thu Feb 23 2023 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Compiled and released new jar files: monetdb-jdbc-3.3.jre8.jar and
jdbcclient.jre8.jar
* Thu Feb 9 2023 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected DatabaseMetaData.getSQLKeywords() output. It used to return
all MonetDB SQL keywords, but now it excludes the SQL:2003 keywords
as defined by the Java JDBC API specification.
* Thu Jan 19 2023 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected DatabaseMetaData.getUDTs() output. It used to return rows
for system types: inet, json, url and uuid. However those are not User
Defined Types. Now they are no longer returned by this method.
* Thu Dec 8 2022 Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
- Internal method waitForPrompt() of class BufferedMCLReader has been
renamed to discardRemainder(). The example program SQLcopyinto.java
which uses this method, has been updated.
* Thu Nov 17 2022 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Fixed an invalid error issue when a PreparedStatement had more than 250
parameters. See also https://github.com/MonetDB/MonetDB/issues/7337
* Thu Nov 3 2022 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected returned SQL TypeName values for the MonetDB interval types:
'day_interval', 'month_interval' and 'sec_interval'. Those MonetDB
type names can not be used in CREATE TABLE statements. Instead
one has to use SQL type names: 'interval day', 'interval month' or
'interval second'. The JDBC driver now returns those SQL type names.
This applies to methods: DatabaseMetaData.getTypeInfo() for the output
column TYPE_NAME (the output column LOCAL_TYPE_NAME now returns
the original type name), ResultSetMetaData.getColumnTypeName() and
ParameterMetaData.getParameterTypeName().
* Thu Oct 27 2022 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected PreparedStatement methods getMetaData().getColumnDisplaySize(),
getMetaData().getPrecision() and getParameterMetaData().getPrecision().
* Thu Oct 20 2022 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved implementation of method ResultSetMetaData.getPrecision(). It
now returns more accurate values for columns of type DECIMAL, NUMERIC,
CHAR, VARCHAR, CLOB, JSON, URL and BLOB.
- Improved implementation of method ResultSetMetaData.getScale(). It now
returns more accurate values for columns of type DECIMAL and NUMERIC.
* Thu Sep 29 2022 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Removed creation and distribution of monetdb-mcl-1.##.jre8.jar file.
Programmers who used this jar file should use monetdb-jdbc-3.#.jre8.jar file.
* Fri Sep 09 2022 Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
- Add autocommit=true/false option to the JDBC URL. The default remains 'true'.
* Wed Aug 24 2022 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved DatabaseMetaData.getBestRowIdentifier(). When there are multiple
unique constraints and no pkey for a table it used to return the columns
of all the table unique constraints. Now it only returns the columns of
the first table unique constraint.
Also optimized the performance of getBestRowIdentifier(). It used to
send a separate query first to find out if the table had a pkey or not.
This extra query is now integrated so less queries are send to the server.
* Wed Mar 30 2022 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected DatabaseMetaData methods getPrimaryKeys(), getBestRowIdentifier()
and getIndexInfo() for local temporary tables located in schema tmp. They
did not return any rows when the temp table had a primary or unique key or
index. Now they do return rows as expected.
* Thu Feb 10 2022 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Added recognition of 'xml' type. Use default mapping to Types.VARCHAR for
easy and fast (as java.lang.String) retrieval, display and setting data of
columns of type 'xml'.
* Thu Jan 27 2022 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Compiled and released new jar files: monetdb-jdbc-3.2.jre8.jar,
monetdb-mcl-1.21.jre8.jar and jdbcclient.jre8.jar
* Wed Jan 19 2022 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Fixed an SQL query problem in DatabaseMetaData.getBestRowIdentifier()
method when used with MonetDB Jan2022 (or newer) releases. It
returned java.sql.SQLException:
SELECT: with DISTINCT ORDER BY expressions must appear in select list
As of MonetDB Jan2022 (11.43.5) such queries are no longer allowed.
The internally used SQL query has been improved.
* Thu Jan 13 2022 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Extended JdbcClient application with support for following \d commands:
\dt \dv \dSt \dSv \df \dp \dSf \dSp \dn \dSn and \ds
for showing list of: user tables, user views, system tables, system views,
user functions, user procedures, system functions, system procedures,
user schemas, system schemas and user sequences.
For more information, see the built-in help (\?) on available commands.
* Thu Nov 25 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Extended FileTransferHandler utility class by adding support for reading from
and writing to gzip compressed files when using file name extension .gz
Also improve error handling by testing on empty file name and provide more
information when invalid file name is given or other compression formats are
requested. As the FileTransferHandler utility class is used by JdbcClient
application, it will now also support this functionality.
* Fri Nov 05 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- The JdbcClient application has been extended to support the new
COPY ... ON CLIENT functionality.
However for security reasons you must provide an explicit new startup argument
--csvdir "/absolute/path/to/csvdatafiles"
or on MS Windows
--csvdir "C:\\path\\to\\csvdatafiles"
in order to activate the JdbcClient application to down/up load data to/from
the local file system.
* Fri Nov 05 2021 Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
- Extended the MonetDB JDBC driver with support for the ON CLIENT clause of
the COPY statements. To make use of this functionality you must first
register handlers for upload and download of data.
The MonetConnection class has been extended with 2 methods:
public void setUploadHandler(UploadHandler uploadHandler)
public void setDownloadHandler(DownloadHandler downloadHandler)
The MonetDB JDBC driver API has been extended with interfaces:
public interface org.monetdb.jdbc.MonetConnection.UploadHandler
public interface org.monetdb.jdbc.MonetConnection.DownloadHandler
See onclient.txt for more information on how to use these from Java.
We also provide a utility class:
public class org.monetdb.util.FileTransferHandler
which provides an example implementation of the MonetConnection.UploadHandler
and MonetConnection.DownloadHandler interfaces useable for reading files
from or writing files to a local file system.
* Mon Jun 14 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Compiled and released new jar files: monetdb-jdbc-3.1.jre8.jar,
monetdb-mcl-1.20.jre8.jar and jdbcclient.jre8.jar
* Thu Apr 29 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved performance of ResultSetMetaData methods getPrecision(),
getScale(), isNullable() and isAutoIncrement(). The data is fetched
from the server by sending a query. This used to be one query for
each column of the ResultSet. Now these metadata queries are combined
into one query fetching this meta data for up to 50 columns in one query.
This reduces the number of queries sent to the server significantly.
This is noticable for instance when using generic JDBC query tools
such as SQuirreL, DBeaver, which now respond much faster.
* Wed Mar 3 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Implemented PreparedStatement.toString() as requested by
https://github.com/MonetDB/monetdb-java/issues/8
* Wed Mar 3 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Implemented fix for released monetdb-jdbc-3.0.jre8.jar and
monetdb-mcl-1.19.jre8.jar when it is was run using java build 1.8.0_###.
It would throw:
java.lang.NoSuchMethodError: java.nio.CharBuffer.mark()Ljava/nio/CharBuffer;
at org.monetdb.mcl.parser.StartOfHeaderParser.getNextAsString(Unknown Source)
at org.monetdb.jdbc.MonetConnection$ResponseList.executeQuery(Unknown Source)
at org.monetdb.jdbc.MonetConnection$ResponseList.processQuery(Unknown Source)
at org.monetdb.jdbc.MonetStatement.internalExecute(Unknown Source)
at org.monetdb.jdbc.MonetStatement.execute(Unknown Source)
The problem is caused by a change in java.nio.CharBuffer API (return
types of methods mark() and reset() have changed from Buffer to
CharBuffer) from Java 8 to Java 9+.
* Wed Feb 17 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Compiled and released new jar files: monetdb-jdbc-3.0.jre8.jar,
monetdb-mcl-1.19.jre8.jar and jdbcclient.jre8.jar
monetdb-jdbc-3.0.jre8.jar is a new major release of the MonetDB JDBC driver.
The MonetDB JDBC Driver is now compliant with the Java™ Database
Connectivity (JDBC) 4.2 specification as defined in Java 8 and requires
Java 8 runtime (profile compact2) as minimum version.
Important: the MonetDB JDBC driver class name has also been changed in
this release to: org.monetdb.jdbc.MonetDriver. The old driver class
(nl.cwi.monetdb.jdbc.MonetDriver) is also included in the jar file, but
only to ease the transition for existing deployments. It will be removed
in a future release of this JDBC driver. Please use the new driver
class name if this is used in your configuration files or Java code.
The JdbcClient program (jdbcclient.jre8.jar) has been extended with
functionality to validate the integrity of the system tables (\vsci) or
to validate the integrity of data in tables of a specific schema (\vsi xyz)
based on defined declarative constraints (pkey, fkey, not null, etc.).
This will be usefull to find and report inconsistencies in your database.
This functionality is a beta release. Please let us know if you
encounter any issues running it. See below for more information.
Besides a few bug fixes also performance has been improved in multiple areas.
* Wed Feb 3 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Added support for escaped wildcards (\% en \_) in String arguments of
DatabaseMetaData methods which return a ResultSet, such as getTables(),
getColumns(), etc. When you do not want the characters % or _ to be
interpreted as wildcards but as normal characters you can prefix them
with a backslash (so \% and \_). Note: be sure all wildcards characters
in the String argument are escaped else the search must still use a
LIKE operator instead of an = comparison operator.
This fixes: https://github.com/MonetDB/monetdb-java/issues/3
* Thu Jan 28 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected the ordering of the output of DatabaseMetaData methods
getImportedKeys(), getExportedKeys() and getCrossReference(). In cases
where a table would have multiple fks to the same external table,
the output was not as expected. This has been corrected, so the columns
now appear in the order as defined in the creation of the fks.
* Thu Jan 28 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- The dumping of table definitions from JdbcClient program has been
improved. It now includes the ON UPDATE and ON DELETE rules for foreign
key constraints. Also it no longer generates CREATE INDEX statements
for foreign key constraints whose name is not system generated but
user specified.
* Thu Jan 14 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved DatabaseMetaData.getTypeInfo() output for temporal data
types: sec_interval, day_interval, month_interval, date, time, timetz,
timestamp and timestamptz.
* Wed Jan 6 2021 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected output of resultset columns UPDATE_RULE and DELETE_RULE
when calling DatabaseMetaData API methods getImportedKeys() or
getExportedKeys() or getCrossReference(). These columns used to
always return DatabaseMetaData.importedKeyNoAction but now they
can also report the other values when set:
DatabaseMetaData.importedKeyCascade
or DatabaseMetaData.importedKeyRestrict
or DatabaseMetaData.importedKeySetNull
or DatabaseMetaData.importedKeySetDefault.
* Thu Nov 12 2020 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Moved Java classes from packages starting with nl.cwi.monetdb.*
to package org.monetdb.* This naming complies to the Java Package
Naming convention as MonetDB's main website is www.monetdb.org.
To prevent problems with existing Java programs and JDBC driver
configurations we still support usage of the following classes:
nl.cwi.monetdb.jdbc.MonetDriver
nl.cwi.monetdb.jdbc.types.INET
nl.cwi.monetdb.jdbc.types.URL
nl.cwi.monetdb.mcl.net.MapiSocket
nl.cwi.monetdb.client.JdbcClient
They are implemented as simple wrappers of their org.monetdb.* equivalents.
Note: These nl.cwi.monetdb.* classes are now marked as deprecated and may
be removed in a future release. If you still use them in your Java code or
configuration files, update them to use the new package names.
* Thu Oct 29 2020 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Extended JdbcClient program with 3 new commands to quickly validate
data integrity:
\vsci validate sql system catalog integrity
\vsi <schema> validate integrity of data in the given schema
\vdbi validate integrity of data in all user schemas in the database
The current validations include:
- Primary Key uniqueness
- Primary Key column(s) being NOT NULL (currently only for \vsci)
- Unique constraint uniqueness
- Foreign Key referential integrity
- Column NOT NULL constraint
- Varchar(n) max length constraint
- Idem for char(n), clob(n), blob(n), json(n) and url(n).
It can be usefull to run \vsci before and after an upgrade of MonetDB server.
Use \vsi my_schema to validate data in all tables of a specific schema.
Use \vdbi to validate integrity of data in all user schemas in
the database. Note: this can take a while, depending on your number
of user schemas, tables, columns and rows. Despite being tested on several
internal dbs the functionality is still beta, so you can get false
errors reported. If you encounter any let us know asap.
* Thu Oct 8 2020 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved performance of ResultSetMetaData methods isAutoIncrement(),
getPrecision() and getScale() significantly for columns of specific data
types as in some cases no costly meta data query is executed anymore.
* Thu Oct 8 2020 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- The connection properties treat_clob_as_varchar and treat_blob_as_binary
are now set to true by default within the JDBC driver. This is done
as it results by default in less memory usage, (much) faster response
and better user experience for many generic JDBC applications (like
SQuirreL SQL, DBeaver, etc) when fetching data from CLOB or BLOB result
columns. See release.txt for more information and how you can turn
it off to get the old JDBC driver behavior if you require it.
* Wed Oct 7 2020 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Added support for new Java 8 java.sql.Types: Types.TIME_WITH_TIMEZONE and
Types.TIMESTAMP_WITH_TIMEZONE.
* Wed Sep 23 2020 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Updated JDBC driver to comply with JDBC 4.2 interface now we compile
for Java 8. This includes:
- adding 8 methods to MonetCallableStatement
- adding 2 methods to MonetDatabaseMetaData
- adding 3 methods to MonetPreparedStatement
- adding 4 methods to MonetResultSet
- adding 8 methods to MonetStatement
* Wed Sep 23 2020 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected MonetDatabaseMetaData.getTypeInfo()
- The LITERAL_PREFIX column now includes the required casting name for
types: clob, inet, json, url, uuid and blob.
- The SEARCHABLE column now returns typePredBasic instead of typeSearchable
for type: blob.
- The AUTO_INCREMENT column now returns false for types: hugeint, decimal,
oid and wrd.
* Thu Sep 10 2020 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Removed support for deprecated MD5 encryption algorithm in MapiSocket.
* Wed Sep 9 2020 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected Statement.executeBatch() method. It now implicitly clears the
batch buffer, ready to accept new addBatch() calls without the need for
an explicit clearBatch() call.
See also https://github.com/MonetDB/MonetDB/issues/6953
* Wed Feb 19 2020 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected the return value of getCatalogTerm() to "cat".
* Wed Feb 12 2020 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- As Java 7 is no longer supported we now compile for Java 8 as the
minimum required JVM version (profile compact2).
* Thu Sep 26 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Compiled and released new jar files: monetdb-jdbc-2.29.jre7.jar,
monetdb-mcl-1.18.jre7.jar and jdbcclient.jre7.jar
- Following issues are resolved with this new MonetDB JDBC driver release:
- JDBC: Support for Connection.prepareCall()
See https://github.com/MonetDB/MonetDB/issues/6402
We implemented the java.sql.CallableStatement interface.
- Jdbc connection hangs
See https://github.com/MonetDB/MonetDB/issues/6571
- Mix of long and short queries make JDBC-driver hang
See https://github.com/MonetDB/MonetDB/issues/6693
- Example SQLcopyinto.java does not work
See https://github.com/MonetDB/MonetDB/issues/6646
Also improvements are made in:
- reducing the number of objects created (and thereby heap memory size)
- reducing number of methods called
- robustness, more checks on invalid parameter values
- performance
* Wed Sep 25 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- The jar files are now named according to Java version compatibility.
For example, the monetdb-jdbc-2.29.jre7.jar file should be used with
Java 7 or higher.
* Wed Sep 18 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected method DatabaseMetaData.getBestRowIdentifier(). It used to
return columns of both primary key and unique constraints. Now it only
returns the columns of the primary key if it has one, else columns of
a unique constraint.
* Wed Sep 11 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Optimized parse() method of TupleLineParser by creating less helper objects
and replacing method calls by direct operations on variables.
* Wed Sep 4 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected JdbcClient program: the dumping of a view DDL was incorrect when
the view creation statement was not starting with "create view ", such as
when it was created using "create or replace view". It now shows the
value as stored in sys.tables.query field, similar to mclient program.
* Thu Aug 22 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved JdbcClient program by including the schema prefix when dumping
schema objects. It now behaves more similar to: mclient -D -N.
- Improved JdbcClient program. It now also dumps definitions of MERGE TABLE,
REMOTE TABLE, REPLICA TABLE and STREAM TABLE when dumping (all) tables.
* Wed Aug 14 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved MonetDatabaseMetaData methods:
- getNumericFunctions(): it now includes function: sys.alpha
- getNumericFunctions(): it no longer lists functions: not_uniques and rotate_xor_hash
- getStringFunctions(): it now includes functions: json.isarray, json.isobject,
json.isvalid, sys.reverse which accept a string value as argument
- getStringFunctions(): it no longer lists functions: copyfrom, get_value_for, next_value_for, restart.
- getSystemFunctions(): it now includes system functions: get_value_for, hash,
next_value_for, sys.columnsize, sys.debug, sys.hashsize, sys.heapsize,
sys.imprintsize, sys.isauuid, sys.md5, sys.newurl, sys.password_hash, isaurl
- getSystemFunctions(): it no longer lists function: getlimit.
Also some functions require the prefix "sys." or "json." when used
from another schema. This is now included in the names returned by
methods getNumericFunctions(), getStringFunctions(), getSystemFunctions()
and getTimeDateFunctions().
* Wed Jul 31 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected MonetDatabaseMetaData methods:
- getNumericFunctions(): it now includes function: pi.
- getSystemFunctions(): it no longer lists numeric functions: pi and rand.
- supportsSchemasInIndexDefinitions(): changed from true to false
- Optimised MonetStatement memory resource usage by only creating an ArrayList
and ReentrantLock object when the batch methods addBatch() or executeBatch()
are called. In most Statement usages those methods are never called.
- Implemented method MonetClob.getAsciiStream().
* Thu Mar 21 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Added implementation of java.sql.CallableStatement interface. Some standard
Java applications require this JDBC interface for executing SQL stored procedures.
This implementation resolves request: https://github.com/MonetDB/MonetDB/issues/6402
* Thu Mar 7 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved MonetDatabaseMetaData methods:
- getNumericFunctions(): it now includes functions: degrees, fuse, ms_round, ms_str, ms_trunc and radians.
- getStringFunctions(): it now includes function: position.
- supportsIntegrityEnhancementFacility() now returns false, as we do not enforce CHECK constraints yet.
* Thu Feb 7 2019 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved MonetDatabaseMetaData methods:
- getNumericFunctions(): it no longer lists aggregate functions: avg, prod and sum
- getSystemFunctions(): it no longer lists timedate function: extract
- getTimeDateFunctions(): it now also lists functions: date_trunc, epoch
- Corrected MonetDatabaseMetaData method getTypeInfo() for result column
SEARCHABLE. It now returns DatabaseMetaData.typeSearchable for all
string data types including 'inet','json','url','uuid' and 'blob'.
* Thu Sep 20 2018 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved example program SQLcopyinto.java and moved it to tests directory
for automatic testing.
* Thu Jun 28 2018 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected return values of DatabaseMetaData methods
allTablesAreSelectable() and allProceduresAreCallable().
They used to return true but now return false.
* Wed May 23 2018 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new jars: monetdb-jdbc-2.28.jar, monetdb-mcl-1.17.jar
and updated jdbcclient.jar
* Thu Apr 26 2018 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected and extended output of DatabaseMetaData methods
getTimeDateFunctions() and getSystemFunctions(). The Date/Time functions
(curdate, current_date, current_time, current_timestamp, curtime,
local_timezone, localtime, localtimestamp) were returned by
getSystemFunctions() but are now returned by getTimeDateFunctions().
getTimeDateFunctions() now also lists functions: date_to_str, extract, now,
str_to_date, str_to_time, str_to_timestamp, time_to_str and timestamp_to_str.
- Improved DatabaseMetaData methods getTablePrivileges() and
getColumnPrivileges() by returning also any combination of privileges
for the table or column in the PRIVILEGE result column. Previously only
single privileges (SELECT or UPDATE or INSERT or DELETE or EXECUTE or
GRANT) would be returned.
* Thu Apr 19 2018 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected method DatabaseMetaData.getFunctions() for result column
FUNCTION_TYPE. It used to return DatabaseMetaData.functionResultUnknown
value for Analytic (functions.type 6) and Loader function (functions type 7).
It now returns DatabaseMetaData.functionNoTable for Analytic functions and
DatabaseMetaData.functionReturnsTable for Loader functions.
- DatabaseMetaData methods getTables(), getColumns(), getProcedures() and
getFunctions() now return the comment in the REMARKS result column when a
comment has been set for the table / view / column / procedure / function
via the SQL command COMMENT ON <db-object type> <qname> IS 'comment-text'.
* Thu Dec 14 2017 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Fixed a problem with retrieving Dates and Timestamps which contained a
year value less than 1000. It would throw an SQLDataException with message:
Could not convert value to a Date. Expected JDBC date escape format
yyyy-[m]m-[d]d.
See also: https://github.com/MonetDB/MonetDB/issues/6468
* Mon Oct 23 2017 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new jars: monetdb-jdbc-2.27.jar, monetdb-mcl-1.16.jar
and updated jdbcclient.jar
* Thu Oct 5 2017 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected method Connection.prepareCall(). It used to return null.
Now it throws an SQLFeatureNotSupportedException to comply with the
JDBC specification.
* Thu Sep 28 2017 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Added possibility to let the JDBC driver return columnType value
Types.VARCHAR instead of Types.CLOB in case the result column of a
ResultSet or parameter in a PreparedStatement is of data type 'clob'.
To enable this behavior provide it as JDBC connection URL property:
treat_clob_as_varchar=true
For example: jdbc:monetdb://localhost:50000/demo?treat_clob_as_varchar=true
See also:
https://www.monetdb.org/Documentation/Manuals/SQLreference/Programming/JDBC
This custom clob mapping informs generic JDBC programs to fetch clob
column values via method ResultSet.getString() instead of getClob()
and Clob.getCharacterStream() and next fetching from the stream.
As MonetDB server MAPI communication protocol does not support
streaming of parts of a CLOB value, the current implementation is to
send over the whole CLOB value as a string. Therefore there is no
performance gain when fetching those Clob values via getClob() and
getCharacterStream(). In fact it creates a lot of overhead (additional
objects and method calls) and triples the amount of needed Java Heap memory
for each Clob value!
With this connection property set, you can reduce this overhead when
working with clob column data from generic JDBC programs.
* Thu Sep 7 2017 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Implemented PreparedStatement methods setNCharacterStream(int, Reader)
and setNCharacterStream(int, Reader, long).
* Thu Aug 31 2017 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected PreparedStatement methods setString(int, String)
and setObject(int, Object, ...) in case the target parameter
data type was json or inet or url or uuid. See also
https://github.com/MonetDB/MonetDB/issues/6382
* Thu Aug 24 2017 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Implemented PreparedStatement method setURL(int, URL).
- Implemented PreparedStatement method setNString(int, String).
- The MonetDB JDBC driver code and jdbcclient program are now compiled
without debug info and with optimise flag enabled.
The new jar files are now some 20% smaller in size.
* Thu Aug 17 2017 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Implemented ResultSet method getNCharacterStream().
- In class MonetClob implemented methods getCharacterStream()
and getCharacterStream(long pos, long length). Method
getCharacterStream() is called by DBeaver to fetch the Clob value.
It used to throw a SQLFeatureNotSupportedException with message:
"Operation getCharacterStream() currently not supported". This caused
DBeaver to log the exception and show NULL as the value on screen,
which is incorrect. This has been fixed.
* Fri Jul 28 2017 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new jars: monetdb-jdbc-2.26.jar and updated jdbcclient.jar
* Thu Jul 13 2017 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected implementation of PreparedStatement method
setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength)
for the case the targetSqlType is Types.CLOB.
See also: https://github.com/MonetDB/MonetDB/issues/6349
* Thu Mar 30 2017 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new jars: monetdb-jdbc-2.25.jar, monetdb-mcl-1.15.jar
and updated jdbcclient.jar
* Thu Mar 9 2017 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected ResultSetMetaData methods getColumnLabel(int), getColomnName(int),
getTableName(int) and getSchemaName(int) for names which contain special
characters such as a space, a tab, a comma, a double quote, etc.
See also: https://github.com/MonetDB/MonetDB/issues/6183
* Wed Dec 21 2016 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new jars: monetdb-jdbc-2.24.jar, monetdb-mcl-1.14.jar
and updated jdbcclient.jar
* Thu Nov 17 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- The MapiSocket object now supports getting and setting the
socket timeout, even before the TCP socket is created. To set
the socket timeout specify it in the JDBC URL, for example:
jdbc:monetdb://localhost:50000/demo?so_timeout=8000
This enables the timeout and sets it to 8000 milliseconds (= 8 seconds).
By default the timeout is not set, so wait infinitely.
* Thu Nov 10 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Implemented Connection methods: getClientInfo(name) and getClientInfo().
They used to return null and empty Properties object.
Corrected implementation of Connection methods: setClientInfo(name, value)
and setClientInfo(properties). They are now processed as expected.
Corrected implementation of Connection.setHoldability(holdability). It now
throws an SQLFeatureNotSupportedException when holdability is not
ResultSet.HOLD_CURSORS_OVER_COMMIT (which is the only supported holdability).
* Thu Oct 13 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected implementation of java.sql.Wrapper methods isWrapperFor()
and unwrap(). They now properly return expected results instead of
always return false or throw an SQLException.
* Thu Oct 6 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected return values of DatabaseMetaData methods nullsAreSortedHigh(),
nullsAreSortedLow(), getMaxCursorNameLength(), getMaxProcedureNameLength(),
getMaxStatementLength() and getMaxUserNameLength().
Improved return values of DatabaseMetaData methods getMaxBinaryLiteralLength(),
getMaxCharLiteralLength() and getMaxColumnsInTable().
- Implemented Statement methods: getQueryTimeout() and setQueryTimeout(int
seconds). getQueryTimeout() used to always return 0, now it returns the
query timeout retrieved from the server. setQueryTimeout(int seconds)
used to always throw SQLException: query time outs not supported.
Now it sets the query timeout for the current connection/session on
the server.
* Thu Sep 29 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Corrected ResultSet methods: getByte(), getBigDecimal(), getShort(),
getInt(), getLong(), getFloat() and getDouble() in case the conversion
to the native type failed due to a Number Format conversion error.
It used to silently ignore the conversion error and return 0 instead,
which is not correct. Now it throws an SQLException with message
"Could not convert value to a number." and SQLstate "22003" meaning:
Numeric value out of range.
* Thu Sep 22 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved JdbcClient program when doing dump of table definition. It now
outputs CREATE TABLE definition more similar to mclient program.
* Thu Sep 15 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved performance of following JDBC ResultSet and ResultSetMetaData
methods:
- ResultSet.getBoolean(column)
- ResultSet.getBinaryStream(column)
- ResultSet.getBytes(column)
- ResultSet.getObject(column)
- ResultSet.getObject(column, map)
- ResultSet.getDate(column)
- ResultSet.getTime(column)
- ResultSet.getTimestamp(column)
- ResultSet.getDate(column, calendar)
- ResultSet.getTime(column, calendar)
- ResultSet.getTimestamp(column, calendar)
- ResultSetMetaData.getColumnClassName(column)
- ResultSetMetaData.getColumnType(column)
- ResultSetMetaData.isCaseSensitive(column)
- ResultSetMetaData.isSigned(column)
- ResultSetMetaData.getPrecision(column)
* Thu Sep 8 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved JdbcClient program by fixing some resource leaks.
- Extended JdbcClient program by showing elapsed time information for each
query or command when started in interactive mode (no -f was used at startup).
* Thu Sep 1 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved fetching and output speed of JdbcClient program for query results.
* Thu Aug 11 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com>
- Improved performance of method ResultSet.getObject(column_ID) significantly.
* Wed Jul 13 2016 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new JDBC driver jar: monetdb-jdbc-2.23.jar
* Thu Jul 7 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.7-20160713
- Corrected PROCEDURE_TYPE output value of method DatabaseMetaData.getProcedures().
It used to return procedureReturnsResult. Now it returns procedureNoResult.
Corrected ORDINAL_POSITION output value of method DatabaseMetaData.getProcedureColumns().
It used to start with 0, but as procedures do not return a result value it now
starts with 1 for all the procedure arguments, as defined by the JDBC API.
- Improved output of method DatabaseMetaData.getProcedures(). The REMARKS
column now contains the procedure definition as stored in sys.functions.func.
The SPECIFIC_NAME column now contains the procedure unique identifier as
stored in sys.functions.id. This allows the caller to retrieve the specific
overloaded procedure which has the same name, but different arguments.
Also improved output of method DatabaseMetaData.getProcedureColumns().
The SPECIFIC_NAME column now contains the procedure unique identifier as
stored in sys.functions.id. This allows the caller to retrieve the proper
arguments of the specific overloaded procedure by matching the SPECIFIC_NAME
value.
- Improved output of method DatabaseMetaData.getFunctions(). The REMARKS
column now contains the function definition as stored in sys.functions.func.
The SPECIFIC_NAME column now contains the function unique identifier as
stored in sys.functions.id. This allows the caller to retrieve the specific
overloaded function which has the same name, but different arguments.
Also improved output of method DatabaseMetaData.getFunctionColumns().
The SPECIFIC_NAME column now contains the function unique identifier as
stored in sys.functions.id. This allows the caller to retrieve the proper
arguments of the specific overloaded function by matching the SPECIFIC_NAME
value.
* Fri Jun 10 2016 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new JDBC driver jar: monetdb-jdbc-2.21.jar
* Thu May 26 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Fixed problem in DatabaseMetaData.getUDTs() when it was called with
types parameter filled. It used to throw SQException with message:
SELECT: identifier 'DATA_TYPE' unknown. Now it returns the UDTs which
match the provided array of data types.
* Thu May 19 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Implemented MonetDatabaseMetaData.supportsConvert() and
MonetDatabaseMetaData.supportsConvert(int fromType, int toType) methods.
It used to always return false. Now it returns true for the supported conversions.
This fixes Bug 3460.
* Thu May 12 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Improved JdbcClient program when presenting query data to console.
It used to send an SQL catalog query for each query result column
which slowed down the interactive response considerably.
These additional SQL catalog queries have been eliminated.
* Thu May 12 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Corrected MonetResultSet.getObject(String columnName). It no longer
throws a NullPointerException in cases where internally a
MonetVirtualResultSet is used.
* Sun May 8 2016 Jennie Zhang <y.zhang@cwi.nl> - 11.23.1-20160601
- Fixed Connection.isValid(): this method should never attempt to
close the connection, even if an error has occurred.
* Sun May 8 2016 Jennie Zhang <y.zhang@cwi.nl> - 11.23.1-20160601
- ResultSet.setFetchSize(): added a dummy implementation to get rid
of the SQLFeatureNotSupportedException. In MonetDB, it does not
make sense to set the fetch size of a result set. If one really
wants to set the fetch size, one should use Statement.setFetchSize()
instead.
* Thu Apr 21 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Fixed resource leak in ResultSetMetaData. It created and cached a ResultSet
object for each column but never closed the ResultSet objects.
* Thu Mar 31 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Corrected DatabaseMetaData methods which accept a catalog filter argument.
Those methods will now filter the results on the specified catalog name,
whereas previously the catalog filter argument was ignored.
- Corrected output of column KEY_SEQ of DatabaseMetaData methods:
getPrimaryKeys(), getImportedKeys(), getExportedKeys() and
getCrossReference(). It now starts at 1 instead of 0 previously.
* Thu Mar 24 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Corrected DatabaseMetaData.getSchemas() by returning 2 instead of 3 columns.
- Improved DatabaseMetaData.getColumns() by returning two additional
columns: IS_AUTOINCREMENT and IS_GENERATEDCOLUMN.
* Thu Mar 17 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Improved DatabaseMetaData.getTypeInfo(). It now returns better information
on LITERAL_PREFIX, LITERAL_SUFFIX, CREATE_PARAMS, CASE_SENSITIVE,
FIXED_PREC_SCALE and MAXIMUM_SCALE for some data types. Also the returned rows
are now ordered by DATA_TYPE, TYPE_NAME, PRECISION as required by the specs.
Also corrected output column names "searchable" into "SEARCHABLE" and
"MAXIMUM SCALE" into "MAXIMUM_SCALE" to match the JDBC specification.
- Corrected DatabaseMetaData.getPseudoColumns(). It used to return 12 empty rows.
Now it returns no rows as MonetDB does not have pseudo columns.
* Thu Mar 3 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Implemented method DatabaseMetaData.getClientProperties(). It used to always
return a resultset with 4 completely empty rows. It now returns a
resultset with the possible connection properties.
- Implemented method DatabaseMetaData.getUDTs(). It used to return an empty
resultset. Now it returns the User Defined Types such as inet, json, url and uuid.
* Thu Feb 18 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Corrected the returned table types in DatabaseMetaData.getTableTypes().
It now returns all 10 table types (as stored in sys.table_types) instead
of the previously 8 hardcoded table types.
For old MonetDB servers which do not have the sys.table_types table,
the old behavior is retained.
* Thu Feb 11 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Implemented methods DatabaseMetadata.getProcedures() and
DatabaseMetadata.getProcedureColumns(). They used to return an empty resultset.
Now they return the expected Procedures and ProcedureColumns.
Also getProcedureColumns() now returns a resultset with all 20 columns
instead of 13 columns previously.
* Thu Feb 4 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Method getFunctionColumns() in DatabaseMetadata used to throw an
SQLException: getFunctionColumns(String, String, String, String) is
not implemented.
This method is now implemented and returns a resultset.
* Thu Jan 28 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Method getFunctions() in DatabaseMetadata used to throw an SQLException:
SELECT: no such column 'functions.sql'
This has been corrected. It now returns a resultset as requested.
- The resultsets of DatabaseMetadata methods now no longer return a
value for the *_CAT columns as MonetDB does not support Catalogs.
* Thu Jan 7 2016 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.23.1-20160601
- Fixed a memory leak in MonetDatabaseMetaData.java for a static cache
which kept references to closed Connection objects.
* Tue Jan 5 2016 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new JDBC driver jar: monetdb-jdbc-2.19.jar
* Fri Oct 30 2015 Sjoerd Mullender <sjoerd@acm.org>
- Compiled and released new jars: monetdb-jdbc-2.18.jar, monetdb-mcl-1.13.jar
and updated jdbcclient.jar
* Thu Aug 6 2015 Martin van Dinther <martin.van.dinther@monetdbsolutions.com> - 11.21.1-20150807
- Improved JDBC driver to not throw NullPointerException anymore
when calling isNullable() or getPrecision() or getScale() or
getColumnDisplaySize() or getSchemaName() or getTableName() or
getColumnClassName() on a ResultSetMetaData object.
* Thu Jul 16 2015 Sjoerd Mullender <sjoerd@acm.org> - 11.21.1-20150807
- We now compile the Java classes using the latest Java 1.8 version, and
we tell it to compile for Java 1.7.
* Mon Oct 7 2013 Sjoerd Mullender <sjoerd@acm.org> - 11.15.17-20131008
- Rearranged order of returned columns of certain metadata functions to
comply with the JDBC documentation. See bug 3356.
* Sun Jun 9 2013 Fabian Groffen <fabian@monetdb.org> - 11.15.9-20130619
- Further improved setBigDecimal() method, based on patch by Ben Reilly
in bug #3290
* Thu May 23 2013 Fabian Groffen <fabian@monetdb.org> - 11.15.9-20130619
- Fixed bug where PreparedStatement.setBigDecimal() wouldn't format its
input well enough for the server causing odd errors.
- Allow PreparedStatement.setXXX() methods to be called with null
arguments, bug #3288
* Thu Apr 11 2013 Sjoerd Mullender <sjoerd@acm.org> - 11.15.5-20130412
- The pre-compiled .jar files are now created using Java 7 instead of
Java 6.
* Sat Dec 1 2012 Fabian Groffen <fabian@monetdb.org> - 11.15.1-20130212
- merocontrol was changed to return server URIs, and lastStop time.
Connections and dbpath were removed.
- Mapi protocol v8 support was removed from MapiSocket. Protocol
v8 has not been used by the servers any more since Apr2012 release
* Fri Nov 23 2012 Fabian Groffen <fabian@monetdb.org> - 11.13.7-20121212
- Implemented type map support of Connection to allow custom mapping
of UDTs to Java classes. By default the INET and URL UDTs are
now mapped to nl.cwi.monetdb.jdbc.types.{INET,URL}. Most notably,
ResultSet.getObject() and PreparedStatement.setObject() deal with the
type map.
* Thu Nov 22 2012 Fabian Groffen <fabian@monetdb.org> - 11.13.7-20121212
- Fixed a problem in PreparedStatement where the prepared statement's
ResultSetMetaData (on its columns to be produced) incorrectly threw
exceptions about non existing columns. Bug #3192
* Wed Oct 10 2012 Fabian Groffen <fabian@cwi.nl> - 11.13.3-20121016
- Fixed problem with PreparedStatements and setXXX() methods using column
numbers instead of names, bug #3158
* Tue Aug 14 2012 Fabian Groffen <fabian@cwi.nl> - 11.11.9-20120911
- Fixed a bug where DatabaseMetaData.getURL() did return null:0 for
hostname:port.
* Fri Jul 20 2012 Fabian Groffen <fabian@cwi.nl> - 11.11.7-20120813
- Fixed adaptive cache size used when retrieving results, not to cause
divide by zero errors when memory gets short, bug #3119.
* Fri Mar 2 2012 Wouter Alink <wouter@spinque.com> - 11.9.1-20120418
- Password reading by JdbcClient no longer results in strange artifacts
- JdbcClient now returns exit code 1 in case of failures
* Tue Feb 28 2012 Fabian Groffen <fabian@cwi.nl> - 11.7.9-20120312
- Implemented missing Number types support in
PreparedStatement.setObject()
* Mon Feb 20 2012 Fabian Groffen <fabian@cwi.nl> - 11.7.7-20120224
- Fixed bug in DatabaseMetaData.getSchemas() method that caused an SQL
error when called with catalog and schema argument.
* Tue Feb 14 2012 Fabian Groffen <fabian@cwi.nl> - 11.7.7-20120224
- Resolved a bug where JDBC and Control connections could terminate
abruptly with 'Connection closed' messages
* Mon Jan 2 2012 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Implemented getMetaData() method of PreparedStatement.
* Tue Dec 27 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Fixed an AssertionError for special results from e.g. EXPLAIN queries.
* Wed Dec 21 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Fixed overflow error when batching large statements, bug #2952
* Tue Dec 20 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Resolved a concurrency problem where ResultSet's date-related getters
could cause odd stack traces when used by multiple threads at the
same time, bug #2950.
* Mon Dec 19 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- JDBC now implements JDBCv4.1 which makes it possible to be built with
Java 7 and up. JDBCv4.1 is a maintenance release of JDBCv4, and hence
can be compiled with Java 6, although the added methods obviously are
not part of the java.sql interfaces.
* Sun Dec 11 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- SQLExceptions thrown now carry a SQLSTATE. Until the server starts
sending correct SQLSTATEs for all errors, server originated errors
without SQLSTATE are considered generic data exceptions (22000).
* Sat Dec 10 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Fixed a bug where closing ResultSets and PreparedStatements could lead
to errors on concurrent running queries using the same Connection due
to a race condition.
* Thu Dec 8 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- Changed version scheme of JDBC driver and MCL jar to be more standard,
from monetdb-X.Y-<thing>.jar to monetdb-<thing>-X.Y.jar, bug #2943
* Fri Oct 14 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- The embedded monet instance capability of MonetConnection was removed.
- Bump JDBC version to 2.0 (Liberica). JDBC now implements JDBCv4 which
makes it possible to be built with Java 6 and up. Java 5 and before
are no longer supported, and can use the 1.x releases of the driver.
* Thu Sep 1 2011 Fabian Groffen <fabian@cwi.nl> - 11.7.1-20120111
- INTERVAL columns are now treated as decimals, since they can have
sub-second precision.
* Thu Jun 30 2011 Fabian Groffen <fabian@cwi.nl> - 11.5.1-20110907
- Add so_timeout Driver property to specify a SO_TIMEOUT value for the
socket in use to the database. Setting this property to a value in
milliseconds defines the timeout for read calls, which may 'unlock'
the driver if the server hangs, bug #2828
* Wed May 25 2011 Fabian Groffen <fabian@cwi.nl> - 11.5.1-20110907
- Added a naive implementation for PreparedStatement.setCharacterStream
* Mon Apr 11 2011 Fabian Groffen <fabian@cwi.nl> - 11.5.1-20110907
- The obsolete Java-based implementation for PreparedStatements (formerly
activated using the java_prepared_statements property) has been dropped
* Fri Jul 8 2011 Fabian Groffen <fabian@cwi.nl> - 11.3.5-20110720
- Return false from Statement.getMoreResults() instead of a
NullPointerException when no query has been performed on the Statement
yet, bug #2833
* Mon Jun 6 2011 Fabian Groffen <fabian@cwi.nl> - 11.3.5-20110720
- Fixed read-only interpretation. Connection.isReadOnly now always
returns false, setReadOnly now generates a warning when called with
true. Partly from bug #2818
- Allow readonly to be set when autocommit is disabled as well. Bug #2818
* Wed May 11 2011 Fabian Groffen <fabian@cwi.nl> - 11.3.3-20110517
- Insertion via PreparedStatement and retrieval via ResultSet of timestamp
and time fields with and without timezones was improved to better
respect timezones, as partly indicated in bug #2781.
* Tue Apr 5 2011 Fabian Groffen <fabian@cwi.nl> - 11.3.1-20110414
- clarify exception messages for unsupported methods
* Mon Feb 7 2011 Fabian Groffen <fabian@cwi.nl> - 11.3.1-20110414
- Removed XQuery related XRPC wrapper and XML:DB code, removed support
for language=xquery and language=mil from JDBC.
* Wed Dec 15 2010 Fabian Groffen <fabian@cwi.nl> - 11.1.1-20110317
- PreparedStatements now free the server-side resources attached to them
when closed. This implements bug #2720
* Tue Nov 9 2010 Fabian Groffen <fabian@cwi.nl> - 1.40.1-20101110
- Fix SQL syntax of inserting BLOB code, using setBytes()
- Added propery 'treat_blob_as_binary' to simulate BINARY types based on
BLOBs for applications, (e.g. Hibernate-based) that rely on BINARY's
byte array mapping
- Added code to handle BINARY types
- Fixed implementation of getBytes to match the specifications
- Implemented getBinaryStream according to the specifications
* Mon Nov 8 2010 Fabian Groffen <fabian@cwi.nl> - 1.40.1-20101109
- Java 1.6's subSequence() bug has changed into a slice() bug since
1.6.0_22. Revert workaround for subSequence breakage, since it breaks
operating with the latest Java 1.6.
* Fri Oct 22 2010 Fabian Groffen <fabian@cwi.nl> - 1.40.1-20101029
- Fix for bug #2703, allow to have multiple metadata ResultSets open at
the same time
* Wed Aug 11 2010 Fabian Groffen <fabian@cwi.nl> - 1.38.5-20100823
- Implemented ResultSet's getCharacterStream methods, since Hibernate seems to
call this method for retrieving CLOB columns that we now do support.
* Fri Aug 06 2010 Fabian Groffen <fabian@cwi.nl> - 1.38.5-20100823
- Fix implementation of setBytes method of PreparedStatement, such that bytes
are converted to MonetDB/SQL's BLOB notation.
* Wed Jul 21 2010 Fabian Groffen <fabian@cwi.nl> - 1.38.5-20100823
- merocontrol Java library requires Java 2 Platform 1.5 and up, due to enum
and boxing/unboxing. Bug #2627
* Tue Jul 20 2010 Fabian Groffen <fabian@cwi.nl> - 1.38.5-20100823
- Implement missing Blob support (readonly), since getObject will blindly
return a BLOB instance as String, which is causing applications to wrongly
believe a BLOB instance is a string.
* Fri Jul 16 2010 Fabian Groffen <fabian@cwi.nl> - 1.38.5-20100823
- Fix problem when using the MAL language. Any statement would return
an error with a typo that was not typed in by the user, such as
ioo.printf when io.printf was typed.
* Fri Apr 16 2010 Fabian Groffen <fabian@cwi.nl> - Jun2010-SP1
- Enable the merovingian control library for default distribution as it
has been in use for some time without problems now.
* Wed Mar 31 2010 Stefan Manegold <manegold@cwi.nl> - Jun2010-SP1
- Made compilation of "testing" (and "java") independent of MonetDB.
This is mainly for Windows, but also on other systems, "testing" can now be
built independently of (and hence before) "MonetDB".
Files that mimic configure functionality on Windows were moved from
"MonetDB" to "buildtools"; hence, this affects all packages on Windows,
requiring a complete rebuild from scratch on Windows.
getopt() support in testing has changed; hence, (most probably) requiring a
rebuild from scratch of testing on other systems.
* Wed Mar 31 2010 Fabian Groffen <fabian@cwi.nl> - Feb2010-SP2
- Do not to throw an SQLException, but generate a warning and try to
perform as much as requested in an optimistic manner, as not to break
clients that rely on the called method, but don't really use its
functionality (such as high-level generic programs that call any
driver and try to put it in a mode that it does what they expect).
The following functions no longer throw an SQLException but now
generate a warning and perform actions as far as possible:
- Statement.execute(sql, columnIndexes/columnNames)
- Statement.executeUpdate(sql, columnIndexes/columnNames)
- Statement.getMaxFieldSize()
- Statement.setCursorName(name)
- Statement.setEscapeProcessing(enable)
- Statement.setMaxFieldSize(max)
- Statement.setQueryTimeout(seconds)
- PreparedStatement.getMetaData()
- PreparedStatement.setNull(paramIndex, sqlType, typeName)
* Wed Mar 24 2010 Stefan Manegold <manegold@cwi.nl> - Jun2010-SP1
- Implemented build directory support for Windows,
i.e., like on Unix/Linux also on Windows we can now build in a separate
build directory as alternative to ...\<package>\NT, and thus keep the
latter clean from files generated during the build.
On Windows, the build directory must be a sibling of ...\<package>\NT .
* Tue Mar 09 2010 Fabian Groffen <fabian@cwi.nl> - Feb2010-SP1
- Set JAVA_HOME to the configure derived value, such that ant will use
the javac compiler as found by configure, and not the one it was built
with itself. This solves the problem that the JDBC driver still fails
to compile on e.g. Fedora systems even though configure
--with-java=/path/to/sun/jdk-5 was given, because ant still uses
gjc/icedtea by itself.