17.00 - 17.05 - テーブル演算子 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

Javaテーブル演算子の実装に対するガイドラインは、C/C++テーブル演算子の実装に対するガイドラインによく似ています。詳細については、テーブル演算子を参照してください。

Javaの観点からは、入力ストリームと出力ストリームは前もって開かれており、また関数は暗黙的クローズにより終了するため、ユーザーは入力ストリームや出力ストリームをクローズする必要はありません。ストリームは一度だけクローズできます。また、入力ストリーム全体を読み込む必要はありません。入力ストリームのデータ末尾を取得した場合には、例外とされます。

TeradataResultSet()で最初の()を呼び出すと、java.sql.ResultSetのJava文書で指定されている最初の行ではなく、最初の行の前にカーソルが巻き戻されます。したがって、TeradataResultSet.first()は、java.qul.Result.Set.beforeFirst()のようなものです。
Teradataはテーブル演算子に対応する、以下のJavaアプリケーション クラスを提供します。
  • ArrayTypeInfo
  • ColumnDefinition
  • InputInfo
  • ResultSetの拡張
  • RuntimeContract
  • StreamFormat
  • UDTBaseInfo
  • AMPInfo
  • NodeInfo

Java SQLTABLEパラメータ スタイルの中心クラスはRuntimeContractです。行処理中に使用されるコンストラクタ メソッドとイテレータ メソッドにより、クラスを定義します。コンストラクタはコントラクト関数の機能を果たします。

Javaテーブル演算子は、通常のJavaUDFと同様に、保護モードJavaサーバー内で実行します。この環境はマルチスレッド化されるため、スレッド セーフにするためにユーザー コードを記述する必要があります。

入力と出力のパフォーマンスを向上させるため、テーブル演算子に提供される行はバッファされます。