TiDB3.0.2リリースノート
発売日:2019年8月7日
TiDBバージョン:3.0.2
TiDB Ansibleバージョン:3.0.2
TiDB
- SQLオプティマイザー
- 同じテーブルがクエリで複数回発生し、論理的にクエリ結果が常に空である場合に、「スキーマに列が見つかりません」というメッセージが報告される問題を修正します#11247
- 場合によっては
TIDB_INLJヒントが正しく機能しないためにクエリプランが期待を満たさないという問題を修正します(explain select /*+ TIDB_INLJ(t1) */ t1.b, t2.a from t t1, t t2 where t1.b = t2.aなど) #11362 - クエリ結果の列名が間違っている場合がある問題を修正します(
SELECT IF(1,c,c) FROM tなど) #11379 LIKE式が暗黙的に0に変換される場合があるため、SELECT 0 LIKE 'a string'などの一部のクエリがTRUEを返す問題を修正します#11411SHOW COLUMNS FROM tbl WHERE FIELDS IN (SELECT 'a')のようなSHOWステートメントの#11459をサポートする- 集計関数の関連する列が見つからず、
outerJoinEliminationの最適化ルールが列エイリアスを正しく処理しないためにエラーが報告される問題を修正します。最適化プロセスでのエイリアス解析を改善して、最適化がより多くのクエリタイプをカバーできるようにします#11377 - Window関数で構文制限に違反した場合にエラーが報告されない問題を修正します(たとえば、フレーム定義の最後に
UNBOUNDED PRECEDINGを表示することは許可されていません) #11543 - #11535との非互換性を引き起こす
ERROR 3593 (HY000): You cannot use the window function FUNCTION_NAME in this contextエラーメッセージでFUNCTION_NAMEが大文字であるという問題を修正します。 - Window関数で実装されていない
IGNORE NULLS構文が使用されているが、エラーが報告されないという問題を修正します#11593 - オプティマイザーが時間等しい条件を正しく推定しない問題を修正します#11512
- フィードバック情報に基づくTop-N統計の更新をサポート#11507
- SQL実行エンジン
INSERT関数のパラメーター#11248にNULLが含まれている場合、戻り値がNULLにならない問題を修正します。ADMIN CHECKSUM操作#11266でパーティションテーブルをチェックすると、計算結果が間違っている可能性がある問題を修正します。- INDEXJOINがプレフィックスインデックス#11246を使用すると結果が間違っている可能性がある問題を修正します
DATE_ADD関数がマイクロ秒#11288を含む日付数で減算を行うときに、分数を誤って整列することによって結果が間違っている可能性があるという問題を修正します。DATE_ADD関数が#11325の負の数を誤って処理することによって引き起こされる誤った結果を修正しINTERVALMod(%)、またはMultiple(*)が0を返し、小数桁の数が多い(Minus(-)など) #11251 、Mod(%)、またはMultiple(*)によって返される小数桁の数がMySQLの場合と異なる問題を修正しMinus(-)select 0.000 % 0.11234500000000000000CONCATおよびCONCAT_WS関数によって返される結果の長さが#11275を超えると、警告付きのNULLが誤って返される問題を修正しmax_allowed_packet。SUBTIMEおよびADDTIME関数のパラメーターが無効な場合に警告付きのNULLが誤って返される問題を修正します#11337CONVERT_TZ関数のパラメーターが無効な場合にNULLが誤って返される問題を修正します#11359- このクエリのメモリ使用量を示すために、
EXPLAIN ANALYZEによって返される結果にMEMORY列を追加します#11418 - #11429の結果に
CARTESIAN結合を追加しEXPLAIN - floatおよびdoubleタイプの自動インクリメント列の誤ったデータを修正します#11385
- 疑似統計がダンプされたときにいくつかの情報によって引き起こされるパニックの問題を修正し#11460
nil - 定数畳み込みの最適化によって引き起こされる
SELECT … CASE WHEN … ELSE NULL ...の誤ったクエリ結果を修正します#11441 floatStrToIntStrが#11473などの入力を正しく解析しない問題を修正し+999.9999e2DATE_ADDおよびDATE_SUB関数の結果がオーバーフローした場合にNULLが返されない場合があるという問題を修正します#11476- 長い文字列を整数#11469に変換するときに文字列に無効な文字が含まれている場合、変換結果がMySQLの結果と異なる問題を修正します。
- この関数の大文字と小文字の区別が原因で、
REGEXP BINARYの関数の結果がMySQLと互換性がないという問題を修正します#11504 GRANT ROLEステートメントがCURRENT_ROLEを受け取ったときにエラーが報告される問題を修正します。REVOKE ROLEステートメントがmysql.default_role特権を正しく取り消さないという問題を修正します#11356SELECT ADDDATE('2008-01-34', -1)のようなステートメントを実行するときのIncorrect datetime value警告情報の表示形式の問題を修正し#11447た- JSONデータのfloatフィールドが整数#11534に変換されたときに結果がオーバーフローした場合、エラーメッセージが
constant … overflows bigintではなくconstant … overflows floatを報告する問題を修正します。 DATE_ADD関数がFLOAT、およびDOUBLE列パラメーターを受け取ったときに誤った型変換が原因で結果が間違っている可能性があるという問題を修正し#11527DECIMALDATE_ADD関数#11615のINTERVAL分数の符号を誤って処理することによって引き起こされる誤った結果を修正します。Rangerがプレフィックスインデックス#11565を正しく処理しないために発生したプレフィックスインデックスがインデックスルックアップ結合に含まれている場合の誤ったクエリ結果を修正します。NAME_CONSTの2番目のパラメーターが負の数#11268のときにNAME_CONST関数が実行されると、「NAME_CONSTへの引数が正しくありません」というメッセージが報告される問題を修正します。- SQLステートメントに現在時刻の計算が含まれ、値が複数回フェッチされる場合、結果がMySQLと互換性がないという問題を修正します。同じSQLステートメントの現在時刻をフェッチするときに同じ値を使用する#11394
baseExecutorのCloseがエラーを報告したときにCloseがChildExecutorに対して呼び出されない問題を修正します。この問題は、KILLのステートメントが有効にならず、ChildExecutorが閉じられていない場合に、Goroutineリークにつながる可能性があります#11576
- サーバ
LOAD DATAがCSVファイル#11250の欠落しているTIMESTAMPフィールドを処理するときに、自動追加値が現在のタイムスタンプではなく0になる問題を修正します。SHOW CREATE USERステートメントが関連する特権を正しくチェックせず、SHOW CREATE USER CURRENT_USER()によって返されるUSERとHOSTが間違っている可能性があるという問題を修正します#11229- JDBC3で
executeBatchを使用すると返される結果が間違っている可能性がある問題を修正し#11290 - TiKVサーバーのポートを変更するときにストリーミングクライアントのログ情報の印刷を減らす#11370
- ストリーミングクライアントをTiKVサーバーに再接続するロジックを最適化して、ストリーミングクライアントが長期間ブロックされないようにします#11372
INFORMATION_SCHEMA.TIDB_HOT_REGIONSにREGION_IDを#11350- PD APIからリージョン情報を取得するタイムアウト期間をキャンセルして、リージョン数が多い場合のPDタイムアウトが原因で
http://{TiDBIP}:10080/regions/hotが呼び出されたときにリージョン情報の取得が失敗しないようにします#11383 - リージョン関連のリクエストがHTTPAPI1でパーティション化されたテーブル関連のリージョンを返さない問題を修正し#11466
- ユーザーがペシミスティックロックを手動で検証するときに、操作が遅いためにロックタイムアウトが発生する可能性を減らすために、次の変更を行います#11521 :
- 悲観的ロックのデフォルトTTLを30秒から40秒に増やします
- 最大TTLを60秒から120秒に増やします
- 最初の
LockKeysのリクエストから悲観的なロック期間を計算します
- TiKVクライアントの
SendRequest機能ロジックを変更します。接続を構築できないときに待機するのではなく、すぐに別のピアに接続してみてください#11531 - リージョンキャッシュの最適化:別のストアが同じアドレスでオンラインになっているときにストアが移動された場合、削除されたストアに無効のラベルを付けて、キャッシュ内のストア情報をできるだけ早く更新します#11567
http://{TiDB_ADDRESS:TIDB_IP}/mvcc/key/{db}/{table}/{handle}によって返される結果にリージョンIDを追加し#11557- ScatterTableAPIがRangeキーをエスケープしないためにScatterTableが機能しない問題を修正します#11298
- リージョンキャッシュの最適化:コレスポンデントストアにアクセスできない場合、リージョンが存在するストアに無効のラベルを付けて、このストアへのアクセスによるクエリパフォーマンスの低下を回避します#11498
- 同じ名前のデータベースを複数回ドロップした後でも、HTTPAPIを介してテーブルスキーマを取得できるというエラーを修正します#11585
- DDL
- 長さがゼロの非文字列列にインデックスが付けられているときにエラーが発生する問題を修正します#11214
- 外部キー制約とフルテキストインデックスを使用した列の変更を禁止します(注:TiDBは、構文で外部キー制約とフルテキストインデックスを引き続きサポートします) #11274
ALTER TABLEステートメントによって変更された位置と列のデフォルト値が同時に使用されるために列のインデックスオフセットが間違っている可能性がある問題を修正します#11346- JSONファイルの解析時に発生する2つの問題を修正します。
- 自動インクリメント列が誤った結果を取得する可能性を回避するために、自動インクリメント列へのインデックスの削除を禁止します#11399
- 次の問題を修正します#11492 :
- 照合順序を明示的に指定する場合、文字セットと列の照合順序は一貫していませんが、文字セットは指定していません
ALTER TABLE … MODIFY COLUMNで指定された文字セットと照合順序の間に競合がある場合、エラーは正しく報告されません。ALTER TABLE … MODIFY COLUMNを使用して文字セットと照合を複数回指定する場合のMySQLとの非互換性
- サブクエリのトレースの詳細を
TRACEのクエリの結果に追加します#11458 - 実行
ADMIN CHECK TABLEのパフォーマンスを最適化し、実行時間を大幅に短縮します#11547 SPLIT TABLE … REGIONS/INDEXによって返された結果を追加し、TOTAL_SPLIT_REGIONとSCATTER_FINISH_RATIOに、結果#11484でタイムアウトする前に正常に分割されたリージョンの数を表示させます。ON UPDATE CURRENT_TIMESTAMPが列属性であり、float精度が指定されている場合、SHOW CREATE TABLEなどのステートメントによって表示される精度が不完全であるという問題を修正します#11591- 仮想生成列の式に別の仮想生成列#11475が含まれている場合、列のインデックス結果を正しく計算できない問題を修正します。
ALTER TABLE … ADD PARTITION …ステートメント#11581のVALUE LESS THANの後にマイナス記号を追加できない問題を修正します。
- モニター
TiKV
- Raftログが時間#5160に書き込まれない場合にTiKVがパニックになるバグを修正します
- TiKVパニック後にパニック情報がログファイルに書き込まれないバグを修正します#5198
- 悲観的なトランザクションで挿入操作が正しく実行されない可能性があるバグを修正します#5203
- INFO1への手動介入を必要としない一部のログの出力レベルを下げ#5193
- ストレージエンジンのサイズ#5200の監視の精度を向上させる
- tikv-ctl1のリージョンサイズの精度を向上させ#5195
- 悲観的ロックのデッドロック検出器のパフォーマンスを向上させる#5192
- TitanストレージエンジンのGCのパフォーマンスを向上させる#5197
PD
- スキャッターリージョンスケジューラが機能しないバグを修正します#1642
- pd- #1653でリージョンのマージ操作を実行できないバグを修正します。
- pd- #1651でtombstoneの削除操作を実行できないバグを修正します。
- 領域のスキャン操作を実行すると、キースコープと重複する領域が見つからない問題を修正します#1648
- 再試行メカニズムを追加して、メンバーがPD1に正常に追加されていることを確認し#1643
ツール
TiDB Binlog
- 起動時に構成アイテムチェック機能を追加します。これにより、Binlogサービスが停止し、無効なアイテムが見つかったときにエラーが報告されます#687
- Drainerに
node-idの構成を追加して、Drainer3で使用される特定のロジックを指定し#684
TiDB Lightning
- 2つのチェックサムが同時に実行されているときに
tikv_gc_life_timeが元の値に戻らないという問題を修正します#218 - 起動時に構成アイテムチェック機能を追加します。これにより、Binlogサービスが停止し、無効なアイテムが見つかったときにエラーが報告されます#217
TiDB Ansible
- ディスクパフォーマンスモニターが秒をミリ秒として処理するユニットエラーを修正します#840
- Spark3に
log4jの構成ファイルを追加し#841 - Binlogが有効で、KafkaまたはZooKeeperが構成されている場合に、Prometheus構成ファイルが間違った形式で生成される問題を修正します#844
- 生成されたTiDB構成ファイル#850で
pessimistic-txnの構成パラメーターが省略される問題を修正します。 - TiDBダッシュボード#853でメトリックを追加および最適化する
- TiDBダッシュボード#854に各監視項目の説明を追加します
- TiDBサマリーダッシュボードを追加して、クラスタのステータスをより適切に表示し、問題のトラブルシューティングを行います#855
- TiKVダッシュボード#857のアロケータ統計監視項目を更新します。
- ノードエクスポータのアラート式#860のユニットエラーを修正します。
- TiSparkjarパッケージを#862にアップグレードします。
- Ansibleタスク機能の説明を更新する#867
- TiDBダッシュボード#874のローカルリーダーリクエスト監視項目の式を更新します。
- 概要ダッシュボードのTiKVメモリ監視項目の表現を更新し、監視が誤って表示される問題を修正します#879
- Kafkaモード#878でBinlogサポートを削除します
rolling_update.ymlの操作を実行するときにPDがリーダーを転送できない問題を修正します#887