@@ -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};
@@ -15980,7 +15980,8 @@ fn parse_not_null_unsupported() {
1598015980 // Only DuckDB and SQLite support `x NOT NULL` as an expression
1598115981 // All other dialects fail to parse.
1598215982 let sql = r#"WITH t AS (SELECT NULL AS x) SELECT x NOT NULL FROM t"#;
15983- let dialects = all_dialects_except(|d| d.supports_not_null());
15983+ let dialects =
15984+ all_dialects_except(|d| d.supports_is_not_null_alias(IsNotNullAlias::NotSpaceNull));
1598415985 let res = dialects.parse_sql_statements(sql);
1598515986 assert_eq!(
1598615987 ParserError::ParserError("Expected: end of statement, found: NULL".to_string()),
@@ -15992,7 +15993,8 @@ fn parse_not_null_unsupported() {
1599215993fn parse_not_null_supported() {
1599315994 // DuckDB and SQLite support `x NOT NULL` as an expression
1599415995 let sql = r#"WITH t AS (SELECT NULL AS x) SELECT x NOT NULL FROM t"#;
15995- let dialects = all_dialects_where(|d| d.supports_not_null());
15996+ let dialects =
15997+ all_dialects_where(|d| d.supports_is_not_null_alias(IsNotNullAlias::NotSpaceNull));
1599615998 let stmt = dialects.one_statement_parses_to(sql, sql);
1599715999 match stmt {
1599816000 Statement::Query(qry) => match *qry.body {
@@ -16012,7 +16014,7 @@ fn parse_not_null_supported() {
1601216014 quote_style: None,
1601316015 span: fake_span,
1601416016 })),
16015- one_word: false ,
16017+ with_space: true ,
1601616018 },
1601716019 );
1601816020 }
@@ -16032,7 +16034,7 @@ fn parse_notnull_unsupported() {
1603216034 // consider `NOTNULL` an alias for x.
1603316035 let sql = r#"WITH t AS (SELECT NULL AS x) SELECT x NOTNULL FROM t"#;
1603416036 let canonical = r#"WITH t AS (SELECT NULL AS x) SELECT x AS NOTNULL FROM t"#;
16035- let dialects = all_dialects_except(|d| d.supports_notnull( ));
16037+ let dialects = all_dialects_except(|d| d.supports_is_not_null_alias(IsNotNullAlias::NotNull ));
1603616038 let stmt = dialects.one_statement_parses_to(sql, canonical);
1603716039 match stmt {
1603816040 Statement::Query(qry) => match *qry.body {
@@ -16074,7 +16076,7 @@ fn parse_notnull_unsupported() {
1607416076fn parse_notnull_supported() {
1607516077 // DuckDB and SQLite support `x NOT NULL` as an expression
1607616078 let sql = r#"WITH t AS (SELECT NULL AS x) SELECT x NOTNULL FROM t"#;
16077- let dialects = all_dialects_where(|d| d.supports_notnull( ));
16079+ let dialects = all_dialects_where(|d| d.supports_is_not_null_alias(IsNotNullAlias::NotNull ));
1607816080 let stmt = dialects.one_statement_parses_to(sql, "");
1607916081 match stmt {
1608016082 Statement::Query(qry) => match *qry.body {
@@ -16094,7 +16096,7 @@ fn parse_notnull_supported() {
1609416096 quote_style: None,
1609516097 span: fake_span,
1609616098 })),
16097- one_word: true ,
16099+ with_space: false ,
1609816100 },
1609916101 );
1610016102 }
0 commit comments