ユーザーガイド > TDV超並列処理エンジンの構成 > MPPエンジンの使用に関する考慮事項 > JOINの制限
 
JOINの制限
JOIN述部で使用するタイプには、特定の制限があります。次の例は、フォールバックシナリオを示しています。
 
select
p.productnumber foo
from /users/composite/admin/oracle9i/GOSALES1/PRODUCT p
where 1 in (select
c.categoryid
from /users/composite/admin/northwind/Northwind/dbo/Categories c
where c.categoryid AS DECIMAL = p.productnumber)
 
上記のクエリーに対する実行プランの実行中のフォールバックの理由は次のとおりです。
 
"Unable to retrieve result from data source "/system/runtime/DRE" during query execution. Failed query: "SELECT `R_2`.`foo` FROM `ciscodv.Q-1920181812400727`.`R_2` WHERE 1 IN (SELECT DISTINCT `R_1`.`categoryid` FROM `ciscodv.Q-1920181812400727`.`R_1` WHERE `R_1`.`categoryid` = `R_2`.`foo`)". [data-3923000] - Cause: SYSTEM ERROR: DrillRuntimeException: Join only supports implicit casts between 1. Numeric data (none of types is decimal or both of them are decimal) 2. Varchar, Varbinary data 3. Date, Timestamp data Left type: VARDECIMAL, Right type: INT. Add explicit casts to avoid this error Fragment 1:2 [Error Id: 1854e912-7999-4429-a78a-40f160e81764 on dv-spark-5148.dv.local:3304]
 
(以下に示すように)明示的なCASTを追加することにより、この状況を回避でき、クエリーはMPPエンジンの使用を開始します。
 
select
p.productnumber foo
from /users/composite/admin/oracle9i/GOSALES1/PRODUCT p
where 1 in (select
c.categoryid
from /users/composite/admin/northwind/Northwind/dbo/Categories c
where CAST(c.categoryid AS DECIMAL) = p.productnumber)