in src/dialect/snowflake.rs [225:253]
fn parse_column_option(
&self,
parser: &mut Parser,
) -> Result<Option<Result<Option<ColumnOption>, ParserError>>, ParserError> {
parser.maybe_parse(|parser| {
let with = parser.parse_keyword(Keyword::WITH);
if parser.parse_keyword(Keyword::IDENTITY) {
Ok(parse_identity_property(parser)
.map(|p| Some(ColumnOption::Identity(IdentityPropertyKind::Identity(p)))))
} else if parser.parse_keyword(Keyword::AUTOINCREMENT) {
Ok(parse_identity_property(parser).map(|p| {
Some(ColumnOption::Identity(IdentityPropertyKind::Autoincrement(
p,
)))
}))
} else if parser.parse_keywords(&[Keyword::MASKING, Keyword::POLICY]) {
Ok(parse_column_policy_property(parser, with)
.map(|p| Some(ColumnOption::Policy(ColumnPolicy::MaskingPolicy(p)))))
} else if parser.parse_keywords(&[Keyword::PROJECTION, Keyword::POLICY]) {
Ok(parse_column_policy_property(parser, with)
.map(|p| Some(ColumnOption::Policy(ColumnPolicy::ProjectionPolicy(p)))))
} else if parser.parse_keywords(&[Keyword::TAG]) {
Ok(parse_column_tags(parser, with).map(|p| Some(ColumnOption::Tags(p))))
} else {
Err(ParserError::ParserError("not found match".to_string()))
}
})
}