@@ -369,84 +369,14 @@ fn data_type_timestamp_ntz() {
369369
370370#[ test]
371371fn parse_table_time_travel ( ) {
372- let version = "2018-10-18T22:15:12.013Z" . to_string ( ) ;
373- let sql = format ! ( "SELECT 1 FROM t1 TIMESTAMP AS OF '{version}'" ) ;
374- let select = databricks ( ) . verified_only_select ( & sql) ;
375- assert_eq ! (
376- select. from,
377- vec![ TableWithJoins {
378- relation: TableFactor :: Table {
379- name: ObjectName :: from( vec![ Ident :: new( "t1" ) ] ) ,
380- alias: None ,
381- args: None ,
382- with_hints: vec![ ] ,
383- version: Some ( TableVersion :: TimestampAsOf ( Expr :: Value (
384- Value :: SingleQuotedString ( version. clone( ) ) . with_empty_span( )
385- ) ) ) ,
386- partitions: vec![ ] ,
387- with_ordinality: false ,
388- json_path: None ,
389- sample: None ,
390- index_hints: vec![ ] ,
391- } ,
392- joins: vec![ ]
393- } , ]
394- ) ;
372+ all_dialects_where ( |d| d. supports_timestamp_versioning ( ) )
373+ . verified_only_select ( "SELECT 1 FROM t1 TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'" ) ;
395374
396- let sql =
397- "SELECT 1 FROM t1 TIMESTAMP AS OF CURRENT_TIMESTAMP() - INTERVAL 12 HOURS" . to_string ( ) ;
398- let select = databricks ( ) . verified_only_select ( & sql) ;
399- assert_eq ! (
400- select. from,
401- vec![ TableWithJoins {
402- relation: TableFactor :: Table {
403- name: ObjectName :: from( vec![ Ident :: new( "t1" ) ] ) ,
404- alias: None ,
405- args: None ,
406- with_hints: vec![ ] ,
407- version: Some ( TableVersion :: TimestampAsOf ( Expr :: BinaryOp {
408- left: Box :: new( Expr :: Function ( Function {
409- name: ObjectName :: from( vec![ Ident :: new( "CURRENT_TIMESTAMP" ) ] ) ,
410- uses_odbc_syntax: false ,
411- parameters: FunctionArguments :: None ,
412- args: FunctionArguments :: List ( FunctionArgumentList {
413- duplicate_treatment: None ,
414- args: vec![ ] ,
415- clauses: vec![ ]
416- } ) ,
417- filter: None ,
418- null_treatment: None ,
419- over: None ,
420- within_group: vec![ ]
421- } ) ) ,
422- op: BinaryOperator :: Minus ,
423- right: Box :: new( Expr :: Interval ( Interval {
424- value: Box :: new( Expr :: Value ( number( "12" ) . into( ) ) ) ,
425- leading_field: Some ( DateTimeField :: Hours ) ,
426- leading_precision: None ,
427- last_field: None ,
428- fractional_seconds_precision: None ,
429- } ) )
430- } ) ) ,
431- partitions: vec![ ] ,
432- with_ordinality: false ,
433- json_path: None ,
434- sample: None ,
435- index_hints: vec![ ] ,
436- } ,
437- joins: vec![ ]
438- } , ]
375+ all_dialects_where ( |d| d. supports_timestamp_versioning ( ) ) . verified_only_select (
376+ "SELECT 1 FROM t1 TIMESTAMP AS OF CURRENT_TIMESTAMP() - INTERVAL 12 HOURS" ,
439377 ) ;
440378
441- let sql = "SELECT 1 FROM t1 FOR TIMESTAMP AS OF 'some_timestamp'" . to_string ( ) ;
442- assert ! ( databricks( ) . parse_sql_statements( & sql) . is_err( ) ) ;
443-
444- let sql = "SELECT 1 FROM t1 FOR TIMESTAMP AS OF '{version}'" . to_string ( ) ;
445- assert ! ( databricks( ) . parse_sql_statements( & sql) . is_err( ) ) ;
446-
447- let sql = "SELECT * FROM tbl AT(TIMESTAMP => '2024-12-15 00:00:00')" . to_string ( ) ;
448- assert ! ( databricks( ) . parse_sql_statements( & sql) . is_err( ) ) ;
449-
450- let sql = "SELECT * FROM tbl BEFORE(TIMESTAMP => '2024-12-15 00:00:00')" . to_string ( ) ;
451- assert ! ( databricks( ) . parse_sql_statements( & sql) . is_err( ) ) ;
379+ assert ! ( databricks( )
380+ . parse_sql_statements( "SELECT 1 FROM t1 FOR TIMESTAMP AS OF 'some_timestamp'" )
381+ . is_err( ) ) ;
452382}
0 commit comments