()
| 3657 | |
| 3658 | #[test] |
| 3659 | fn test_bigquery_dialect_overrides() -> Result<()> { |
| 3660 | let bigquery_dialect: Arc<dyn Dialect> = Arc::new(BigQueryDialect::new()); |
| 3661 | let unparser = Unparser::new(bigquery_dialect.as_ref()); |
| 3662 | |
| 3663 | // date_field_extract_style: EXTRACT instead of date_part |
| 3664 | let expr = Expr::ScalarFunction(ScalarFunction { |
| 3665 | func: Arc::new(ScalarUDF::new_from_impl( |
| 3666 | datafusion_functions::datetime::date_part::DatePartFunc::new(), |
| 3667 | )), |
| 3668 | args: vec![lit("YEAR"), col("date_col")], |
| 3669 | }); |
| 3670 | let actual = format!("{}", unparser.expr_to_sql(&expr)?); |
| 3671 | assert_eq!(actual, "EXTRACT(YEAR FROM `date_col`)"); |
| 3672 | |
| 3673 | // interval_style: SQL standard instead of PostgresVerbose |
| 3674 | let expr = interval_year_month_lit("3 months"); |
| 3675 | let actual = format!("{}", unparser.expr_to_sql(&expr)?); |
| 3676 | assert_eq!(actual, "INTERVAL '3' MONTH"); |
| 3677 | |
| 3678 | // float64_ast_dtype: FLOAT64 instead of DOUBLE |
| 3679 | let expr = cast(col("a"), DataType::Float64); |
| 3680 | let actual = format!("{}", unparser.expr_to_sql(&expr)?); |
| 3681 | assert_eq!(actual, "CAST(`a` AS FLOAT64)"); |
| 3682 | |
| 3683 | // supports_column_alias_in_table_alias: false |
| 3684 | assert!(!bigquery_dialect.supports_column_alias_in_table_alias()); |
| 3685 | |
| 3686 | // utf8_cast_dtype: STRING instead of VARCHAR |
| 3687 | let expr = cast(col("a"), DataType::Utf8); |
| 3688 | let actual = format!("{}", unparser.expr_to_sql(&expr)?); |
| 3689 | assert_eq!(actual, "CAST(`a` AS STRING)"); |
| 3690 | |
| 3691 | // large_utf8_cast_dtype: STRING instead of TEXT |
| 3692 | let expr = cast(col("a"), DataType::LargeUtf8); |
| 3693 | let actual = format!("{}", unparser.expr_to_sql(&expr)?); |
| 3694 | assert_eq!(actual, "CAST(`a` AS STRING)"); |
| 3695 | |
| 3696 | // timestamp_cast_dtype: TIMESTAMP (no WITH TIME ZONE) |
| 3697 | let expr = cast( |
| 3698 | col("a"), |
| 3699 | DataType::Timestamp(TimeUnit::Microsecond, Some("+00:00".into())), |
| 3700 | ); |
| 3701 | let actual = format!("{}", unparser.expr_to_sql(&expr)?); |
| 3702 | assert_eq!(actual, "CAST(`a` AS TIMESTAMP)"); |
| 3703 | |
| 3704 | Ok(()) |
| 3705 | } |
| 3706 | |
| 3707 | #[test] |
| 3708 | fn test_is_distinct_from() { |
nothing calls this directly
no test coverage detected
searching dependent graphs…