興味深いlib_mysqludf_pregの動作

このMySQL自体でPCREを使用できるようにするMySQL用のサードパーティライブラリがあります。 このアドレスmysqludf.com/lib_mysqludf_pregにあります



その機能については説明しませんが、1つの興味深い点のみに焦点を当て、問題の検索に約30分費やしました。



PREG_CAPTUREを使用してデータベースから選択を行うプロジェクトは省略します。正規表現はデータベースの列の値であり、チェックする文字列はクエリに置換される特定の文字列です。



合計クエリは次のようになります。



ISNULL以外のtable1から何かを選択します(CONCAT( '/'、 `field1`、 '/')、 'somemystring')



それは正常に動作し、データを発行するか、しません。 field1の値の1つに構文的に正しくない未コンパイルの正規表現が現れるまで。



そのような式の例: * something_regexp



次に、PREG_CAPTURE関数はエラーを生成せず、不正な値だけでなく、正規表現のすべての値に対して一致がまったくなかったかのように、単に何も返しません。



ライブラリの開発者が作業を計画していた可能性がありますが、これにより特定の問題が発生します。 注意してください。



All Articles