クラス TableFilter_INDEX
java.lang.Object
org.opengion.hayabusa.db.AbstractTableFilter
org.opengion.plugin.table.TableFilter_INDEX
- すべての実装されたインタフェース:
TableFilter
- 直系の既知のサブクラス:
TableFilter_INDEX_DERBY
,TableFilter_INDEX_FIREBIRD
,TableFilter_INDEX_HSQLDB
,TableFilter_INDEX_MYSQL
,TableFilter_INDEX_ORACLE
,TableFilter_INDEX_POSTGRES
,TableFilter_INDEX_SQLSERVER
TableFilter_INDEX は、TableUpda インターフェースを継承した、DBTableModel 処理用の
実装クラスです。
ここでは、インデックス一覧の検索結果より、GF07 のインデックスカラム定義テーブルから
必要な情報を取得し、インデックス作成スクリプトを作成します。
出力ファイルは、テーブル名+"C.sql" という命名規則で作成します。
検索では、(SYSTEM_ID,TBLSYU,TABLE_NAME,TABLE_LABEL,INDEX_NAME,NAME_JA,INDTYPE,TABLESPACE_NAME,INITIAL_EXTENT)
の項目を取得する必要があります。
6.1.0.0 (2014/12/26) より、NEXT_EXTENT は使用しなくなりました。
パラメータは、tableFilterタグの keys, vals にそれぞれ記述するか、BODY 部にCSS形式で記述します。
【パラメータ】
{
DIR : {@BASE_DIR}/sql/install/02_INDEX ; 出力ファイルの基準フォルダ(必須)
XML : false ; XML出力を行うかどうか[true/false]を指定します(初期値:false)。
DROP: false ; INDEX構文の前に、DROP構文を出力するかどうか[true/false]を指定します(初期値:false)。
}
- 変更履歴:
- 5.6.6.0 (2013/07/05) keys の整合性チェックを追加
- 形式サンプル:
- ●形式: select SYSTEM_ID,TBLSYU,TABLE_NAME,TABLE_LABEL,INDEX_NAME,NAME_JA,INDTYPE,TABLESPACE_NAME,INITIAL_EXTENT from GF07 ① <og:tableFilter classId="INDEX" keys="DIR,XML" vals="{@BASE_DIR}/sql/install/02_INDEX,false" /> ② <og:tableFilter classId="INDEX" > { DIR : {@BASE_DIR}/sql/install/02_INDEX ; XML : false ; DROP: false ; } </og:tableFilter>
- 導入されたバージョン:
- JDK1.1,
-
フィールドの概要
フィールド修飾子とタイプフィールド説明protected static final int
データのアクセス用の配列番号 4protected static final int
データのアクセス用の配列番号 6protected static final int
データのアクセス用の配列番号 8protected static final int
データのアクセス用の配列番号 0protected static final int
データのアクセス用の配列番号 3protected static final int
データのアクセス用の配列番号 2protected static final int
データのアクセス用の配列番号 7protected static final int
データのアクセス用の配列番号 1クラスから継承されたフィールド org.opengion.hayabusa.db.AbstractTableFilter
BUFFER_MIDDLE, CR, EXEC_END_TAG, EXEC_EXISTS_0_TAG, EXEC_START_TAG, execEndTag, execExistsSQL, isXml, XML_END_TAG, XML_START_TAG
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明execute()
DBTableModel処理を実行します。protected String
makeDropLine
(int[] clmNo, String[] data) インデックス削除の構文を、作成します。protected String
makeEndLine
(int[] clmNo, String[] data) 定義の最後の部分の処理を実行します。protected String
makeHeadLine
(int[] clmNo, String[] data) ヘッダー部分の処理を実行します。protected String
makeIndexClmStr
(String clm, String useLen, String seqNo) インデックスを作成するための文字列を返します。protected String
makeLineList
(int[] clmNo, String[] data, String clms) インデックス作成の処理を実行します。クラスから継承されたメソッド org.opengion.hayabusa.db.AbstractTableFilter
getDbid, getDBTableModel, getErrorCode, getErrorMessage, getKeys, getModifyType, getParameterRows, getResource, getReturnMap, getSql, getTableColumnNo, getTransaction, getValue, getViewMarker, initSet, isDebug, makeErrorMessage, setDbid, setDBTableModel, setDebug, setKeysVals, setModifyType, setParameterRows, setParamMap, setResource, setSql, setTransaction, setValue, setViewMarker
-
フィールド詳細
-
SYSTEM_ID
データのアクセス用の配列番号 0- 関連項目:
-
TBLSYU
データのアクセス用の配列番号 1- 関連項目:
-
TABLE_NAME
データのアクセス用の配列番号 2- 関連項目:
-
TABLE_LABEL
データのアクセス用の配列番号 3- 関連項目:
-
INDEX_NAME
データのアクセス用の配列番号 4- 関連項目:
-
INDTYPE
データのアクセス用の配列番号 6- 関連項目:
-
TABLESPACE_NAME
データのアクセス用の配列番号 7- 関連項目:
-
INITIAL_EXTENT
データのアクセス用の配列番号 8- 関連項目:
-
-
コンストラクタの詳細
-
TableFilter_INDEX
public TableFilter_INDEX()デフォルトコンストラクター- 変更履歴:
- 6.4.1.1 (2016/01/16) keysMap を、サブクラスから設定させるように変更。
-
-
メソッドの詳細
-
execute
DBTableModel処理を実行します。- 戻り値:
- 実行結果のテーブルモデル
- 変更履歴:
- 3.8.7.0 (2006/12/15) アクセスログ取得の為,ApplicationInfoオブジェクトを設定, 4.0.0.0 (2007/11/28) メソッドの戻り値をチェックします。, 4.3.7.0 (2009/06/01) XML出力機能追加, 5.1.1.0 (2009/12/01) XML_START_TAG に、tableName をセットします。, 5.1.9.0 (2010/08/01) Transaction 対応, 5.5.2.6 (2012/05/25) protected変数を、private化したため、getterメソッドで取得するように変更, 5.6.9.2 (2013/10/18) INDEXを作成する前に、削除構文を入れるかどうかを指定。, 6.0.2.3 (2014/10/10) EXEC_END_TAG を追加。キャッシュします。, 6.0.2.3 (2014/10/10) isDrop=false の場合、まとめDropファイル(AllDropC.xml)を作成します。, 6.5.0.1 (2016/10/21) ErrorMessage をまとめるのと、直接 Throwable を渡します。, 7.3.0.0 (2021/01/06) SEQNO がマイナスの場合、カラムに DESC を付ける(逆順カラム)
-
makeHeadLine
ヘッダー部分の処理を実行します。- パラメータ:
clmNo
- カラム番号配列data
- 1行分のデータ配列- 戻り値:
- ヘッダー部分の文字列
- 変更履歴:
- 5.6.6.0 (2013/07/05) FixLengthData の簡易コンストラクタを使用
- このメソッドは、nullを返しません
-
makeLineList
インデックス作成の処理を実行します。- パラメータ:
clmNo
- カラム番号配列data
- 1行分のデータ配列clms
- カラム名(CSV形式)- 戻り値:
- 作成された1行分の文字列
- 変更履歴:
- 5.3.8.0 (2011/08/01) プライマリキー対応, 5.6.9.2 (2013/10/18) INDTYPE で、その他ではなく、2:通常 で判断する。, 6.4.0.5 (2016/01/09) INDTYPE が 9:未使用 の場合の処理を追加。, 6.4.4.1 (2016/03/18) StringBuilderの代わりに、OgBuilderを使用する。
- このメソッドは、nullを返しません
-
makeEndLine
定義の最後の部分の処理を実行します。 6.1.0.0 (2014/12/26) より、 1.TABLESPACE_NAME を指定しない場合は、TABLESPACE 句を出力しません。 2.INITIAL_EXTENT を 0 で指定した場合は、STORAGE 句を出力しません。 3.NEXT と PCTINCREASE は、出力しません。- パラメータ:
clmNo
- カラム番号配列data
- 1行分のデータ配列- 戻り値:
- 定義の最後の部分
- 変更履歴:
- 5.3.9.0 (2011/09/01) プライマリキー対応2, 6.0.2.3 (2014/10/10) isXml で、CR + EXEC_END_TAG のキャッシュ(execEndTag)を利用します。, 6.1.0.0 (2014/12/26) TABLESPACE_NAME,INITIAL_EXTENT が未設定の場合、設定しません。, 6.4.4.1 (2016/03/18) StringBuilderの代わりに、OgBuilderを使用する。
- このメソッドは、nullを返しません
-
makeDropLine
インデックス削除の構文を、作成します。- パラメータ:
clmNo
- カラム番号配列data
- 1行分のデータ配列- 戻り値:
- 作成された1行分の文字列
- 変更履歴:
- 5.6.9.2 (2013/10/18) 新規作成, 6.0.2.3 (2014/10/10) isXml で、CR + EXEC_END_TAG のキャッシュ(execEndTag)を利用します。, 6.4.4.1 (2016/03/18) StringBuilderの代わりに、OgBuilderを使用する。
- このメソッドは、nullを返しません
-
makeIndexClmStr
インデックスを作成するための文字列を返します。 通常、カラム名をそのまま返します。 7.3.0.0 (2021/01/06) seqNoがマイナスの場合は、カラム名に DESC を付けて逆インデックスにします。 ※ ORACLEの場合、逆インデックスはバグがあったり、正インデックスで自動判断するそうなので、 基本的には使わない方が良いそうです。 ※ FIREBERD には、カラムごとの逆インデックスは定義できません。 エラーチェックは入れていませんので、ご注意ください。 ※ MySQL は、8.0で採用されています。それ以前のバージョンでは動作しません。 ※ MySQL の 500バイト以上のカラムのインデックス制限が解除されているかどうかは、未調査です。- パラメータ:
clm
- カラム名useLen
- カラムのバイト数seqNo
- カラム順(マイナスの場合は、逆順)…DERBY以外には使用しないことにします。- 戻り値:
- インデックスカラムの文字列
- 関連項目:
- 変更履歴:
- 7.3.0.0 (2021/01/06) SEQNO がマイナスの場合、カラムに DESC を付ける(逆順カラム)
-