RESULT_SCAN テーブル関数: 列名の重複に関する変更

注意

この動作変更は2023_03バンドルにあります。

バンドルの現在のステータスについては、 バンドル履歴 をご参照ください。

現在、 RESULT_SCAN 関数で処理された結果に重複する列名がある場合、関数は重複する各列名にサフィックスを付加して列名を一意にします。たとえば、2つの列名が id の場合、この関数は列名 idid_1 を持つテーブルを返します。

RESULT_SCAN 関数が重複する列名を処理する方法は以下のとおりです。

以前:

結果に重複した列名が含まれている場合、 RESULT_SCAN 関数は重複した各列名に _<n> を付加して、列名を一意にします。

この関数は、同じサフィックスを持つ列が他にある場合でも、このサフィックスを付加します。その結果、列名が重複してしまうことがあります。

例:

SELECT 1 AS a, 2 AS a_1, 3 AS a;
+---+-----+---+
| A | A_1 | A |
|---+-----+---|
| 1 |   2 | 3 |
+---+-----+---+
SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()));
+---+-----+-----+
| A | A_1 | A_1 |
|---+-----+-----|
| 1 |   2 |   3 |
+---+-----+-----+
Copy
現在:

RESULT_SCAN 関数は、次に利用可能な番号でサフィックスを付加して、列名を一意にします。

SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()));
+---+-----+-----+
| A | A_1 | A_2 |
|---+-----+-----|
| 1 |   2 |   3 |
+---+-----+-----+
Copy

参照: 1039