@@ -32,8 +32,8 @@ use sqlparser::ast::TableFactor::{Pivot, Unpivot};
3232use sqlparser::ast::*;
3333use sqlparser::dialect::{
3434 AnsiDialect, BigQueryDialect, ClickHouseDialect, DatabricksDialect, Dialect, DuckDbDialect,
35- GenericDialect, HiveDialect, MsSqlDialect, MySqlDialect, PostgreSqlDialect, RedshiftSqlDialect ,
36- SQLiteDialect, SnowflakeDialect,
35+ GenericDialect, HiveDialect, IsNotNullAlias, MsSqlDialect, MySqlDialect, PostgreSqlDialect,
36+ RedshiftSqlDialect, SQLiteDialect, SnowflakeDialect,
3737};
3838use sqlparser::keywords::{Keyword, ALL_KEYWORDS};
3939use sqlparser::parser::{Parser, ParserError, ParserOptions};
@@ -15994,7 +15994,8 @@ fn parse_not_null_unsupported() {
1599415994 // Only DuckDB and SQLite support `x NOT NULL` as an expression
1599515995 // All other dialects fail to parse.
1599615996 let sql = r#"WITH t AS (SELECT NULL AS x) SELECT x NOT NULL FROM t"#;
15997- let dialects = all_dialects_except(|d| d.supports_not_null());
15997+ let dialects =
15998+ all_dialects_except(|d| d.supports_is_not_null_alias(IsNotNullAlias::NotSpaceNull));
1599815999 let res = dialects.parse_sql_statements(sql);
1599916000 assert_eq!(
1600016001 ParserError::ParserError("Expected: end of statement, found: NULL".to_string()),
@@ -16006,7 +16007,8 @@ fn parse_not_null_unsupported() {
1600616007fn parse_not_null_supported() {
1600716008 // DuckDB and SQLite support `x NOT NULL` as an expression
1600816009 let sql = r#"WITH t AS (SELECT NULL AS x) SELECT x NOT NULL FROM t"#;
16009- let dialects = all_dialects_where(|d| d.supports_not_null());
16010+ let dialects =
16011+ all_dialects_where(|d| d.supports_is_not_null_alias(IsNotNullAlias::NotSpaceNull));
1601016012 let stmt = dialects.one_statement_parses_to(sql, sql);
1601116013 match stmt {
1601216014 Statement::Query(qry) => match *qry.body {
@@ -16026,7 +16028,7 @@ fn parse_not_null_supported() {
1602616028 quote_style: None,
1602716029 span: fake_span,
1602816030 })),
16029- one_word: false ,
16031+ with_space: true ,
1603016032 },
1603116033 );
1603216034 }
@@ -16046,7 +16048,7 @@ fn parse_notnull_unsupported() {
1604616048 // consider `NOTNULL` an alias for x.
1604716049 let sql = r#"WITH t AS (SELECT NULL AS x) SELECT x NOTNULL FROM t"#;
1604816050 let canonical = r#"WITH t AS (SELECT NULL AS x) SELECT x AS NOTNULL FROM t"#;
16049- let dialects = all_dialects_except(|d| d.supports_notnull( ));
16051+ let dialects = all_dialects_except(|d| d.supports_is_not_null_alias(IsNotNullAlias::NotNull ));
1605016052 let stmt = dialects.one_statement_parses_to(sql, canonical);
1605116053 match stmt {
1605216054 Statement::Query(qry) => match *qry.body {
@@ -16088,7 +16090,7 @@ fn parse_notnull_unsupported() {
1608816090fn parse_notnull_supported() {
1608916091 // DuckDB and SQLite support `x NOT NULL` as an expression
1609016092 let sql = r#"WITH t AS (SELECT NULL AS x) SELECT x NOTNULL FROM t"#;
16091- let dialects = all_dialects_where(|d| d.supports_notnull( ));
16093+ let dialects = all_dialects_where(|d| d.supports_is_not_null_alias(IsNotNullAlias::NotNull ));
1609216094 let stmt = dialects.one_statement_parses_to(sql, "");
1609316095 match stmt {
1609416096 Statement::Query(qry) => match *qry.body {
@@ -16108,7 +16110,7 @@ fn parse_notnull_supported() {
1610816110 quote_style: None,
1610916111 span: fake_span,
1611016112 })),
16111- one_word: true ,
16113+ with_space: false ,
1611216114 },
1611316115 );
1611416116 }
0 commit comments