Skip to content

Commit 7c3b22c

Browse files
test: Add datafusion.format.* configs test coverage (#21355)
## Which issue does this PR close? - Closes #21354. ## Rationale for this change Currently, DataFusion supports 9 `datafusion.format.*` configs but their test coverage seem to be missed so this issue aims to add comprehensive test coverage for them. This is follow-up to recent `config framework` improvements: #20372 and #20816. ## What changes are included in this PR? New test coverage is being added for `datafusion.format.*` configs. ## Are these changes tested? Yes, new test coverage is being added for `datafusion.format.*` configs. ## Are there any user-facing changes? No
1 parent 94c7bc2 commit 7c3b22c

1 file changed

Lines changed: 198 additions & 0 deletions

File tree

datafusion/sqllogictest/test_files/set_variable.slt

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,204 @@ RESET datafusion.execution.batches_size
379379
statement error DataFusion error: Invalid or Unsupported Configuration: Config field is a scalar usize and does not have nested field "bar"
380380
RESET datafusion.execution.batch_size.bar
381381

382+
#############################################
383+
## Test datafusion.format.* configurations ##
384+
#############################################
385+
query T
386+
SELECT name FROM information_schema.df_settings WHERE name LIKE 'datafusion.format.%' ORDER BY name
387+
----
388+
datafusion.format.date_format
389+
datafusion.format.datetime_format
390+
datafusion.format.duration_format
391+
datafusion.format.null
392+
datafusion.format.safe
393+
datafusion.format.time_format
394+
datafusion.format.timestamp_format
395+
datafusion.format.timestamp_tz_format
396+
datafusion.format.types_info
397+
398+
# date_format: SET / SHOW / RESET / SHOW
399+
statement ok
400+
SET datafusion.format.date_format = '%d-%m-%Y'
401+
402+
query TT
403+
SHOW datafusion.format.date_format
404+
----
405+
datafusion.format.date_format %d-%m-%Y
406+
407+
statement ok
408+
RESET datafusion.format.date_format
409+
410+
query TT
411+
SHOW datafusion.format.date_format
412+
----
413+
datafusion.format.date_format %Y-%m-%d
414+
415+
# datetime_format
416+
statement ok
417+
SET datafusion.format.datetime_format = '%Y/%m/%d %H:%M:%S'
418+
419+
query TT
420+
SHOW datafusion.format.datetime_format
421+
----
422+
datafusion.format.datetime_format %Y/%m/%d %H:%M:%S
423+
424+
statement ok
425+
RESET datafusion.format.datetime_format
426+
427+
query TT
428+
SHOW datafusion.format.datetime_format
429+
----
430+
datafusion.format.datetime_format %Y-%m-%dT%H:%M:%S%.f
431+
432+
# timestamp_format
433+
statement ok
434+
SET datafusion.format.timestamp_format = '%FT%H:%M:%S'
435+
436+
query TT
437+
SHOW datafusion.format.timestamp_format
438+
----
439+
datafusion.format.timestamp_format %FT%H:%M:%S
440+
441+
statement ok
442+
RESET datafusion.format.timestamp_format
443+
444+
query TT
445+
SHOW datafusion.format.timestamp_format
446+
----
447+
datafusion.format.timestamp_format %Y-%m-%dT%H:%M:%S%.f
448+
449+
# timestamp_tz_format (default NULL)
450+
statement ok
451+
SET datafusion.format.timestamp_tz_format = '%Y-%m-%d %H:%M:%S %z'
452+
453+
query TT
454+
SHOW datafusion.format.timestamp_tz_format
455+
----
456+
datafusion.format.timestamp_tz_format %Y-%m-%d %H:%M:%S %z
457+
458+
statement ok
459+
RESET datafusion.format.timestamp_tz_format
460+
461+
query TT
462+
SHOW datafusion.format.timestamp_tz_format
463+
----
464+
datafusion.format.timestamp_tz_format NULL
465+
466+
# time_format
467+
statement ok
468+
SET datafusion.format.time_format = '%H-%M-%S'
469+
470+
query TT
471+
SHOW datafusion.format.time_format
472+
----
473+
datafusion.format.time_format %H-%M-%S
474+
475+
statement ok
476+
RESET datafusion.format.time_format
477+
478+
query TT
479+
SHOW datafusion.format.time_format
480+
----
481+
datafusion.format.time_format %H:%M:%S%.f
482+
483+
# duration_format: values are normalized to lowercase; ISO8601 and pretty are valid
484+
statement ok
485+
SET datafusion.format.duration_format = ISO8601
486+
487+
query TT
488+
SHOW datafusion.format.duration_format
489+
----
490+
datafusion.format.duration_format iso8601
491+
492+
statement ok
493+
SET datafusion.format.duration_format to 'PRETTY'
494+
495+
query TT
496+
SHOW datafusion.format.duration_format
497+
----
498+
datafusion.format.duration_format pretty
499+
500+
statement ok
501+
RESET datafusion.format.duration_format
502+
503+
query TT
504+
SHOW datafusion.format.duration_format
505+
----
506+
datafusion.format.duration_format pretty
507+
508+
# null display string
509+
statement ok
510+
SET datafusion.format.null = 'NuLL'
511+
512+
query TT
513+
SHOW datafusion.format.null
514+
----
515+
datafusion.format.null NuLL
516+
517+
statement ok
518+
RESET datafusion.format.null
519+
520+
query TT
521+
SHOW datafusion.format.null
522+
----
523+
datafusion.format.null (empty)
524+
525+
# safe
526+
statement ok
527+
SET datafusion.format.safe = false
528+
529+
query TT
530+
SHOW datafusion.format.safe
531+
----
532+
datafusion.format.safe false
533+
534+
statement ok
535+
RESET datafusion.format.safe
536+
537+
query TT
538+
SHOW datafusion.format.safe
539+
----
540+
datafusion.format.safe true
541+
542+
# types_info
543+
statement ok
544+
SET datafusion.format.types_info to true
545+
546+
query TT
547+
SHOW datafusion.format.types_info
548+
----
549+
datafusion.format.types_info true
550+
551+
statement ok
552+
RESET datafusion.format.types_info
553+
554+
query TT
555+
SHOW datafusion.format.types_info
556+
----
557+
datafusion.format.types_info false
558+
559+
# Case-insensitive variable name
560+
statement ok
561+
SET datafusion.FORMAT.DATE_FORMAT = '%m/%d/%Y'
562+
563+
query TT
564+
SHOW datafusion.format.date_format
565+
----
566+
datafusion.format.date_format %m/%d/%Y
567+
568+
statement ok
569+
RESET datafusion.format.date_format
570+
571+
query TT
572+
SHOW datafusion.format.date_format
573+
----
574+
datafusion.format.date_format %Y-%m-%d
575+
576+
# Invalid format option name
577+
statement error DataFusion error: Invalid or Unsupported Configuration: Config value "unknown_option" not found on FormatOptions
578+
SET datafusion.format.unknown_option = true
579+
382580
############
383581
## Test runtime configuration variables
384582
############

0 commit comments

Comments
 (0)