@@ -192,3 +192,122 @@ or strings containing null bytes (e.g \\u0000) |
192192
193193Any cast not listed in the previous tables is currently unsupported. We are working on adding more. See the
194194[ tracking issue] ( https://github.com/apache/datafusion-comet/issues/286 ) for more details.
195+
196+ ### Cast Support by Eval Mode
197+
198+ The following table shows cast support levels for each evaluation mode (LEGACY, ANSI, TRY).
199+
200+ <!-- BEGIN:CAST_EVAL_MODE_TABLE-->
201+ <!-- prettier-ignore-start -->
202+ | From Type | To Type | LEGACY | ANSI | TRY |
203+ | -| -| -| -| -|
204+ | boolean | byte | Compatible | Compatible | Compatible |
205+ | boolean | short | Compatible | Compatible | Compatible |
206+ | boolean | integer | Compatible | Compatible | Compatible |
207+ | boolean | long | Compatible | Compatible | Compatible |
208+ | boolean | float | Compatible | Compatible | Compatible |
209+ | boolean | double | Compatible | Compatible | Compatible |
210+ | boolean | decimal | Unsupported | Unsupported | Unsupported |
211+ | boolean | string | Compatible | Compatible | Compatible |
212+ | boolean | timestamp | Unsupported | Unsupported | Unsupported |
213+ | byte | boolean | Compatible | Compatible | Compatible |
214+ | byte | short | Compatible | Compatible | Compatible |
215+ | byte | integer | Compatible | Compatible | Compatible |
216+ | byte | long | Compatible | Compatible | Compatible |
217+ | byte | float | Compatible | Compatible | Compatible |
218+ | byte | double | Compatible | Compatible | Compatible |
219+ | byte | decimal | Compatible | Compatible | Compatible |
220+ | byte | string | Compatible | Compatible | Compatible |
221+ | byte | binary | Unsupported | Unsupported | Unsupported |
222+ | byte | timestamp | Unsupported | Unsupported | Unsupported |
223+ | short | boolean | Compatible | Compatible | Compatible |
224+ | short | byte | Compatible | Compatible | Compatible |
225+ | short | integer | Compatible | Compatible | Compatible |
226+ | short | long | Compatible | Compatible | Compatible |
227+ | short | float | Compatible | Compatible | Compatible |
228+ | short | double | Compatible | Compatible | Compatible |
229+ | short | decimal | Compatible | Compatible | Compatible |
230+ | short | string | Compatible | Compatible | Compatible |
231+ | short | binary | Unsupported | Unsupported | Unsupported |
232+ | short | timestamp | Unsupported | Unsupported | Unsupported |
233+ | integer | boolean | Compatible | Compatible | Compatible |
234+ | integer | byte | Compatible | Compatible | Compatible |
235+ | integer | short | Compatible | Compatible | Compatible |
236+ | integer | long | Compatible | Compatible | Compatible |
237+ | integer | float | Compatible | Compatible | Compatible |
238+ | integer | double | Compatible | Compatible | Compatible |
239+ | integer | decimal | Compatible | Compatible | Compatible |
240+ | integer | string | Compatible | Compatible | Compatible |
241+ | integer | binary | Unsupported | Unsupported | Unsupported |
242+ | integer | timestamp | Unsupported | Unsupported | Unsupported |
243+ | long | boolean | Compatible | Compatible | Compatible |
244+ | long | byte | Compatible | Compatible | Compatible |
245+ | long | short | Compatible | Compatible | Compatible |
246+ | long | integer | Compatible | Compatible | Compatible |
247+ | long | float | Compatible | Compatible | Compatible |
248+ | long | double | Compatible | Compatible | Compatible |
249+ | long | decimal | Compatible | Compatible | Compatible |
250+ | long | string | Compatible | Compatible | Compatible |
251+ | long | binary | Unsupported | Unsupported | Unsupported |
252+ | long | timestamp | Unsupported | Unsupported | Unsupported |
253+ | float | boolean | Compatible | Compatible | Compatible |
254+ | float | byte | Compatible | Compatible | Compatible |
255+ | float | short | Compatible | Compatible | Compatible |
256+ | float | integer | Compatible | Compatible | Compatible |
257+ | float | long | Compatible | Compatible | Compatible |
258+ | float | double | Compatible | Compatible | Compatible |
259+ | float | decimal | Incompatible | Incompatible | Incompatible |
260+ | float | string | Compatible | Compatible | Compatible |
261+ | float | timestamp | Unsupported | Unsupported | Unsupported |
262+ | double | boolean | Compatible | Compatible | Compatible |
263+ | double | byte | Compatible | Compatible | Compatible |
264+ | double | short | Compatible | Compatible | Compatible |
265+ | double | integer | Compatible | Compatible | Compatible |
266+ | double | long | Compatible | Compatible | Compatible |
267+ | double | float | Compatible | Compatible | Compatible |
268+ | double | decimal | Incompatible | Incompatible | Incompatible |
269+ | double | string | Compatible | Compatible | Compatible |
270+ | double | timestamp | Unsupported | Unsupported | Unsupported |
271+ | decimal | boolean | Compatible | Compatible | Compatible |
272+ | decimal | byte | Compatible | Compatible | Compatible |
273+ | decimal | short | Compatible | Compatible | Compatible |
274+ | decimal | integer | Compatible | Compatible | Compatible |
275+ | decimal | long | Compatible | Compatible | Compatible |
276+ | decimal | float | Compatible | Compatible | Compatible |
277+ | decimal | double | Compatible | Compatible | Compatible |
278+ | decimal | string | Compatible | Compatible | Compatible |
279+ | decimal | timestamp | Unsupported | Unsupported | Unsupported |
280+ | string | boolean | Compatible | Compatible | Compatible |
281+ | string | byte | Compatible | Compatible | Compatible |
282+ | string | short | Compatible | Compatible | Compatible |
283+ | string | integer | Compatible | Compatible | Compatible |
284+ | string | long | Compatible | Compatible | Compatible |
285+ | string | float | Compatible | Compatible | Compatible |
286+ | string | double | Compatible | Compatible | Compatible |
287+ | string | decimal | Incompatible | Incompatible | Incompatible |
288+ | string | binary | Compatible | Compatible | Compatible |
289+ | string | date | Compatible | Compatible | Compatible |
290+ | string | timestamp | Incompatible | Incompatible | Incompatible |
291+ | binary | string | Compatible | Compatible | Compatible |
292+ | date | boolean | Unsupported | Unsupported | Unsupported |
293+ | date | byte | Unsupported | Unsupported | Unsupported |
294+ | date | short | Unsupported | Unsupported | Unsupported |
295+ | date | integer | Unsupported | Unsupported | Unsupported |
296+ | date | long | Unsupported | Unsupported | Unsupported |
297+ | date | float | Unsupported | Unsupported | Unsupported |
298+ | date | double | Unsupported | Unsupported | Unsupported |
299+ | date | decimal | Unsupported | Unsupported | Unsupported |
300+ | date | string | Compatible | Compatible | Compatible |
301+ | date | timestamp | Unsupported | Unsupported | Unsupported |
302+ | timestamp | boolean | Unsupported | Unsupported | Unsupported |
303+ | timestamp | byte | Unsupported | Unsupported | Unsupported |
304+ | timestamp | short | Unsupported | Unsupported | Unsupported |
305+ | timestamp | integer | Unsupported | Unsupported | Unsupported |
306+ | timestamp | long | Compatible | Compatible | Compatible |
307+ | timestamp | float | Unsupported | Unsupported | Unsupported |
308+ | timestamp | double | Unsupported | Unsupported | Unsupported |
309+ | timestamp | decimal | Unsupported | Unsupported | Unsupported |
310+ | timestamp | string | Compatible | Compatible | Compatible |
311+ | timestamp | date | Compatible | Compatible | Compatible |
312+ <!-- prettier-ignore-end -->
313+ <!-- END:CAST_EVAL_MODE_TABLE-->
0 commit comments