You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -52,11 +52,6 @@ JDBC defines various methods, parameters, and return values or result set column
52
52
53
53
Jaybird 5 is the "`long-term support`" version for Java 8.
54
54
55
-
[NOTE]
56
-
====
57
-
This document is in flux, and will be updated during implementation of the feature.
58
-
====
59
-
60
55
== Decision
61
56
62
57
Jaybird 7 will implement schema support for Firebird 6.0.
@@ -67,8 +62,8 @@ Further details can be found in <<consequences>>.
67
62
Schema support will _not_ be backported to Jaybird 6 as the required changes are simply too large.
68
63
It would mean that Jaybird 6 would contain most of Jaybird 7, and upgrading to a -- theoretical -- Jaybird 6.1 would have similar risks and compatibility issues as upgrading to Jaybird 7.
69
64
70
-
Decision on a (partial) backport to Jaybird 5 -- as the "`long-term support`" version for Java 8 -- is still pending (e.g. as a Jaybird 5.1.x), and may be the subject of a separate JDP.
71
-
We might only do that on demand and/or when someone is willing to sponsor the work.
65
+
Decision on a (partial) backport to Jaybird 5 -- as the "`long-term support`" version for Java 8 -- is pending (e.g. as a Jaybird 5.1.x), and if so, will be the subject of a separate JDP.
66
+
We will only do that on demand and if someone is willing to sponsor the work.
72
67
73
68
[#consequences]
74
69
== Consequences
@@ -97,9 +92,11 @@ Jaybird cannot honour this requirement for plain `Statement`, as schema resoluti
97
92
** Include schema names in joins to ensure matching the right objects
98
93
** Allow searching for schema or schema pattern as specified in JDBC, or were needed for internal metadata queries
99
94
** `getCatalogs`;
100
-
it is not possible to identify the schema(s) within the confines of JDBC.
95
+
we currently use this to report package names if `useCatalogAsPackage=true`.
96
+
It is not possible to identify the schema(s) of a package within the confines of JDBC.
101
97
+
102
98
We considered adding a column that lists the schema(s) that contain the package name, but we don't think it will see use in practice.
99
+
If there is demand, this decision may be revisited.
103
100
* `FirebirdConnection`
104
101
** Added method `String getSearchPath()` to obtain the search path as reported by `RBB$GET_CONTEXT('SYSTEM', 'SEARCH_PATH')`, or `null` if schemas are not supported
105
102
** Added method `List<String> getSearchPathList()` to obtain the search path as a list of unquoted object names, or empty list if schemas are not supported
@@ -111,10 +108,10 @@ We considered adding a column that lists the schema(s) that contain the package
111
108
this fulfills the JDBC requirements that a `CallableStatement` is not sensitive to current schema changes, but only *if* Jaybird is able to identify the procedure, behaviour is undefined if the procedure was not found.
112
109
** The API of `StoredProcedureMetaData` (internal API) is changed to not report selectability, but to update the `FBProcedureCall` instance with selectability and other information, like identified schema and/or package.
113
110
** For qualified *and* unambiguous procedure reference, the selectability is cached *per connection*, for unqualified or ambiguous procedure reference, the lookup is performed on each `Connection.prepareCall`, to account for search path changes
114
-
** Support for packages was missing in the handling of callable statements, and is added, also for older versions
111
+
** Support for packages was missing in the handling of callable statements, and is added, also for older Firebird versions
115
112
* Effects for management API
116
113
** `StatisticsManager`
117
-
*** `getTableStatistics` received an overload to also accept a list of schemas (`sts_schema`)
114
+
*** `getTableStatistics` received an overload to also accept a collection of schemas (`sts_schema`)
118
115
** `FBTableStatisticsManager`/`TableStatistics`
119
116
*** Internally `ObjectReference` is used for the table instead of a String
120
117
*** The key of the map returned by `getTableStatistics()` is a qualified table reference (i.e. `{<table-name> | <quoted-schema>.<quoted-table-name>}`.
@@ -124,7 +121,7 @@ For schemaless tables, the unquoted table name is used as the key for backwards
124
121
**** `tableReference()` with the qualified table reference (i.e. `[<quoted-schema>.]<quoted-table-name>` (contrary to the key of getTableStatistics, it's always quoted!))
125
122
* TODO: Add information to Jaybird manual
126
123
127
-
Note to self: use `// TODO Add schema support` in places that you identify need to get/improve schema support, while working on schema support elsewhere
124
+
// Note to self: use `// TODO Add schema support` in places that you identify need to get/improve schema support, while working on schema support elsewhere
Copy file name to clipboardExpand all lines: src/docs/asciidoc/release_notes.adoc
+9-3Lines changed: 9 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -529,7 +529,6 @@ If `SYSTEM` is not included, the server will automatically add it as the last sc
529
529
use `null` or --`schemaPattern` only --`"%"` to match all schemas
530
530
**`getCatalogs`-- when `useCatalogAsPackage=true`-- returns all (distinct) package names over all schemas.
531
531
Within the limitations and specification of the JDBC API, this method cannot be used to find out which schema(s) contain a specific package name.
532
-
// TODO Maybe add a custom column with a list of schema names?
533
532
**`getColumnPrivileges` and `getTablePrivileges` received an additional column, `JB_GRANTEE_SCHEMA`, which is non-``null`` for grantees that are schema-bound (e.g. procedures).
534
533
+
535
534
As this is a non-standard column, we recommend to always retrieve it by name.
@@ -559,15 +558,22 @@ we recommend to always use `null` for `catalog`
559
558
* `ResultSetMetaData`
560
559
**`getSchemaName` reports the schema if the column is backed by a table, otherwise empty string (`""`)
561
560
* `FirebirdConnection`/`FBConnection`
561
+
**`setSchema` will modify the search path by prepending the specified schema, or -- if `setSchema` was called previously -- replacing the previous value set.
562
+
+
563
+
The schema is not checked for existence, and setting one will not result in an exception, see also note about `getSchema` below.
564
+
**`getSchema()` reports the value of `CURRENT_SCHEMA`, which is the first valid (i.e. existing) schema on the search path.
565
+
+
566
+
The value reported can change if a previously missing schema is created in the database.
562
567
** Added method `String getSearchPath()` to obtain the search path as reported by `RBB$GET_CONTEXT('SYSTEM', 'SEARCH_PATH')`, or `null` if schemas are not supported
563
568
** Added method `List<String> getSearchPatList()` to obtain the search path as a list of unquoted object names, or empty list if schemas are not supported
564
569
** Added methods `setSearchPath(String)` and `setSearchPathList(String...)/(List<String>)` to set the search path;
565
570
these methods throw `SQLFeatureNotSupportedException` if schemas are not supported.
566
571
* `StatisticsManager`
567
572
**`getTableStatistics`
568
573
*** `getTableStatistics(String[] tableNames)` was changed to accept varargs (`getTableStatistics(String... tableNames)`)
569
-
*** Added overload `getTableStatistics(List<String> tableNames)` with same behaviour as `getTableStatistics(String... tableNames)`
570
-
*** Added overload `getTableStatistics(List<String> schemas, List<String> tableNames)` -- if `schemas` is non-empty, on Firebird 6.0 and higher, it will restrict the search for tables to the specified schemas
574
+
*** Added overload `getTableStatistics(Collection<String> tableNames)` with same behaviour as `getTableStatistics(String... tableNames)`
575
+
*** Added overload `getTableStatistics(Collection<String> schemas, Collection<String> tableNames)` -- if `schemas` is non-empty, on Firebird 6.0 and higher, it will restrict the search for tables to the specified schemas;
576
+
if `tableNames` is empty, and `schemas` is not, only the tables of the specified schemas will be reported
** For schema-bound tables, the key of the map returned by `getTableStatistics()` is a fully qualified and quoted table reference (i.e. `<quoted-schema>.<quoted-table-name>`).
573
579
For schemaless tables (Firebird 5.0 and older, or tables that were not found), the key is still the unquoted `<table-name>`.
0 commit comments