つい最近、DTP プロジェクトで SQL クエリ パーサー クラスを発見しました。これは素晴らしい (そしてユニークな) プロジェクトのようです。
私の問題は、大規模なシステムで使用される非常に複雑な SQL フラグメントをいくつか分析してマージできるかどうかを確認する必要があることです。正確な分析を実行し、これらのフラグメントの一部を結合してパフォーマンスを向上させることができるかどうかを判断するには、スマートで有能なパーサーが必要です。実行する必要がある分析は既に把握しています。over()
ただし、特定の db2 OLAP 関数 ( 、など)を使用するため、パーサーはそのままではこれらのフラグメントを解析できませんpartition by
。コードに db2 プラグインを含める必要があります。
これはどのように行われますか?クラス ( org.eclipse.datatools.sqltools.parsers.sql.query.db2.*
) をどこにも見つけることができず、それらを登録する方法もわかりません (手動で実行しようとしていますが、もちろん適切なクラスが見つかりません)。
これは私が現在行っていることであり、間違っていることはわかっていますが、それに関するドキュメントは見つかりませんでした:
SQLQueryParserManagerProvider provider = SQLQueryParserManagerProvider
.getInstance();
provider.registerParserManager(
"org.eclipse.datatools.sqltools.parsers.sql.query.db2",
"DB2 UDB", null, null);
SQLQueryParserManager parserManager = SQLQueryParserManagerProvider
.getInstance().getParserManager("DB2 UDB", null);
DB2 を解析するための適切なパーサーを取得する方法を教えてください。
編集:おそらく正しい質問は、db2固有のプロバイダーが正しく登録されていることを確認するにはどうすればよいですか? 正しいクラス名は何ですか?