4

Coldfusion 2018 サーバーを Adob​​e による最新のupdate12で更新しました。サーバーを更新したらすぐに、 QoQ に ORDER BY を使用して、アプリケーションの QoQ をいくつか書きました。QoQ で order by を使用するたびに、結果データに重複する列がいくつかあります。

For my simple sample query as example, 

<cfquery name="testRead" datasource="testmssql">
        SELECT * FROM loginDetails
    </cfquery>

    <cfdump var="#testRead#" label="Main Query">

    <cfquery name='readSub' dbtype="query">
      SELECT userID, Username FROM testRead 
      ORDER BY userid DESC
    </cfquery>

    <cfdump var="#readSub#" label="QoQ Result" abort="true">

**Output:** Refer my image please.

ここに画像の説明を入力

ここでは、2 番目の QoQ ダンプに 2 つの userID 列があることがわかります。なぜここにあるのか、どこから来たのかはわかりません。? ORDER BY リストに列をもう 1 つ追加すると、その列も結果クエリで複製されます。たとえば、ORDER BY userid DESC、userName を追加すると、userID、userid、userName、username を持つクエリ ダンプ クエリが追加されます。

注: update12の前には発生していません。そして、メインクエリでは発生していません。

Any thoughts ? Please share. Thank you advance !.
4

1 に答える 1

5

これはアップデートの既知の問題であり、Adobe にバグが報告されています。コメントを追加してバグに投票することをお勧めします。

Adobe Bug Tracker - CF-4212383

ORDER BY 句を含むクエリ オブ クエリで、同じ名前の列が重複しています。

そのバグの説明:

問題の説明:

CF 2021 Update 2 を適用した後、QoQ で ORDER BY 句を使用すると、ORDER BY 句のフィールドで大文字と小文字が区別されるようになり、SELECT リストのフィールドの大文字と小文字が完全に一致しない場合、重複列が結果のクエリに追加され、同じ名前の 2 つ (またはそれ以上) の列を持つクエリが生成されます。

さらに、SELECT リストにフィールドを追加せず、代わりに * を使用する場合、ORDER BY 句のフィールドは大文字にする必要があります。そうしないと、結果のクエリに同じ名前 (大文字と小文字は異なる) の重複する列が再び表示されます。

このショーストップ動作は、CF 2021 Update 2 で導入されました。CF2021 Update 1 は期待どおりに動作します。(CF2016 も期待どおりに動作します)。

バグは CF 2021 Update 2 に言及していますが、CF 2018 Update 12 にも影響します。CF 2021 バグの複製としてクローズされた CF 2018 Update 12 について提出されたバグ CF-4212430 で確認されています。

于 2021-10-01T15:13:31.417 に答える