@@ -317,6 +317,70 @@ async fn query_is_not_null() -> Result<()> {
317317 Ok ( ( ) )
318318}
319319
320+ #[ tokio:: test]
321+ async fn query_is_true ( ) -> Result < ( ) > {
322+ let schema = Arc :: new ( Schema :: new ( vec ! [ Field :: new( "c1" , DataType :: Boolean , true ) ] ) ) ;
323+
324+ let data = RecordBatch :: try_new (
325+ schema. clone ( ) ,
326+ vec ! [ Arc :: new( BooleanArray :: from( vec![
327+ Some ( true ) ,
328+ Some ( false ) ,
329+ None ,
330+ ] ) ) ] ,
331+ ) ?;
332+
333+ let table = MemTable :: try_new ( schema, vec ! [ vec![ data] ] ) ?;
334+
335+ let ctx = SessionContext :: new ( ) ;
336+ ctx. register_table ( "test" , Arc :: new ( table) ) ?;
337+ let sql = "SELECT c1 IS TRUE as t FROM test" ;
338+ let actual = execute_to_batches ( & ctx, sql) . await ;
339+ let expected = vec ! [
340+ "+-------+" ,
341+ "| t |" ,
342+ "+-------+" ,
343+ "| true |" ,
344+ "| false |" ,
345+ "| false |" ,
346+ "+-------+" ,
347+ ] ;
348+ assert_batches_eq ! ( expected, & actual) ;
349+ Ok ( ( ) )
350+ }
351+
352+ #[ tokio:: test]
353+ async fn query_is_false ( ) -> Result < ( ) > {
354+ let schema = Arc :: new ( Schema :: new ( vec ! [ Field :: new( "c1" , DataType :: Boolean , true ) ] ) ) ;
355+
356+ let data = RecordBatch :: try_new (
357+ schema. clone ( ) ,
358+ vec ! [ Arc :: new( BooleanArray :: from( vec![
359+ Some ( true ) ,
360+ Some ( false ) ,
361+ None ,
362+ ] ) ) ] ,
363+ ) ?;
364+
365+ let table = MemTable :: try_new ( schema, vec ! [ vec![ data] ] ) ?;
366+
367+ let ctx = SessionContext :: new ( ) ;
368+ ctx. register_table ( "test" , Arc :: new ( table) ) ?;
369+ let sql = "SELECT c1 IS FALSE as f FROM test" ;
370+ let actual = execute_to_batches ( & ctx, sql) . await ;
371+ let expected = vec ! [
372+ "+-------+" ,
373+ "| f |" ,
374+ "+-------+" ,
375+ "| false |" ,
376+ "| true |" ,
377+ "| false |" ,
378+ "+-------+" ,
379+ ] ;
380+ assert_batches_eq ! ( expected, & actual) ;
381+ Ok ( ( ) )
382+ }
383+
320384#[ tokio:: test]
321385async fn query_without_from ( ) -> Result < ( ) > {
322386 // Test for SELECT <expression> without FROM.
0 commit comments