Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere 11 - 変更点とアップグレード » バージョン 11.0.1 の新機能

 

SQL Anywhere の動作の変更と廃止予定機能

次に、バージョン 11.0.1 で導入された SQL Anywhere データベースとデータベース・サーバに加えられた変更を、カテゴリごとに示します。

動作の変更
  • 全文検索   次に、全文検索に加えられた動作の変更を示します。

    • 演算子の優先度が適用される   以前までは、クエリ文字列に演算子の優先度は適用されていませんでした。このリリースでは、次の演算子の優先度が適用されるようになりました。

      • NEAR、FUZZY 演算子
      • AND NOT 演算子
      • AND 演算子
      • OR 演算子

      CONTAINS 探索条件における演算子の優先度を参照してください。

    • NEAR 句の引数は単語またはプレフィクス単語にする   近接検索を実行する場合、NEAR 句の引数は単語またはプレフィクス単語である必要があります。CONTAINS 探索条件近接検索を参照してください。

    • ハイフンおよび AND NOT 句の使用   フレーズ内では、ハイフンは特殊文字ではなく単語区切りとして処理されます。フレーズの外にあるハイフンの処理は、ハイフンを囲む構文によって異なります。ハイフン (-) を使用できる構文全文検索での AND NOT 演算子の使用を参照してください。

    • アスタリスクおよびプレフィクス検索の使用   プレフィクス検索を実行する場合、単語にアスタリスクを付加し、クエリ文字列の末尾とするか、またはそのすぐ後にスペースか許可された特殊文字を 1 つ挿入する必要があります。アスタリスク (*) を使用できる構文プレフィクス検索を参照してください。

    • 重複するテキスト・インデックスを作成するとエラーが返される   重複するテキスト・インデックスを作成できなくなりました。次の設定が既存のテキスト・インデックスと同じ場合、そのテキスト・インデックスは重複するものと見なされます。

      • 参照されるベース・テーブル

      • インデックス対象カラム (順序は問わない)

      • 使用される設定オブジェクトの設定内容 (TERM BREAKER、MINIMUM TERM LENGTH、MAXIMUM TERM LENGTH、STOPLIST、照合情報)

      SQL Anywhere 11.0.1 よりも前のバージョンで作成された重複するテキスト・インデックスは、データベース内に残すことができ、11.0.1 のデータベース・サーバで開始してもエラーは発生しません。ただし、重複するテキスト・インデックスを含むデータベースをバージョン 11.0.1 以降で再ロードすると、エラーが返されます。

      既存のデータベース内にある重複するテキスト・インデックスを識別するには、次のクエリを実行します。

      SELECT LIST( i.index_name )
      FROM SYS.SYSIDX i 
          JOIN SYS.SYSTEXTIDX t ON i.object_id = t.index_id AND t.sequence = 1
          JOIN SYS.SYSTEXTCONFIG F ON F.object_id = t.text_config
          JOIN ( 
      	SELECT table_id, index_id, LIST( column_id, ', ' ORDER BY column_id ) col_id
      	FROM SYS.SYSIDXCOL
      	GROUP BY table_id, index_id) x 
      	ON x.table_id = i.table_id AND x.index_id = i.index_id
      WHERE i.index_category=4
      GROUP BY i.table_id, f.term_breaker, f.min_term_length, f.max_term_length, 
          f.collation, ISNULL( f.char_stoplist, '-' ), 
          ISNULL( f.nchar_stoplist, '-' ), x.col_id
      HAVING count(*) > 1

      このクエリは、ストップリストを表す文字列がまったく同じであるか、NO STOPLIST が指定されている場合のみ有効です。たとえば、ストップリスト 'a b c' と ストップリスト 'a - b c' は、このクエリでは同じものとは見なされませんが、テキスト・インデックスを作成する際の重複のチェックでは同じものと見なされます。

  • 正規表現   SIMILAR TO、REGEXP の各探索条件、および REGEXP_SUBSTR 関数の動作に変更が加えられました。変更の主な目的は、SIMILAR TO の ANSI/SQL 標準との整合性を保ちながら、REGEXP と REGEXP_SUBSTR の動作を Perl と整合させることにあります。

    • データベースの照合および一致   以前までは、REGEXP と REGEXP_SUBSTR は照合等価やソート順を使用して、パターン内のリテラル・クラスや文字クラスの範囲が文字列と一致するかを判断していました。このリリースでは、REGEXP と REGEXP_SUBSTR はコードポイント値のバイナリ比較を使用して、範囲の一致や評価を行っています。この変更は、Perl 5.0 と動作の整合性が保たれるようにするため行われています。

      SIMILAR TO は依然としてデータベース照合を使用して一致や範囲の評価を行っています。LIKE 探索条件、REGEXP 探索条件、SIMILAR TO 探索条件を参照してください。

    • データベースの大文字と小文字の区別および [[:upper:]] と [[:lower:]] の部分文字クラス   大文字と小文字を区別しないデータベースでは、SIMILAR TO と REGEXP の [[:upper:]] と [[:lower:]] の部分文字クラスは区別されていませんでした。これは変更され、データベースが大文字と小文字を区別するかどうかにかかわらず、[[:upper:]] は大文字とだけ一致し、[[:lower:]] は小文字とだけ一致するようになりました。

    • メタ文字としての脱字記号 (^)、 アンダースコア (_)、パーセント記号 (%) の処理   次の表に、メタ文字としての各文字がどのように処理されるかを、以前の動作と新しい動作に分けて示します。

      文字 以前の動作 新しい動作
      _ (アンダースコア) SIMILAR TO、REGEXP、および REGEXP_SUBSTR では、アンダースコアはメタ文字として処理され、任意の 1 文字と一致していました。

      SIMILAR TO では、アンダースコアはメタ文字として処理され、任意の 1 文字と一致します。

      REGEXP と REGEXP_SUBSTR では、アンダースコアはメタ文字として処理されません。REGEXP と REGEXP_SUBSTR で任意の 1 文字と一致させるためには、代わりにピリオド (.) を使用します。

      % SIMILAR TO、REGEXP、および REGEXP_SUBSTR では、パーセント記号はメタ文字として処理され、任意の数の任意の文字と一致していました。

      SIMILAR TO では、パーセント記号はメタ文字として処理され、任意の数の任意の文字と一致します。

      REGEXP と REGEXP_SUBSTR では、パーセント記号はメタ文字として処理されません。REGEXP と REGEXP_SUBSTR で任意の数の任意の文字と一致させるためには、代わりにピリオドとアスタリスク (.*) を使用します。

      ^ SIMILAR TO、REGEXP、および REGEXP_SUBSTR では、文字クラス内の脱字記号は右にある文字の否定や減法として処理され、一致しないと解釈されていました。

      SIMILAR TO では、脱字記号は右にある文字の否定や減法として処理されます。たとえば、SIMILAR TO [a-d^c] は a、b、d とは一致しますが、c とは一致しません。

      REGEXP と REGEXP_SUBSTR では、脱字記号は文字クラス内で先頭に位置する場合のみメタ文字として処理され、文字クラスの否定として解釈されます。たとえば、REGEXP [^abc] は a、b、c 以外の任意の 1 文字と一致し、REGEXP [a-d^c] は a、b、c、d、および ^ と一致します。

  • Mac OS X で dbmodenv が不要になった   以前のリリースでは、Mac OS X でグラフィカルな管理ツールを使用するためには、ユーザの $HOME/.MacOSX/environment.plist ファイルの PATH と DYLD_LIBRARY_PATH に、SQL Anywhere のバイナリとライブラリのロケーションを追加する必要がありました。そのために dbmodenv ツールを使用していました。SQL Anywhere は、$HOME/.MacOSX/environment.plist の設定に依存しなくなったため、dbmodenv を実行したり、SQL Anywhere をインストールした後にログアウトし、ログインし直す必要がなくなりました。

  • dbisqlc の OUTPUT 文から返される NULL 値のデフォルトが変更   以前のリリースでは、dbisqlc の OUTPUT 文を使用すると、文は NULL 値として (NULL) 値を返していました。このリリースでは、NULL 値のデフォルトとして OUTPUT 文は空の文字列を返します。output_nulls オプションを設定することで、NULL 値のエクスポート方法を変更できます。output_nulls オプション [Interactive SQL]を参照してください。

  • エンディアンのサポート   アップグレード後、ビッグ・エンディアン・コンピュータで作成された 11.0.1 よりも前のテキスト・インデックスは、トランケートおよびリフレッシュ (MANUAL REFRESH および AUTO REFRESH のテキスト・インデックスの場合)、または再作成 (IMMEDIATE REFRESH のインデックスの場合) が必要になります。

  • Mac OS X の管理ツール   Mac OS X の SQL Anywhere 管理ツールで、64 ビットの JDK 1.6 が使用されるようになりました。管理ツールは、Apple JDK 1.6 (Mac OS X 10.5.2 以降) でサポートされている、64 ビットのプロセッサを搭載した Intel Macintosh だけで動作します。Mac OS X 用の管理ツールを配備する場合、ネイティブ・ライブラリは $SQLANY11/System/lib64 にあります。Linux、Solaris、Mac OS X における管理ツールの配備を参照してください。

  • HTTP クライアントのチャンクされた転送コーディングの新しいデフォルト・サイズ   これまでは、HTTP クライアントから 2048 バイトを超えるデータが送信された場合、デフォルトで (またはユーザが CREATE PROCEDURE ... SET 'HTTP(CH=auto)' を指定した場合)、チャンクされた転送コーディングが試行されました。デフォルトのサイズが 2048 バイトから 8196 バイトに変更されました。また、チャンクされた転送コーディングを使用しないで要求を再発行する基準に、新しいステータス 411 Length Required が追加されました。CREATE PROCEDURE 文 [Web サービス]を参照してください。

廃止予定機能とサポート終了機能
  • COMMENT ON EXTERNAL ENVIRONMENT OBJECT object-name   この構文は COMMENT ON EXTERNAL OBJECT object-name に変更されました。以前の構文は現在でも受け入れられますが、今後のリリースではサポートされない可能性があります。COMMENT 文を参照してください。

  • ansi_substring オプションのサポート   ansi_substring オプションはバージョン 11.0.0 で非推奨になりましたが、バージョン 11.0.1 でまたサポートされるようになりました。ansi_substring オプション [互換性]を参照してください。