Skip to content

Commit d934271

Browse files
committed
Document compatibility issue with schema(Pattern) in dbmd
1 parent 180999c commit d934271

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

src/docs/asciidoc/release_notes.adoc

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -516,6 +516,7 @@ Firebird 6.0 introduces schemas, and Jaybird 7 provides support for schemas as d
516516
Changes include:
517517

518518
* Connection property `searchPath` sets the initial search path of the connection.
519+
+
519520
The search path is the list of schemas that will be searched for schema-bound objects if they are not explicitly qualified with a schema name.
520521
The first _valid_ schema is the current schema of the connection.
521522
+
@@ -591,6 +592,61 @@ Jaybird 7 introduces some changes in compatibility and announces future breaking
591592
*The list might not be complete, if you notice a difference in behavior that is not listed, please {issues}[report it as bug^].*
592593
It might have been a change we forgot to document, but it could just as well be an implementation bug.
593594
595+
[#compatibility-changes-schema]
596+
=== Potential compatibility issues due to schema support
597+
598+
The implementation of schema support may cause compatibility issues.
599+
In general, these changes will only impact Jaybird when connecting to Firebird 6.0 or higher.
600+
601+
We recommend looking over this section even if you currently do not use Firebird 6.0 or higher, so you can prepare your code to be ready for a future migration to Firebird 6.0.
602+
603+
[#compatibility-changes-schema-dbmd-params]
604+
==== Parameters `schema` and `schemaPattern` in methods of `DatabaseMetaData`
605+
606+
In previous versions, Jaybird ignored the `schema` and `schemaPattern` parameters of the `DatabaseMetaData` methods (usually the second parameter of `DatabaseMetaData.getXXX(...)` methods).
607+
In Jaybird 7, it no longer ignores these parameters when querying a Firebird 6.0 or higher database.
608+
609+
If you currently pass the "`wrong`" value for these methods, especially `""` (empty string, i.e. only return schemaless objects), you may get no or fewer results than expected.
610+
611+
[float]
612+
===== `schema`
613+
614+
The `schema` parameter performs an exact, case-sensitive match on the schema name, unless it's `null` (i.e. don't filter by schema).
615+
616+
If your code currently passes `""` (empty string), you need to either replace it with `null` (don't filter by schema), or the desired schema name.
617+
618+
.`DatabaseMetaData` methods with `schema` parameter
619+
* `getBestRowIdentifier`
620+
* `getColumnPrivileges`
621+
* `getCrossReference` (parameters `parentSchema` and `foreignSchema`)
622+
* `getExportedKeys`
623+
* `getImportedKeys`
624+
* `getIndexInfo`
625+
* `getPrimaryKeys`
626+
* `getVersionColumns`
627+
628+
(Unsupported metadata methods are not listed.)
629+
630+
[float]
631+
===== `schemaPattern`
632+
633+
The `schemaPattern` parameter performs a case-sensitive `LIKE` match on the schema name, unless it's `null` (i.e. don't filter by schema).
634+
635+
If your code currently passes `""` (empty string), you need to either replace it with `null` (don't filter by schema), use `"%"` (match all schemas, effectively the same as passing `null`), or an appropriate `LIKE` pattern for the desired schemas.
636+
637+
.`DatabaseMetaData` methods with `schemaPattern` parameter
638+
* `getColumns`
639+
* `getFunctionColumns`
640+
* `getFunctions`
641+
* `getProcedureColumns`
642+
* `getProcedures`
643+
* `getPseudoColumns`
644+
* `getSchemas`
645+
* `getTablePrivileges`
646+
* `getTables`
647+
648+
(Unsupported metadata methods are not listed.)
649+
594650
// TODO Document compatibility issues
595651
596652
[#removal-of-classes-packages-and-methods-without-deprecation]

0 commit comments

Comments
 (0)