• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

future-architect / uroborosql / #872

04 Aug 2025 02:28PM UTC coverage: 88.472% (-1.7%) from 90.172%
#872

push

web-flow
cache DatabaseMetaData fixed value and Connection getSchema value. (#360)

* cache DatabaseMetaData fixed value and Connection getSchema value.

* add setCacheSchema API for ConnectionSupplier.

* add Connection#toString()

* fix review comment.

144 of 329 new or added lines in 8 files covered. (43.77%)

2 existing lines in 1 file now uncovered.

8074 of 9126 relevant lines covered (88.47%)

0.88 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

17.24
/src/main/java/jp/co/future/uroborosql/connection/CachedDatabaseMetaData.java
1
/**
2
 * Copyright (c) 2017-present, Future Corporation
3
 *
4
 * This source code is licensed under the MIT license found in the
5
 * LICENSE file in the root directory of this source tree.
6
 */
7
package jp.co.future.uroborosql.connection;
8

9
import java.sql.Connection;
10
import java.sql.DatabaseMetaData;
11
import java.sql.ResultSet;
12
import java.sql.RowIdLifetime;
13
import java.sql.SQLException;
14

15
/**
16
 * 接続後に変更されない項目をキャッシュするDatabaseMetadataを提供するためのWrapper
17
 *
18
 * @author H.Sugimoto
19
 * @since v0.26.10
20
 */
21
public class CachedDatabaseMetaData implements DatabaseMetaData {
22
        private final DatabaseMetaData originalMetaData;
23
        private final Connection originalConn;
24

25
        /** Cached databaseMajorVersion */
26
        private Integer databaseMajorVersion = null;
1✔
27

28
        /** Cached databaseMinorVersion */
29
        private Integer databaseMinorVersion = null;
1✔
30

31
        /** Cached databaseProductName */
32
        private String databaseProductName = null;
1✔
33

34
        /** Cached databaseProductVersion */
35
        private String databaseProductVersion = null;
1✔
36

37
        /** Cached url */
38
        private String url = null;
1✔
39

40
        CachedDatabaseMetaData(final DatabaseMetaData originalMetaData, final Connection originalConn) {
1✔
41
                this.originalMetaData = originalMetaData;
1✔
42
                this.originalConn = originalConn;
1✔
43
        }
1✔
44

45
        @SuppressWarnings("unchecked")
46
        @Override
47
        public <T> T unwrap(final Class<T> iface) throws SQLException {
48
                if (!isWrapperFor(iface)) {
1✔
NEW
49
                        throw new SQLException("Cannot unwrap to " + iface.getName());
×
50
                }
51
                if (iface.isInstance(this)) {
1✔
52
                        return (T) this;
1✔
53
                }
NEW
54
                return originalMetaData.unwrap(iface);
×
55
        }
56

57
        @Override
58
        public boolean isWrapperFor(final Class<?> iface) throws SQLException {
59
                if (iface.isInstance(this)) {
1✔
60
                        return true;
1✔
61
                }
NEW
62
                return originalMetaData.isWrapperFor(iface);
×
63
        }
64

65
        @Override
66
        public boolean allProceduresAreCallable() throws SQLException {
NEW
67
                return originalMetaData.allProceduresAreCallable();
×
68
        }
69

70
        @Override
71
        public boolean allTablesAreSelectable() throws SQLException {
NEW
72
                return originalMetaData.allTablesAreSelectable();
×
73
        }
74

75
        @Override
76
        public String getURL() throws SQLException {
77
                if (url == null) {
1✔
78
                        url = originalMetaData.getURL();
1✔
79
                }
80
                return url;
1✔
81
        }
82

83
        @Override
84
        public String getUserName() throws SQLException {
NEW
85
                return originalMetaData.getUserName();
×
86
        }
87

88
        @Override
89
        public boolean isReadOnly() throws SQLException {
NEW
90
                return originalMetaData.isReadOnly();
×
91
        }
92

93
        @Override
94
        public boolean nullsAreSortedHigh() throws SQLException {
NEW
95
                return originalMetaData.nullsAreSortedHigh();
×
96
        }
97

98
        @Override
99
        public boolean nullsAreSortedLow() throws SQLException {
NEW
100
                return originalMetaData.nullsAreSortedLow();
×
101
        }
102

103
        @Override
104
        public boolean nullsAreSortedAtStart() throws SQLException {
NEW
105
                return originalMetaData.nullsAreSortedAtStart();
×
106
        }
107

108
        @Override
109
        public boolean nullsAreSortedAtEnd() throws SQLException {
NEW
110
                return originalMetaData.nullsAreSortedAtEnd();
×
111
        }
112

113
        @Override
114
        public String getDatabaseProductName() throws SQLException {
115
                if (databaseProductName == null) {
1✔
116
                        databaseProductName = originalMetaData.getDatabaseProductName();
1✔
117
                }
118
                return databaseProductName;
1✔
119
        }
120

121
        @Override
122
        public String getDatabaseProductVersion() throws SQLException {
123
                if (databaseProductVersion == null) {
1✔
124
                        databaseProductVersion = originalMetaData.getDatabaseProductVersion();
1✔
125
                }
126
                return databaseProductVersion;
1✔
127
        }
128

129
        @Override
130
        public String getDriverName() throws SQLException {
NEW
131
                return originalMetaData.getDriverName();
×
132
        }
133

134
        @Override
135
        public String getDriverVersion() throws SQLException {
NEW
136
                return originalMetaData.getDriverVersion();
×
137
        }
138

139
        @Override
140
        public int getDriverMajorVersion() {
NEW
141
                return originalMetaData.getDriverMajorVersion();
×
142
        }
143

144
        @Override
145
        public int getDriverMinorVersion() {
NEW
146
                return originalMetaData.getDriverMinorVersion();
×
147
        }
148

149
        @Override
150
        public boolean usesLocalFiles() throws SQLException {
NEW
151
                return originalMetaData.usesLocalFiles();
×
152
        }
153

154
        @Override
155
        public boolean usesLocalFilePerTable() throws SQLException {
NEW
156
                return originalMetaData.usesLocalFilePerTable();
×
157
        }
158

159
        @Override
160
        public boolean supportsMixedCaseIdentifiers() throws SQLException {
NEW
161
                return originalMetaData.supportsMixedCaseIdentifiers();
×
162
        }
163

164
        @Override
165
        public boolean storesUpperCaseIdentifiers() throws SQLException {
166
                return originalMetaData.storesUpperCaseIdentifiers();
1✔
167
        }
168

169
        @Override
170
        public boolean storesLowerCaseIdentifiers() throws SQLException {
171
                return originalMetaData.storesLowerCaseIdentifiers();
1✔
172
        }
173

174
        @Override
175
        public boolean storesMixedCaseIdentifiers() throws SQLException {
NEW
176
                return originalMetaData.storesMixedCaseIdentifiers();
×
177
        }
178

179
        @Override
180
        public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException {
NEW
181
                return originalMetaData.supportsMixedCaseQuotedIdentifiers();
×
182
        }
183

184
        @Override
185
        public boolean storesUpperCaseQuotedIdentifiers() throws SQLException {
NEW
186
                return originalMetaData.storesUpperCaseQuotedIdentifiers();
×
187
        }
188

189
        @Override
190
        public boolean storesLowerCaseQuotedIdentifiers() throws SQLException {
NEW
191
                return originalMetaData.storesLowerCaseQuotedIdentifiers();
×
192
        }
193

194
        @Override
195
        public boolean storesMixedCaseQuotedIdentifiers() throws SQLException {
NEW
196
                return originalMetaData.storesMixedCaseQuotedIdentifiers();
×
197
        }
198

199
        @Override
200
        public String getIdentifierQuoteString() throws SQLException {
201
                return originalMetaData.getIdentifierQuoteString();
1✔
202
        }
203

204
        @Override
205
        public String getSQLKeywords() throws SQLException {
NEW
206
                return originalMetaData.getSQLKeywords();
×
207
        }
208

209
        @Override
210
        public String getNumericFunctions() throws SQLException {
NEW
211
                return originalMetaData.getNumericFunctions();
×
212
        }
213

214
        @Override
215
        public String getStringFunctions() throws SQLException {
NEW
216
                return originalMetaData.getStringFunctions();
×
217
        }
218

219
        @Override
220
        public String getSystemFunctions() throws SQLException {
NEW
221
                return originalMetaData.getSystemFunctions();
×
222
        }
223

224
        @Override
225
        public String getTimeDateFunctions() throws SQLException {
NEW
226
                return originalMetaData.getTimeDateFunctions();
×
227
        }
228

229
        @Override
230
        public String getSearchStringEscape() throws SQLException {
NEW
231
                return originalMetaData.getSearchStringEscape();
×
232
        }
233

234
        @Override
235
        public String getExtraNameCharacters() throws SQLException {
NEW
236
                return originalMetaData.getExtraNameCharacters();
×
237
        }
238

239
        @Override
240
        public boolean supportsAlterTableWithAddColumn() throws SQLException {
NEW
241
                return originalMetaData.supportsAlterTableWithAddColumn();
×
242
        }
243

244
        @Override
245
        public boolean supportsAlterTableWithDropColumn() throws SQLException {
NEW
246
                return originalMetaData.supportsAlterTableWithDropColumn();
×
247
        }
248

249
        @Override
250
        public boolean supportsColumnAliasing() throws SQLException {
NEW
251
                return originalMetaData.supportsColumnAliasing();
×
252
        }
253

254
        @Override
255
        public boolean nullPlusNonNullIsNull() throws SQLException {
NEW
256
                return originalMetaData.nullPlusNonNullIsNull();
×
257
        }
258

259
        @Override
260
        public boolean supportsConvert() throws SQLException {
NEW
261
                return originalMetaData.supportsConvert();
×
262
        }
263

264
        @Override
265
        public boolean supportsConvert(final int fromType, final int toType) throws SQLException {
NEW
266
                return originalMetaData.supportsConvert(fromType, toType);
×
267
        }
268

269
        @Override
270
        public boolean supportsTableCorrelationNames() throws SQLException {
NEW
271
                return originalMetaData.supportsTableCorrelationNames();
×
272
        }
273

274
        @Override
275
        public boolean supportsDifferentTableCorrelationNames() throws SQLException {
NEW
276
                return originalMetaData.supportsDifferentTableCorrelationNames();
×
277
        }
278

279
        @Override
280
        public boolean supportsExpressionsInOrderBy() throws SQLException {
NEW
281
                return originalMetaData.supportsExpressionsInOrderBy();
×
282
        }
283

284
        @Override
285
        public boolean supportsOrderByUnrelated() throws SQLException {
NEW
286
                return originalMetaData.supportsOrderByUnrelated();
×
287
        }
288

289
        @Override
290
        public boolean supportsGroupBy() throws SQLException {
NEW
291
                return originalMetaData.supportsGroupBy();
×
292
        }
293

294
        @Override
295
        public boolean supportsGroupByUnrelated() throws SQLException {
NEW
296
                return originalMetaData.supportsGroupByUnrelated();
×
297
        }
298

299
        @Override
300
        public boolean supportsGroupByBeyondSelect() throws SQLException {
NEW
301
                return originalMetaData.supportsGroupByBeyondSelect();
×
302
        }
303

304
        @Override
305
        public boolean supportsLikeEscapeClause() throws SQLException {
NEW
306
                return originalMetaData.supportsLikeEscapeClause();
×
307
        }
308

309
        @Override
310
        public boolean supportsMultipleResultSets() throws SQLException {
NEW
311
                return originalMetaData.supportsMultipleResultSets();
×
312
        }
313

314
        @Override
315
        public boolean supportsMultipleTransactions() throws SQLException {
NEW
316
                return originalMetaData.supportsMultipleTransactions();
×
317
        }
318

319
        @Override
320
        public boolean supportsNonNullableColumns() throws SQLException {
NEW
321
                return originalMetaData.supportsNonNullableColumns();
×
322
        }
323

324
        @Override
325
        public boolean supportsMinimumSQLGrammar() throws SQLException {
NEW
326
                return originalMetaData.supportsMinimumSQLGrammar();
×
327
        }
328

329
        @Override
330
        public boolean supportsCoreSQLGrammar() throws SQLException {
NEW
331
                return originalMetaData.supportsCoreSQLGrammar();
×
332
        }
333

334
        @Override
335
        public boolean supportsExtendedSQLGrammar() throws SQLException {
NEW
336
                return originalMetaData.supportsExtendedSQLGrammar();
×
337
        }
338

339
        @Override
340
        public boolean supportsANSI92EntryLevelSQL() throws SQLException {
NEW
341
                return originalMetaData.supportsANSI92EntryLevelSQL();
×
342
        }
343

344
        @Override
345
        public boolean supportsANSI92IntermediateSQL() throws SQLException {
NEW
346
                return originalMetaData.supportsANSI92IntermediateSQL();
×
347
        }
348

349
        @Override
350
        public boolean supportsANSI92FullSQL() throws SQLException {
NEW
351
                return originalMetaData.supportsANSI92FullSQL();
×
352
        }
353

354
        @Override
355
        public boolean supportsIntegrityEnhancementFacility() throws SQLException {
NEW
356
                return originalMetaData.supportsIntegrityEnhancementFacility();
×
357
        }
358

359
        @Override
360
        public boolean supportsOuterJoins() throws SQLException {
NEW
361
                return originalMetaData.supportsOuterJoins();
×
362
        }
363

364
        @Override
365
        public boolean supportsFullOuterJoins() throws SQLException {
NEW
366
                return originalMetaData.supportsFullOuterJoins();
×
367
        }
368

369
        @Override
370
        public boolean supportsLimitedOuterJoins() throws SQLException {
NEW
371
                return originalMetaData.supportsLimitedOuterJoins();
×
372
        }
373

374
        @Override
375
        public String getSchemaTerm() throws SQLException {
NEW
376
                return originalMetaData.getSchemaTerm();
×
377
        }
378

379
        @Override
380
        public String getProcedureTerm() throws SQLException {
NEW
381
                return originalMetaData.getProcedureTerm();
×
382
        }
383

384
        @Override
385
        public String getCatalogTerm() throws SQLException {
NEW
386
                return originalMetaData.getCatalogTerm();
×
387
        }
388

389
        @Override
390
        public boolean isCatalogAtStart() throws SQLException {
NEW
391
                return originalMetaData.isCatalogAtStart();
×
392
        }
393

394
        @Override
395
        public String getCatalogSeparator() throws SQLException {
NEW
396
                return originalMetaData.getCatalogSeparator();
×
397
        }
398

399
        @Override
400
        public boolean supportsSchemasInDataManipulation() throws SQLException {
NEW
401
                return originalMetaData.supportsSchemasInDataManipulation();
×
402
        }
403

404
        @Override
405
        public boolean supportsSchemasInProcedureCalls() throws SQLException {
NEW
406
                return originalMetaData.supportsSchemasInProcedureCalls();
×
407
        }
408

409
        @Override
410
        public boolean supportsSchemasInTableDefinitions() throws SQLException {
NEW
411
                return originalMetaData.supportsSchemasInTableDefinitions();
×
412
        }
413

414
        @Override
415
        public boolean supportsSchemasInIndexDefinitions() throws SQLException {
NEW
416
                return originalMetaData.supportsSchemasInIndexDefinitions();
×
417
        }
418

419
        @Override
420
        public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException {
NEW
421
                return originalMetaData.supportsSchemasInPrivilegeDefinitions();
×
422
        }
423

424
        @Override
425
        public boolean supportsCatalogsInDataManipulation() throws SQLException {
NEW
426
                return originalMetaData.supportsCatalogsInDataManipulation();
×
427
        }
428

429
        @Override
430
        public boolean supportsCatalogsInProcedureCalls() throws SQLException {
NEW
431
                return originalMetaData.supportsCatalogsInProcedureCalls();
×
432
        }
433

434
        @Override
435
        public boolean supportsCatalogsInTableDefinitions() throws SQLException {
NEW
436
                return originalMetaData.supportsCatalogsInTableDefinitions();
×
437
        }
438

439
        @Override
440
        public boolean supportsCatalogsInIndexDefinitions() throws SQLException {
NEW
441
                return originalMetaData.supportsCatalogsInIndexDefinitions();
×
442
        }
443

444
        @Override
445
        public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException {
NEW
446
                return originalMetaData.supportsCatalogsInPrivilegeDefinitions();
×
447
        }
448

449
        @Override
450
        public boolean supportsPositionedDelete() throws SQLException {
NEW
451
                return originalMetaData.supportsPositionedDelete();
×
452
        }
453

454
        @Override
455
        public boolean supportsPositionedUpdate() throws SQLException {
NEW
456
                return originalMetaData.supportsPositionedUpdate();
×
457
        }
458

459
        @Override
460
        public boolean supportsSelectForUpdate() throws SQLException {
NEW
461
                return originalMetaData.supportsSelectForUpdate();
×
462
        }
463

464
        @Override
465
        public boolean supportsStoredProcedures() throws SQLException {
NEW
466
                return originalMetaData.supportsStoredProcedures();
×
467
        }
468

469
        @Override
470
        public boolean supportsSubqueriesInComparisons() throws SQLException {
NEW
471
                return originalMetaData.supportsSubqueriesInComparisons();
×
472
        }
473

474
        @Override
475
        public boolean supportsSubqueriesInExists() throws SQLException {
NEW
476
                return originalMetaData.supportsSubqueriesInExists();
×
477
        }
478

479
        @Override
480
        public boolean supportsSubqueriesInIns() throws SQLException {
NEW
481
                return originalMetaData.supportsSubqueriesInIns();
×
482
        }
483

484
        @Override
485
        public boolean supportsSubqueriesInQuantifieds() throws SQLException {
NEW
486
                return originalMetaData.supportsSubqueriesInQuantifieds();
×
487
        }
488

489
        @Override
490
        public boolean supportsCorrelatedSubqueries() throws SQLException {
NEW
491
                return originalMetaData.supportsCorrelatedSubqueries();
×
492
        }
493

494
        @Override
495
        public boolean supportsUnion() throws SQLException {
NEW
496
                return originalMetaData.supportsUnion();
×
497
        }
498

499
        @Override
500
        public boolean supportsUnionAll() throws SQLException {
NEW
501
                return originalMetaData.supportsUnionAll();
×
502
        }
503

504
        @Override
505
        public boolean supportsOpenCursorsAcrossCommit() throws SQLException {
NEW
506
                return originalMetaData.supportsOpenCursorsAcrossCommit();
×
507
        }
508

509
        @Override
510
        public boolean supportsOpenCursorsAcrossRollback() throws SQLException {
NEW
511
                return originalMetaData.supportsOpenCursorsAcrossRollback();
×
512
        }
513

514
        @Override
515
        public boolean supportsOpenStatementsAcrossCommit() throws SQLException {
NEW
516
                return originalMetaData.supportsOpenStatementsAcrossCommit();
×
517
        }
518

519
        @Override
520
        public boolean supportsOpenStatementsAcrossRollback() throws SQLException {
NEW
521
                return originalMetaData.supportsOpenStatementsAcrossRollback();
×
522
        }
523

524
        @Override
525
        public int getMaxBinaryLiteralLength() throws SQLException {
NEW
526
                return originalMetaData.getMaxBinaryLiteralLength();
×
527
        }
528

529
        @Override
530
        public int getMaxCharLiteralLength() throws SQLException {
NEW
531
                return originalMetaData.getMaxCharLiteralLength();
×
532
        }
533

534
        @Override
535
        public int getMaxColumnNameLength() throws SQLException {
NEW
536
                return originalMetaData.getMaxColumnNameLength();
×
537
        }
538

539
        @Override
540
        public int getMaxColumnsInGroupBy() throws SQLException {
NEW
541
                return originalMetaData.getMaxColumnsInGroupBy();
×
542
        }
543

544
        @Override
545
        public int getMaxColumnsInIndex() throws SQLException {
NEW
546
                return originalMetaData.getMaxColumnsInIndex();
×
547
        }
548

549
        @Override
550
        public int getMaxColumnsInOrderBy() throws SQLException {
NEW
551
                return originalMetaData.getMaxColumnsInOrderBy();
×
552
        }
553

554
        @Override
555
        public int getMaxColumnsInSelect() throws SQLException {
NEW
556
                return originalMetaData.getMaxColumnsInSelect();
×
557
        }
558

559
        @Override
560
        public int getMaxColumnsInTable() throws SQLException {
NEW
561
                return originalMetaData.getMaxColumnsInTable();
×
562
        }
563

564
        @Override
565
        public int getMaxConnections() throws SQLException {
NEW
566
                return originalMetaData.getMaxConnections();
×
567
        }
568

569
        @Override
570
        public int getMaxCursorNameLength() throws SQLException {
NEW
571
                return originalMetaData.getMaxCursorNameLength();
×
572
        }
573

574
        @Override
575
        public int getMaxIndexLength() throws SQLException {
NEW
576
                return originalMetaData.getMaxIndexLength();
×
577
        }
578

579
        @Override
580
        public int getMaxSchemaNameLength() throws SQLException {
NEW
581
                return originalMetaData.getMaxSchemaNameLength();
×
582
        }
583

584
        @Override
585
        public int getMaxProcedureNameLength() throws SQLException {
NEW
586
                return originalMetaData.getMaxProcedureNameLength();
×
587
        }
588

589
        @Override
590
        public int getMaxCatalogNameLength() throws SQLException {
NEW
591
                return originalMetaData.getMaxCatalogNameLength();
×
592
        }
593

594
        @Override
595
        public int getMaxRowSize() throws SQLException {
NEW
596
                return originalMetaData.getMaxRowSize();
×
597
        }
598

599
        @Override
600
        public boolean doesMaxRowSizeIncludeBlobs() throws SQLException {
NEW
601
                return originalMetaData.doesMaxRowSizeIncludeBlobs();
×
602
        }
603

604
        @Override
605
        public int getMaxStatementLength() throws SQLException {
NEW
606
                return originalMetaData.getMaxStatementLength();
×
607
        }
608

609
        @Override
610
        public int getMaxStatements() throws SQLException {
NEW
611
                return originalMetaData.getMaxStatements();
×
612
        }
613

614
        @Override
615
        public int getMaxTableNameLength() throws SQLException {
NEW
616
                return originalMetaData.getMaxTableNameLength();
×
617
        }
618

619
        @Override
620
        public int getMaxTablesInSelect() throws SQLException {
NEW
621
                return originalMetaData.getMaxTablesInSelect();
×
622
        }
623

624
        @Override
625
        public int getMaxUserNameLength() throws SQLException {
NEW
626
                return originalMetaData.getMaxUserNameLength();
×
627
        }
628

629
        @Override
630
        public int getDefaultTransactionIsolation() throws SQLException {
NEW
631
                return originalMetaData.getDefaultTransactionIsolation();
×
632
        }
633

634
        @Override
635
        public boolean supportsTransactions() throws SQLException {
NEW
636
                return originalMetaData.supportsTransactions();
×
637
        }
638

639
        @Override
640
        public boolean supportsTransactionIsolationLevel(final int level) throws SQLException {
NEW
641
                return originalMetaData.supportsTransactionIsolationLevel(level);
×
642
        }
643

644
        @Override
645
        public boolean supportsDataDefinitionAndDataManipulationTransactions() throws SQLException {
NEW
646
                return originalMetaData.supportsDataDefinitionAndDataManipulationTransactions();
×
647
        }
648

649
        @Override
650
        public boolean supportsDataManipulationTransactionsOnly() throws SQLException {
NEW
651
                return originalMetaData.supportsDataManipulationTransactionsOnly();
×
652
        }
653

654
        @Override
655
        public boolean dataDefinitionCausesTransactionCommit() throws SQLException {
NEW
656
                return originalMetaData.dataDefinitionCausesTransactionCommit();
×
657
        }
658

659
        @Override
660
        public boolean dataDefinitionIgnoredInTransactions() throws SQLException {
NEW
661
                return originalMetaData.dataDefinitionIgnoredInTransactions();
×
662
        }
663

664
        @Override
665
        public ResultSet getProcedures(final String catalog, final String schemaPattern, final String procedureNamePattern)
666
                        throws SQLException {
NEW
667
                return originalMetaData.getProcedures(catalog, schemaPattern, procedureNamePattern);
×
668
        }
669

670
        @Override
671
        public ResultSet getProcedureColumns(final String catalog, final String schemaPattern,
672
                        final String procedureNamePattern, final String columnNamePattern) throws SQLException {
NEW
673
                return originalMetaData.getProcedureColumns(catalog, schemaPattern, procedureNamePattern, columnNamePattern);
×
674
        }
675

676
        @Override
677
        public ResultSet getTables(final String catalog, final String schemaPattern, final String tableNamePattern,
678
                        final String[] types) throws SQLException {
679
                return originalMetaData.getTables(catalog, schemaPattern, tableNamePattern, types);
1✔
680
        }
681

682
        @Override
683
        public ResultSet getSchemas() throws SQLException {
NEW
684
                return originalMetaData.getSchemas();
×
685
        }
686

687
        @Override
688
        public ResultSet getCatalogs() throws SQLException {
NEW
689
                return originalMetaData.getCatalogs();
×
690
        }
691

692
        @Override
693
        public ResultSet getTableTypes() throws SQLException {
NEW
694
                return originalMetaData.getTableTypes();
×
695
        }
696

697
        @Override
698
        public ResultSet getColumns(final String catalog, final String schemaPattern, final String tableNamePattern,
699
                        final String columnNamePattern) throws SQLException {
700
                return originalMetaData.getColumns(catalog, schemaPattern, tableNamePattern, columnNamePattern);
1✔
701
        }
702

703
        @Override
704
        public ResultSet getColumnPrivileges(final String catalog, final String schema, final String table,
705
                        final String columnNamePattern) throws SQLException {
NEW
706
                return originalMetaData.getColumnPrivileges(catalog, schema, table, columnNamePattern);
×
707
        }
708

709
        @Override
710
        public ResultSet getTablePrivileges(final String catalog, final String schemaPattern, final String tableNamePattern)
711
                        throws SQLException {
NEW
712
                return originalMetaData.getTablePrivileges(catalog, schemaPattern, tableNamePattern);
×
713
        }
714

715
        @Override
716
        public ResultSet getBestRowIdentifier(final String catalog, final String schema, final String table,
717
                        final int scope, final boolean nullable) throws SQLException {
NEW
718
                return originalMetaData.getBestRowIdentifier(catalog, schema, table, scope, nullable);
×
719
        }
720

721
        @Override
722
        public ResultSet getVersionColumns(final String catalog, final String schema, final String table)
723
                        throws SQLException {
NEW
724
                return originalMetaData.getVersionColumns(catalog, schema, table);
×
725
        }
726

727
        @Override
728
        public ResultSet getPrimaryKeys(final String catalog, final String schema, final String table) throws SQLException {
729
                return originalMetaData.getPrimaryKeys(catalog, schema, table);
1✔
730
        }
731

732
        @Override
733
        public ResultSet getImportedKeys(final String catalog, final String schema, final String table)
734
                        throws SQLException {
NEW
735
                return originalMetaData.getImportedKeys(catalog, schema, table);
×
736
        }
737

738
        @Override
739
        public ResultSet getExportedKeys(final String catalog, final String schema, final String table)
740
                        throws SQLException {
NEW
741
                return originalMetaData.getExportedKeys(catalog, schema, table);
×
742
        }
743

744
        @Override
745
        public ResultSet getCrossReference(final String parentCatalog, final String parentSchema, final String parentTable,
746
                        final String foreignCatalog, final String foreignSchema, final String foreignTable) throws SQLException {
NEW
747
                return originalMetaData.getCrossReference(parentCatalog, parentSchema, parentTable, foreignCatalog,
×
748
                                foreignSchema, foreignTable);
749
        }
750

751
        @Override
752
        public ResultSet getTypeInfo() throws SQLException {
NEW
753
                return originalMetaData.getTypeInfo();
×
754
        }
755

756
        @Override
757
        public ResultSet getIndexInfo(final String catalog, final String schema, final String table, final boolean unique,
758
                        final boolean approximate) throws SQLException {
NEW
759
                return originalMetaData.getIndexInfo(catalog, schema, table, unique, approximate);
×
760
        }
761

762
        @Override
763
        public boolean supportsResultSetType(final int type) throws SQLException {
NEW
764
                return originalMetaData.supportsResultSetType(type);
×
765
        }
766

767
        @Override
768
        public boolean supportsResultSetConcurrency(final int type, final int concurrency) throws SQLException {
NEW
769
                return originalMetaData.supportsResultSetConcurrency(type, concurrency);
×
770
        }
771

772
        @Override
773
        public boolean ownUpdatesAreVisible(final int type) throws SQLException {
NEW
774
                return originalMetaData.ownUpdatesAreVisible(type);
×
775
        }
776

777
        @Override
778
        public boolean ownDeletesAreVisible(final int type) throws SQLException {
NEW
779
                return originalMetaData.ownDeletesAreVisible(type);
×
780
        }
781

782
        @Override
783
        public boolean ownInsertsAreVisible(final int type) throws SQLException {
NEW
784
                return originalMetaData.ownInsertsAreVisible(type);
×
785
        }
786

787
        @Override
788
        public boolean othersUpdatesAreVisible(final int type) throws SQLException {
NEW
789
                return originalMetaData.othersUpdatesAreVisible(type);
×
790
        }
791

792
        @Override
793
        public boolean othersDeletesAreVisible(final int type) throws SQLException {
NEW
794
                return originalMetaData.othersDeletesAreVisible(type);
×
795
        }
796

797
        @Override
798
        public boolean othersInsertsAreVisible(final int type) throws SQLException {
NEW
799
                return originalMetaData.othersInsertsAreVisible(type);
×
800
        }
801

802
        @Override
803
        public boolean updatesAreDetected(final int type) throws SQLException {
NEW
804
                return originalMetaData.updatesAreDetected(type);
×
805
        }
806

807
        @Override
808
        public boolean deletesAreDetected(final int type) throws SQLException {
NEW
809
                return originalMetaData.deletesAreDetected(type);
×
810
        }
811

812
        @Override
813
        public boolean insertsAreDetected(final int type) throws SQLException {
NEW
814
                return originalMetaData.insertsAreDetected(type);
×
815
        }
816

817
        @Override
818
        public boolean supportsBatchUpdates() throws SQLException {
NEW
819
                return originalMetaData.supportsBatchUpdates();
×
820
        }
821

822
        @Override
823
        public ResultSet getUDTs(final String catalog, final String schemaPattern, final String typeNamePattern,
824
                        final int[] types) throws SQLException {
NEW
825
                return originalMetaData.getUDTs(catalog, schemaPattern, typeNamePattern, types);
×
826
        }
827

828
        @Override
829
        public Connection getConnection() throws SQLException {
NEW
830
                return originalConn;
×
831
        }
832

833
        @Override
834
        public boolean supportsSavepoints() throws SQLException {
NEW
835
                return originalMetaData.supportsSavepoints();
×
836
        }
837

838
        @Override
839
        public boolean supportsNamedParameters() throws SQLException {
NEW
840
                return originalMetaData.supportsNamedParameters();
×
841
        }
842

843
        @Override
844
        public boolean supportsMultipleOpenResults() throws SQLException {
NEW
845
                return originalMetaData.supportsMultipleOpenResults();
×
846
        }
847

848
        @Override
849
        public boolean supportsGetGeneratedKeys() throws SQLException {
NEW
850
                return originalMetaData.supportsGetGeneratedKeys();
×
851
        }
852

853
        @Override
854
        public ResultSet getSuperTypes(final String catalog, final String schemaPattern, final String typeNamePattern)
855
                        throws SQLException {
NEW
856
                return originalMetaData.getSuperTypes(catalog, schemaPattern, typeNamePattern);
×
857
        }
858

859
        @Override
860
        public ResultSet getSuperTables(final String catalog, final String schemaPattern, final String tableNamePattern)
861
                        throws SQLException {
NEW
862
                return originalMetaData.getSuperTables(catalog, schemaPattern, tableNamePattern);
×
863
        }
864

865
        @Override
866
        public ResultSet getAttributes(final String catalog, final String schemaPattern, final String typeNamePattern,
867
                        final String attributeNamePattern) throws SQLException {
NEW
868
                return originalMetaData.getAttributes(catalog, schemaPattern, typeNamePattern, attributeNamePattern);
×
869
        }
870

871
        @Override
872
        public boolean supportsResultSetHoldability(final int holdability) throws SQLException {
NEW
873
                return originalMetaData.supportsResultSetHoldability(holdability);
×
874
        }
875

876
        @Override
877
        public int getResultSetHoldability() throws SQLException {
NEW
878
                return originalMetaData.getResultSetHoldability();
×
879
        }
880

881
        @Override
882
        public int getDatabaseMajorVersion() throws SQLException {
883
                if (databaseMajorVersion == null) {
1✔
884
                        databaseMajorVersion = originalMetaData.getDatabaseMajorVersion();
1✔
885
                }
886
                return databaseMajorVersion;
1✔
887
        }
888

889
        @Override
890
        public int getDatabaseMinorVersion() throws SQLException {
891
                if (databaseMinorVersion == null) {
1✔
892
                        databaseMinorVersion = originalMetaData.getDatabaseMinorVersion();
1✔
893
                }
894
                return databaseMinorVersion;
1✔
895
        }
896

897
        @Override
898
        public int getJDBCMajorVersion() throws SQLException {
NEW
899
                return originalMetaData.getJDBCMajorVersion();
×
900
        }
901

902
        @Override
903
        public int getJDBCMinorVersion() throws SQLException {
NEW
904
                return originalMetaData.getJDBCMinorVersion();
×
905
        }
906

907
        @Override
908
        public int getSQLStateType() throws SQLException {
NEW
909
                return originalMetaData.getSQLStateType();
×
910
        }
911

912
        @Override
913
        public boolean locatorsUpdateCopy() throws SQLException {
NEW
914
                return originalMetaData.locatorsUpdateCopy();
×
915
        }
916

917
        @Override
918
        public boolean supportsStatementPooling() throws SQLException {
NEW
919
                return originalMetaData.supportsStatementPooling();
×
920
        }
921

922
        @Override
923
        public RowIdLifetime getRowIdLifetime() throws SQLException {
NEW
924
                return originalMetaData.getRowIdLifetime();
×
925
        }
926

927
        @Override
928
        public ResultSet getSchemas(final String catalog, final String schemaPattern) throws SQLException {
NEW
929
                return originalMetaData.getSchemas(catalog, schemaPattern);
×
930
        }
931

932
        @Override
933
        public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException {
NEW
934
                return originalMetaData.supportsStoredFunctionsUsingCallSyntax();
×
935
        }
936

937
        @Override
938
        public boolean autoCommitFailureClosesAllResultSets() throws SQLException {
NEW
939
                return originalMetaData.autoCommitFailureClosesAllResultSets();
×
940
        }
941

942
        @Override
943
        public ResultSet getClientInfoProperties() throws SQLException {
NEW
944
                return originalMetaData.getClientInfoProperties();
×
945
        }
946

947
        @Override
948
        public ResultSet getFunctions(final String catalog, final String schemaPattern, final String functionNamePattern)
949
                        throws SQLException {
NEW
950
                return originalMetaData.getFunctions(catalog, schemaPattern, functionNamePattern);
×
951
        }
952

953
        @Override
954
        public ResultSet getFunctionColumns(final String catalog, final String schemaPattern,
955
                        final String functionNamePattern, final String columnNamePattern) throws SQLException {
NEW
956
                return originalMetaData.getFunctionColumns(catalog, schemaPattern, functionNamePattern, columnNamePattern);
×
957
        }
958

959
        @Override
960
        public ResultSet getPseudoColumns(final String catalog, final String schemaPattern, final String tableNamePattern,
961
                        final String columnNamePattern) throws SQLException {
NEW
962
                return originalMetaData.getPseudoColumns(catalog, schemaPattern, tableNamePattern, columnNamePattern);
×
963
        }
964

965
        @Override
966
        public boolean generatedKeyAlwaysReturned() throws SQLException {
NEW
967
                return originalMetaData.generatedKeyAlwaysReturned();
×
968
        }
969

970
        @Override
971
        public long getMaxLogicalLobSize() throws SQLException {
NEW
972
                return originalMetaData.getMaxLogicalLobSize();
×
973
        }
974

975
        @Override
976
        public boolean supportsRefCursors() throws SQLException {
NEW
977
                return originalMetaData.supportsRefCursors();
×
978
        }
979

980
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc