InterBase 2017 Update 1 の新機能
Main Page へ戻る
目次
このリリースでは、不具合の修正が行われています。不具合の修正に関する詳細リストについては、「解決されて不具合」を参照してください。このリリースでは、新しい機能も含まれています。詳細については、「新機能」を参照してください。
この Readme には、次のセクションから構成されています:
- システム要件
- 新機能
- InterBase 2017 の移行における問題
- InterBase XE7 の移行における問題
- InterBase XE3 の移行における問題
- InterBase XE 以前の移行における問題
- 既知の問題
- 解決された不具合
- その他のリソース
- メモ: 「以前のリリース」をクリックすると、InterBase 2020 Update 6 より前のリリースについて確認することができます。
- メモ: 2017 リリースの新機能と解決済みの問題を参照するには、ここをクリックしてください。
Main Page へ戻る
InterBase 2017 Update 1 では、新機能の追加および不具合の修正が行われています。
詳細については、次のセクションを参照してください。
新たにサポートされたプラットフォーム
InterBase Developer エディションおよび Server エディションでは、次の macOS バージョンがサポートされるようになりました:
- El Capitan
- Sierra
- High Sierra
macOS 上の InterBase 2017 Update 1 が Server Edition と ToGo Edition の両方にて、64 ビット アーキテクチャをサポートするようになりました。
InterBase Developer エディションおよび Server エディションでは、次の Windows バージョンがサポートされるようになりました:
- Windows 10 Creators Update
新機能
式インデックス
- 式インデックス(以降 EI)に対するサポートにより、クエリのインデックス定義と最適化が強化されています。EI 定義は、InterBase ユーザーが、 列の結果セットの一部として、または、SELECT 文の WHERE 式で使用する通常の式演算子を持った、同じ基底テーブルからフィールド(群)が入るあらゆる有効な式に対して開かれます。
詳細については、「式インデックス」を参照してください。
GROUP BY と ORDER BY の強化
- GROUP BY は、選択リストの項目の位置を参照する序数値(INT)を取るよう、強化されました。
- GROUP BY および ORDER BY は、単一値となる "expr" を取るよう、強化されました。
詳細については、「GROUP BY と ORDER BY の強化」を参照してください。
その他
変更ビューのパフォーマンス
InterBase 2020 Update 6 において、変更ビューの抽出のパフォーマンスが強化されました。
メモ: このパフォーマンス強化は、ODS 17 データベースでのみ有効です。
復元データベースの最初のスイープが高速スイープに
InterBase 2020 Update 6 にて、復元したどのデータベースも、ただちにスイープ済みにマークされるようになりました。このため、そのデータベースの最初のスイープは、高速スイープです。この機能の利点を活かすには、InterBase 2020 Update 6 でデータベース復元を行い、ODS 15 または ODS 16 を使用する必要があります。スイープについては、「スイープ間隔と自動ハウスキーピング」を参照してください。
不具合の修正
InterBase 2017 Update 1 における不具合修正の一覧については、「解決済みの不具合」を参照してください。
システム要件/前提条件
InterBase をインストールおよび実行するためのシステム要件については、「システム要件/前提条件」を参照してください。.
InterBase 2017 の移行における問題
- InterBase 2017 は、デフォルトでは ODS 17 でデータベースを作成しますが、ODS 13 およびトランザクション負荷のためのデータベースにも接続できます。
- InterBase 2017 では、ODS 11 および ODS 12 のデータベースのバックアップは、クライアント/サーバー モード使用している
gbakコマンドライン ツールを使用している場合にのみ可能で、サーバー マネージャ モードではできません。 古い InterBase ODS 11 や 12 のデータベースから移行する場合、この機能を使用することができます。 - 本リリースでは、次の新しい InterBase キーワードが導入されています:
DEFERREDおよびIMMEDIATEは、未予約のキーワードです。EXCLUSIVE、EXCLUSIVITY、RECURSIVE、TRUNCATEは、InterBase 2017 における予約キーワードです。 - ODS 17 では、テーブル行全体に対する変更ビュー サブスクリプション定義のサポートが有効になっており、それ以降の
ALTER TABLEオペレーションが継続されます。 この利点を利用したい場合は、ODS 16 データベースをバックアップと取り、ODS 17 へリストアしてください。
InterBase XE7 の移行における問題
- 古いクライアント(古い IBConsole)が、新しい ODS 16 データベースに接続しようとすると、例外が発生する点に注意してください。これは、そのクライアントが INTEGER として定義されていないデータ型に直面するためです。 回避策は、新たな IBConsole をインストールして、新旧の InterBase サーバーに接続します。 新しい IBConsole は、この用途のために後方互換性があります。
- InterBase Lock Table サイズは、IBConfig パラメータを変更して増加させる必要があります。これは、すべてのエントリが領域を取るためです。 InterBase Lock Table サイズを増加させるには、ibconfig ファイルを編集して、V4_LOCK_MEM_SIZE エントリを変更してください。
- InterBase XE7 は、ODS 16 と共にリリースされています。 新しいエンジンは、ODS 13 移行のみをサポートしています。 この変更により、サポートされているすべてのプラットフォームは、同じ ODS バージョン(13 から 16)をサポートします。
- 古いバージョンの Visual Studio(2005 以前)で構築されている 64 ビット UDF ライブラリは、InterBase XE7 で動作しないというレポートが上がっています。 古い UDF ライブラリがある場合、新しい InterBase バージョンで念のためテストしてください。 もしくは、UDF 64 ビット ライブラリを最新バージョンの Visual Studio で再ビルドしてください。
- 新しいキーワード ROW が、SQL キーワード トークンとして「予約語」になりました。
InterBase XE3 の移行における問題
Windows レジストリおよびプログラム ファイルの変更
InterBase XE3 では、よりよい Windows 互換性のために変更が行われています。 InterBase XE3 では、[Program Files] の場所への製品のインストールがデフォルトになり、Windows レジストリ階層でも「Borland」サブ キーを使用しなくなりました。 現在では、インスタンス固有の情報の追跡には、「Embarcadero」サブ キーを使用しています。 お使いのアプリケーションを、なるべく早く新しい環境へ移行することを、強くお勧めします。
- プログラム ファイルのインストール場所
- 2009 以降のバージョンの InterBase は、製品を Windows のデフォルト フォルダ [Program Files] 以下の場所へインストールされていました。 これは、Windows UAC ガイドラインによるもので、管理者権限のないアプリケーション周りには制限をおき、[Program Files] ファイル システム フォルダ下への書き込みを抑制しています。 InterBase XE3 でのサーバー ベース エディションでは、Windows アプリケーション互換性ガイドラインに準拠し、 デフォルト インストール場所が、C:\Embarcadero\InterBase から C:\Program Files\Embarcadero\InterBase へ変更されました。
- プログラム データの場所
- InterBase XE3 では、プログラム データ ファイルを、 %ALLUSERSPROFILE%\Embarcadero\InterBase ディレクトリに配置するようになりました。 インストールの各インスタンスについて、この下にフォルダが作成され、書き込みアクセスを必要とするすべてのファイルが、ここに配置されます。 たとえば、InterBase XE3 をデフォルトでインストールした場合、「gds_db」インスタンスを取得し、InterBase の書き込み場所とファイルは次のようになります:
- ディレクトリ: %ALLUSERSPROFILE%\Embarcadero\InterBase\gds_db
- ファイル:
- admin.ib (古いバージョンの InterBase から移行している場合には、ここに古い admin.ib ファイルを配置する)
- license/ (ここに InterBase ライセンス ファイルを配置する)
- examples のサブフォルダ構造と、すべての関連ファイル
- OTW SSL 関連ファイルは、「secure」サブフォルダに
- 実行時作成されるファイル(interbase.log、*.lck、*.env など)
InterBase XE 以前の移行に関わる問題
- 旧バージョンをアンインストールする前に、セキュリティ データベースを含むすべてのデータベースを必ずバックアップしてください。
- SUSE 11 SP1(もしくはそれ以降)のサーバーを対象と考えているのなら、InterBase クライアントを 10.0.0.292 以上にアップグレードすることをお薦めします。 SUSE 11 SP1 サーバーからのイベントを待機する、古いバージョンのクライアントには、既知の問題があります。
- カスタマイズされている場合は、ibconfig をバックアップします。
- このバージョンでは、新しいデータベースは ODS バージョン 15 で作成されます。
- 64 ビット版の InterBase では、64 ビット UDF ライブラリだけを使用してください。 64 ビット サーバーでは、これまでの 32 ビット UDF ライブラリを読み込めません。 提供されている UDF ライブラリ(OOTB、ib_udf)は、既に 64 ビット用にビルドされており、製品と一緒にインストールされています。
- InterBase XE では、1 つのテーブルに格納できるレコード数が増えています。 現在のカウントには 32 ビットという限界があります。 32 ビットよりも大きいレコード値の数のカウントが必要であれば、以下の手順を実行してください。
- テーブルの行数が 2 G を超える場合には、CAST(COUNT(*) AS NUMERIC(18,0)) というコードを使用してカウントを 64 ビットにしなければなりません。
- InterBase XE で、強度の高いパスワード保護 が実装されました。 古いバージョンの InterBase クライアントが(ローカルまたはリモート システムから)このインストール ファイルと通信する場合には、システムを InterBase XE3 にアップグレードする際に、次の点に留意してください。
- 既存の(旧バージョンの InterBase で使用していた)ユーザー認証データベースがある場合には、そのデータベース ファイルを(InterBase XE フォルダにコピーして)使用すると、ローカルやリモートのクライアントの認証は正しく動作します。
- InterBase XE の新しい admin.ib を使用する場合には、このデータベースで強度の高い "SHA-1" パスワード(デフォルト)が使われていることに注意してください。 強度の低い DES パスワード アルゴリズム(これまでの InterBase リリースのもの)を引き続き使用する場合には、「強度の高いパスワード保護」のトピックで説明した ALTER DATABASE コマンドを使用してください。
- InterBase XE で提供されている "強度の高い長いパスワード" を使用する場合には、ユーザー アカウントを作り直し、かつ、この InterBase XE サーバーに接続しているリモート マシンに新しい InterBase クライアントをインストールする必要があります。 これは、"古い" InterBase クライアントでは "SHA-1" パスワードを計算することができず、"DES" の強度のパスワードを渡すので、InterBase XE サーバー側で予期しているものと一致しないためです。 その結果、"Your user name and password are not defined...(ユーザー名とパスワードが定義されていません)" というエラーが出力されます。
- InterBase XE の更新された SSL パラメータ名。 古い OTW クライアント プロパティは、新しい OTW プロパティによって置き換えられました。 操作ガイドの「OTW 暗号の設定」と、第5章にある表 5.2 を参照してください。
- データベースを復元すると "unassigned code(割り当てられていないコード)" というエラーが出力される
- InterBase XE でデータベースを復元すると、"unassigned code(割り当てられていないコード)" というエラーが出力されます。 長く使われているデータベースや、InterBase 2009 でバックアップして InterBase XE で復元したデータベースでは、メタデータ セキュリティの設定が異なります。 So when selecting a system table (for example: RDB$RELATIONS) you get the error message: "no permission for read/select access to table RDB$RELATIONS by user SYSDBA" (ユーザー SYSDBA は RDB$RELATIONS の読み取り/検索アクセスを行う権限がありません)
- このエラーは、次の基準に当てはまるデータベースで発生します。
- 元々は InterBase 6.5 より前のバージョンで作成された。
- InterBase 2009 より前のバージョンでバックアップされた。
- Readmeta.sql がまだ適用されていない。
- このような動作が生じるのは、データベースの復元を行うときに、InterBase XE ではメタ データ権限が厳密に適用されるためです。
-
- 解決方法:
- この問題を解決するには、バックアップする前に readmeta.sql をデータベースに対して実行します。 readmeta.sql は、多くの場合、\examples\security にあります。 isql または IBConsole を使用して、readmeta.sql をデータベースに対して実行することができます。
-
- 説明:
- 長い間使われているデータベースでこの問題が発生します。 (1)データベースが IB6 -> IB7 -> IB2007 -> IB2009 -> IBXE と復元されてきた、(2)データベースが IB2009 でバックアップされて IBXE で復元された、という 2 つの状況が考えられます。 それぞれの状況で、メタデータ セキュリティ設定は異なります。 (1)の場合は、最初に IB6 で作成されているため、そもそもメタデータ セキュリティが設定されていません。 それに対して(2)の場合には、IB2009 で作成されているため(復元はされていません)、すべてのシステム テーブルにあらゆるセキュリティ権限が設定されています。
- 前者の場合、データベースはバックアップと復元が繰り返され、新しいリリースになるたびに、そのリリースで追加されたシステム テーブル(RDB$USERS、RDB$ENCRYPTIONS、RDB$ROLES など)の権限が設定されます。 ただし、元々存在するシステム テーブルについては、データベース所有者が既にセキュリティ権限を変更しているかどうかを判断できないため、変更は行われません。 たとえば、ユーザーが RDB$TRIGGERS および RDB$PROCEDURES に対する権限をすべて取り消して、トリガーやストアド プロシージャのコードを隠していることも考えられます。
- また、前者の場合には、何年も前に SYSDBA が readmeta.sql を実行し、その基準のメタデータを変更してカスタム セキュリティ プロファイルを作成している可能性もあります。 XE の復元の後で InterBase が自動的に既定値に戻して、そのカスタマイズを上書きすることはできません。XE InterBase XE では、個々のデータベースのこれまでの履歴を把握していないため、復元するすべてのデータベースに無条件にデフォルトのメタデータ権限を設定するべきだと想定することはできません。
- そのため、readmeta.sql を実行し、そのデフォルト値を出発点として望ましい状態に構成することをお勧めします。 これは、移行先が XE 以外の場合でも同じです。
-
- isql の使用例:
isql "path to database" -user sysdba -password masterkey -i readmeta.sql
-
- IBConsole での readmeta.sql の実行
- IBConsole でデータベースに接続します。
- [ツール|対話型 SQL...] を選択します。
- [クエリー|SQL スクリプトの読み込み] を選択し、readmeta.sql を選択して [開く] をクリックします。
- IBConsole での readmeta.sql の実行
-
- ERROR: No Permission for read/select access to table RDB$XXXX by user SYSDBA(ユーザー SYSDBA はテーブル RDB$XXXX の読み取り/検索アクセスを行う権限がありません)
- InterBase 6.5 より前のバージョンで作成されたデータベースでは次のエラーを発生させる可能性があります: no permission for read/select access to table RDB$XXXX by user SYSDBA with InterBase XE. (ユーザー SYSDBA は InterBase XE でテーブル RDB$XXXX の読み取り/検索アクセスを行う権限がありません)
-
- 解決方法:
- InterBase XE ではメタ データのセキュリティが厳しくなっているため、バージョン 6.5 よりも前の InterBase で最初に作成されたデータベースに対してメタ データ操作を行うと、このエラーが出力される可能性があります。 メタ データ操作には、システム オブジェクトの一覧の作成などシステム オブジェクトの情報を要求する、それを更新する、パフォーマンス モニタを使用する、といったものがあります。
- このエラーを解決するには、よく似た 2 つの操作を実行する必要があります。 最初の操作では、システム テーブルに対する権限を付与します。 そのためには、InterBase インストール ディレクトリの examples\security フォルダにある readmeta.sql を実行します。 isql または IBConsole を使用して、readmeta.sql をデータベースに対して実行することができます。
- isql の使用例:
isql "path to database" -user sysdba -password masterkey -i readmeta.sql
-
- IBConsole での readmeta.sql の実行
- IBConsole でデータベースに接続します。
- [ツール|対話型 SQL...] を選択します。
- [クエリー|SQL スクリプトの読み込み] を選択し、readmeta.sql を選択して [開く] をクリックします。
- IBConsole での readmeta.sql の実行
-
- 次に、パフォーマンス監視機能を使用する場合には、システム一時テーブルに対する権限を付与する必要があります。 セキュリティ上の問題が起きる可能性があるため、ほとんどのインストールでは、システム一時テーブルに対する権限を sysdba およびデータベース所有者にしか付与しないようになっています(以下で紹介しているのはそれです)。 すべてのユーザーがシステム一時テーブルを閲覧できるようにするには、この例を GRANT TO PUBLIC に変更してください。 特定のユーザーだけに権限を付与したい場合もあるでしょう。そのときにはさらにカスタマイズされたスクリプトが必要になる可能性があります。
-
- システム一時テーブルに対する権限を付与するには、以下のコードをテキスト ファイルに保存し、上記の readmeta.sql と同様に実行してください。
create procedure granttmp as declare variable stmt varchar(1024); declare variable ownername varchar(66); declare variable tablename varchar(66); begin select rdb$owner_name from rdb$relations where rdb$relation_name = 'RDB$RELATIONS' into :ownername; For select rdb$relation_name from rdb$relations where rdb$system_flag>0 and rdb$relation_name starts with 'TMP$' into :tablename do begin stmt = 'grant all on ' || tablename || ' to sysdba'; execute statement stmt; stmt = 'grant all on ' || tablename || ' to ' || ownername; execute statement stmt; end end; execute procedure granttmp; drop procedure granttemp; commit; exit;
既知の問題
- macOS では、InterBase Server Edition の日本語インストーラは英語 UI で表示されます。これは使用している InstallAnywher バージョンの問題であるため、現在のところ回避策はありません。
- 問題: admin.ib を介したサーバー側パフォーマンス モニタリングは、ISQL コマンドライン ツールを使用している場合には機能しますが、IBConsole パフォーマンス モニタ UI を介して使用した場合には、「Key violation」例外を発生させます。
解決された不具合
| 外部バグ # | 説明 | |
|---|---|---|
| (QC)SalesForce # | ||
| 内部バグ # | ||
| InterBase 15: 2025年10月、バージョン 15 で修正されたバグ、ビルド 15.0.0.27 | ||
| INTB-4712 | DB プロパティ画面 AV からデータベースの暗号化を選択する | |
| INTB-4710 | IBConsole。SEP 設定。メタデータ更新エラー | |
| INTB-4708 | DB プロパティ画面 AV からデータベースの暗号化を選択する | |
| INTB-4685 | dbalias フィールドに余分な文字が出現して、通常の db 復元に失敗する | |
| INTB-4663 | コピーされた DB への接続が、AV メッセージと共に発生する | |
| INTB-4642 | Windows Server 2025 アンインストール エラー | |
| INTB-4638 | Windows Server 2025 インストール エラー | |
| INTB-4604 | パフォーマンス モニタが自動更新されると、SQL の砂時計がすべての画面に表示される | |
| INTB-4570 | SHOW SYSTEM TABLES が IBConsole で機能しない | |
| SF Case 01126923
INTB-4434 |
Linux 64 ビット上で、整数と数値に関する ODBC 問題 | |
| SF Case 00616715
INTB-3407 |
SQLTables が、 % が Catalog に渡された場合に、テーブルを返さない | |
ヘルプが必要なときには
Embarcadero Technologies の技術サポート
- Embarcadero Technologies と正規の保守契約を結ばれている場合、お使いの弊社アプリケーションで何らかの問題があった際に Embarcadero の技術サポート チームが対応いたします。 また弊社の保守契約により、Embarcadero Technologies 製品の登録ユーザーは、その契約の有効期間の間、ソフトウェアの更新を無料でダウンロードする権利を有します。 評価者は、その評価期間の間、無料で技術サポートを受けることができます。 Web サイトの「カスタマー サポート」セクションをご覧ください。
Embarcadero Technologies の Web サイト
- 評価者は、その評価期間の間、無料で技術サポートを受けることができます。 Embarcadero Technologies 製品の評価版をダウンロードしたり、弊社および弊社製品についてさらにお調べになりたい場合には、http://www.embarcadero.com/ をご参照ください。