データタイプの命名
このトピックでは、拡張アダプターとデータソースの構成におけるデータタイプについて説明します。
TDVタイプ
拡張アダプターの場合、TDVスーパータイプは、「~」や「@」などのプレフィックス文字を削除してもリーフタイプやスーパータイプと同じ名前にならないように命名されます。たとえば、スーパータイプ「~date」は、リーフタイプ「date」と区別するために、「dates」と呼ばれるようになりました(以前は「@date」と呼ばれていました)。新しいタイプ名は、YAML構成ファイルとStudioに表示されます。
次の表は、スーパータイプ(太字)とリーフタイプのソース階層を示しています。右の列は、拡張アダプターに使用される名前を示しています。
ソース(組み込みアダプターの機能ファイル) | ターゲット(YAMLファイル) |
~any | | | | any |
| ~number | | | numbers |
| | ~whole_number | | integers |
| | | @bit | bit |
| | | @integer | integer |
| | | @smallint | smalling |
| | | @tinyint | tinyint |
| | | @bigint | bigint |
| | ~floating_point | | floats |
| | | @float | float |
| | | @real | real |
| | | @double | double |
| | | @decimal | decimal |
| | | @numeric | numeric |
| ~string | | | strings |
| | @char | | char |
| | @varchar | | varchar |
| | @longvarchar | | longvarchar |
| ~binary | | | binaries |
| | @binary | | binary |
| | @varbinary | | varbinary |
| ~date | | | dates |
| | @date | | date |
| | @time | | time |
| | @timestamp | | timestamp |
| ~lob | | | lobs |
| | @clob | | clob |
| | @blob | | blob |
| @boolean | | | boolean |
| @null | | | null |
| ~interval_year | | | year_intervals |
| | @interval_year_to_month | | interval_year_to_month |
| | @interval_year | | interval_year |
| | @interval_month | | interval_month |
| ~interval_day | | | day_intervals |
| | @interval_day | | interval_day |
| | @interval_hour | | interval_hour |
| | @interval_minute | | interval_minute |
| | @interval_second | | interval_second |
| | @interval_day_to_hour | | interval_day_to_hour |
| | @interval_day_to_minute | | interval_day_to_minute |
| | @interval_day_to_second | | interval_day_to_second |
| | @interval_hour_to_minute | | interval_hour_to_minute |
| | @interval_hour_to_second | | interval_hour_to_second |
| | @interval_minute_to_second | | interval_minute_to_second |
| @xml | | | xml |
すべてのタイプ
拡張アダプターの構成とデータソースのオーバーライドでは、TDVデータタイプとネイティブデータタイプの名前が次の領域に表示されます。
• データタイプマッピング
• 句サポート
• 演算子マッピング
• 関数マッピング
ネイティブタイプとTDVタイプは同じ名前であることがよくあります。たとえば、TDVの「date」とOracleの「date」です。組み込みアダプターの機能ファイルでは、この2つはプレフィックスを使用して区別されます。TDVスーパータイプ名は「~」で始まり(「~date」など)、TDVリーフタイプ名は「@」で始まり(「@date」など)、
ネイティブタイプ名にはプレフィックスがありません(Oracleの「date」ネイティブタイプなど)。
拡張アダプターでは、「@」および「~」プレフィックスは使用されなくなりました。ネイティブタイプとTDVタイプは、完全な単語によるプレフィックスとそれに続くドットで区別されるようになりました。
• cis.date — TDVリーフタイプ
• cis.dates — TDVスーパータイプ
• native.date — Oracleのネイティブタイプ
プレフィックスは、構成ファイルの中でTDVタイプとネイティブタイプの両方が現れる可能性がある部分、つまり関数マッピングと演算子マッピングでのみ使用することをお勧めします。たとえば、同じ関数で、ネイティブタイプとTDVタイプの両方を同じ引数の組み合わせで列挙できます。
データタイプマッピングと句サポートでは、TDVタイプまたはネイティブタイプのいずれかが要求されるため、あいまいさが発生することはなく、プレフィックスは必要ありません。
• データタイプマッピング構成セクションでは、TDVからネイティブへのマッピングとネイティブからTDVへのマッピングを別々に指定します。
• 特定の句を説明する構成項目では、サポートされていないネイティブタイプとTDVのネイティブタイプを別々に指定します。
これらのセクションでは、プレフィックスは不要であり、簡潔にするために推奨されません。
次に、データタイプマッピングと句のタイプを参照する方法の例を示します。
• date — TDVリーフタイプ
• dates — TDVスーパータイプ
• date — Oracleのネイティブタイプ
YAMLでの関数の定義
関数をSTRICTとして定義する場合は、次のようにYAMLに新しい関数エントリーを追加します。
ascii.strict:
display_name: ASCII
native_expression:
arguments:
combination1:
arguments_in_order:
- cis.numbers, cis.strings
対応する従来の機能と同様に、関数マッピングのnative_expressionプロパティは空白のままになっていることに注意してください。
関数エントリーの追加後、クエリーでstrictオプションが有効になっている場合、関数はプッシュダウンされません。
SELECT {option strict}
ascii(rid) a
FROM
<テーブル名>