@@ -18479,9 +18479,10 @@ fn parse_create_index_different_using_positions() {
1847918479
1848018480#[test]
1848118481fn test_parse_alter_user() {
18482- verified_stmt("ALTER USER u1");
18483- verified_stmt("ALTER USER IF EXISTS u1");
18484- let stmt = verified_stmt("ALTER USER IF EXISTS u1 RENAME TO u2");
18482+ let dialects = all_dialects_except(|d| d.supports_alter_user_as_alter_role());
18483+ dialects.verified_stmt("ALTER USER u1");
18484+ dialects.verified_stmt("ALTER USER IF EXISTS u1");
18485+ let stmt = dialects.verified_stmt("ALTER USER IF EXISTS u1 RENAME TO u2");
1848518486 match stmt {
1848618487 Statement::AlterUser(alter) => {
1848718488 assert!(alter.if_exists);
@@ -18490,35 +18491,35 @@ fn test_parse_alter_user() {
1849018491 }
1849118492 _ => unreachable!(),
1849218493 }
18493- verified_stmt("ALTER USER IF EXISTS u1 RESET PASSWORD");
18494- verified_stmt("ALTER USER IF EXISTS u1 ABORT ALL QUERIES");
18495- verified_stmt(
18494+ dialects. verified_stmt("ALTER USER IF EXISTS u1 RESET PASSWORD");
18495+ dialects. verified_stmt("ALTER USER IF EXISTS u1 ABORT ALL QUERIES");
18496+ dialects. verified_stmt(
1849618497 "ALTER USER IF EXISTS u1 ADD DELEGATED AUTHORIZATION OF ROLE r1 TO SECURITY INTEGRATION i1",
1849718498 );
18498- verified_stmt("ALTER USER IF EXISTS u1 REMOVE DELEGATED AUTHORIZATION OF ROLE r1 FROM SECURITY INTEGRATION i1");
18499- verified_stmt(
18499+ dialects. verified_stmt("ALTER USER IF EXISTS u1 REMOVE DELEGATED AUTHORIZATION OF ROLE r1 FROM SECURITY INTEGRATION i1");
18500+ dialects. verified_stmt(
1850018501 "ALTER USER IF EXISTS u1 REMOVE DELEGATED AUTHORIZATIONS FROM SECURITY INTEGRATION i1",
1850118502 );
18502- verified_stmt("ALTER USER IF EXISTS u1 ENROLL MFA");
18503- let stmt = verified_stmt("ALTER USER u1 SET DEFAULT_MFA_METHOD PASSKEY");
18503+ dialects. verified_stmt("ALTER USER IF EXISTS u1 ENROLL MFA");
18504+ let stmt = dialects. verified_stmt("ALTER USER u1 SET DEFAULT_MFA_METHOD PASSKEY");
1850418505 match stmt {
1850518506 Statement::AlterUser(alter) => {
1850618507 assert_eq!(alter.set_default_mfa_method, Some(MfaMethodKind::PassKey))
1850718508 }
1850818509 _ => unreachable!(),
1850918510 }
18510- verified_stmt("ALTER USER u1 SET DEFAULT_MFA_METHOD TOTP");
18511- verified_stmt("ALTER USER u1 SET DEFAULT_MFA_METHOD DUO");
18512- let stmt = verified_stmt("ALTER USER u1 REMOVE MFA METHOD PASSKEY");
18511+ dialects. verified_stmt("ALTER USER u1 SET DEFAULT_MFA_METHOD TOTP");
18512+ dialects. verified_stmt("ALTER USER u1 SET DEFAULT_MFA_METHOD DUO");
18513+ let stmt = dialects. verified_stmt("ALTER USER u1 REMOVE MFA METHOD PASSKEY");
1851318514 match stmt {
1851418515 Statement::AlterUser(alter) => {
1851518516 assert_eq!(alter.remove_mfa_method, Some(MfaMethodKind::PassKey))
1851618517 }
1851718518 _ => unreachable!(),
1851818519 }
18519- verified_stmt("ALTER USER u1 REMOVE MFA METHOD TOTP");
18520- verified_stmt("ALTER USER u1 REMOVE MFA METHOD DUO");
18521- let stmt = verified_stmt("ALTER USER u1 MODIFY MFA METHOD PASSKEY SET COMMENT 'abc'");
18520+ dialects. verified_stmt("ALTER USER u1 REMOVE MFA METHOD TOTP");
18521+ dialects. verified_stmt("ALTER USER u1 REMOVE MFA METHOD DUO");
18522+ let stmt = dialects. verified_stmt("ALTER USER u1 MODIFY MFA METHOD PASSKEY SET COMMENT 'abc'");
1852218523 match stmt {
1852318524 Statement::AlterUser(alter) => {
1852418525 assert_eq!(
@@ -18531,10 +18532,10 @@ fn test_parse_alter_user() {
1853118532 }
1853218533 _ => unreachable!(),
1853318534 }
18534- verified_stmt("ALTER USER u1 ADD MFA METHOD OTP");
18535- verified_stmt("ALTER USER u1 ADD MFA METHOD OTP COUNT = 8");
18535+ dialects. verified_stmt("ALTER USER u1 ADD MFA METHOD OTP");
18536+ dialects. verified_stmt("ALTER USER u1 ADD MFA METHOD OTP COUNT = 8");
1853618537
18537- let stmt = verified_stmt("ALTER USER u1 SET AUTHENTICATION POLICY p1");
18538+ let stmt = dialects. verified_stmt("ALTER USER u1 SET AUTHENTICATION POLICY p1");
1853818539 match stmt {
1853918540 Statement::AlterUser(alter) => {
1854018541 assert_eq!(
@@ -18547,19 +18548,19 @@ fn test_parse_alter_user() {
1854718548 }
1854818549 _ => unreachable!(),
1854918550 }
18550- verified_stmt("ALTER USER u1 SET PASSWORD POLICY p1");
18551- verified_stmt("ALTER USER u1 SET SESSION POLICY p1");
18552- let stmt = verified_stmt("ALTER USER u1 UNSET AUTHENTICATION POLICY");
18551+ dialects. verified_stmt("ALTER USER u1 SET PASSWORD POLICY p1");
18552+ dialects. verified_stmt("ALTER USER u1 SET SESSION POLICY p1");
18553+ let stmt = dialects. verified_stmt("ALTER USER u1 UNSET AUTHENTICATION POLICY");
1855318554 match stmt {
1855418555 Statement::AlterUser(alter) => {
1855518556 assert_eq!(alter.unset_policy, Some(UserPolicyKind::Authentication));
1855618557 }
1855718558 _ => unreachable!(),
1855818559 }
18559- verified_stmt("ALTER USER u1 UNSET PASSWORD POLICY");
18560- verified_stmt("ALTER USER u1 UNSET SESSION POLICY");
18560+ dialects. verified_stmt("ALTER USER u1 UNSET PASSWORD POLICY");
18561+ dialects. verified_stmt("ALTER USER u1 UNSET SESSION POLICY");
1856118562
18562- let stmt = verified_stmt("ALTER USER u1 SET TAG k1='v1'");
18563+ let stmt = dialects. verified_stmt("ALTER USER u1 SET TAG k1='v1'");
1856318564 match stmt {
1856418565 Statement::AlterUser(alter) => {
1856518566 assert_eq!(
@@ -18574,23 +18575,25 @@ fn test_parse_alter_user() {
1857418575 }
1857518576 _ => unreachable!(),
1857618577 }
18577- verified_stmt("ALTER USER u1 SET TAG k1='v1', k2='v2'");
18578- let stmt = verified_stmt("ALTER USER u1 UNSET TAG k1");
18578+ dialects. verified_stmt("ALTER USER u1 SET TAG k1='v1', k2='v2'");
18579+ let stmt = dialects. verified_stmt("ALTER USER u1 UNSET TAG k1");
1857918580 match stmt {
1858018581 Statement::AlterUser(alter) => {
1858118582 assert_eq!(alter.unset_tag, vec!["k1".to_string()]);
1858218583 }
1858318584 _ => unreachable!(),
1858418585 }
18585- verified_stmt("ALTER USER u1 UNSET TAG k1, k2, k3");
18586+ dialects. verified_stmt("ALTER USER u1 UNSET TAG k1, k2, k3");
1858618587
18587- let dialects = all_dialects_where(|d| d.supports_boolean_literals());
18588- dialects.one_statement_parses_to(
18588+ let bool_dialects = all_dialects_where(|d| {
18589+ d.supports_boolean_literals() && !d.supports_alter_user_as_alter_role()
18590+ });
18591+ bool_dialects.one_statement_parses_to(
1858918592 "ALTER USER u1 SET PASSWORD='secret', MUST_CHANGE_PASSWORD=TRUE, MINS_TO_UNLOCK=10",
1859018593 "ALTER USER u1 SET PASSWORD='secret', MUST_CHANGE_PASSWORD=true, MINS_TO_UNLOCK=10",
1859118594 );
1859218595
18593- let stmt = dialects .verified_stmt(
18596+ let stmt = bool_dialects .verified_stmt(
1859418597 "ALTER USER u1 SET PASSWORD='secret', MUST_CHANGE_PASSWORD=true, MINS_TO_UNLOCK=10",
1859518598 );
1859618599 match stmt {
@@ -18625,16 +18628,16 @@ fn test_parse_alter_user() {
1862518628 _ => unreachable!(),
1862618629 }
1862718630
18628- let stmt = verified_stmt("ALTER USER u1 UNSET PASSWORD");
18631+ let stmt = dialects. verified_stmt("ALTER USER u1 UNSET PASSWORD");
1862918632 match stmt {
1863018633 Statement::AlterUser(alter) => {
1863118634 assert_eq!(alter.unset_props, vec!["PASSWORD".to_string()]);
1863218635 }
1863318636 _ => unreachable!(),
1863418637 }
18635- verified_stmt("ALTER USER u1 UNSET PASSWORD, MUST_CHANGE_PASSWORD, MINS_TO_UNLOCK");
18638+ dialects. verified_stmt("ALTER USER u1 UNSET PASSWORD, MUST_CHANGE_PASSWORD, MINS_TO_UNLOCK");
1863618639
18637- let stmt = verified_stmt("ALTER USER u1 SET DEFAULT_SECONDARY_ROLES=('ALL')");
18640+ let stmt = dialects. verified_stmt("ALTER USER u1 SET DEFAULT_SECONDARY_ROLES=('ALL')");
1863818641 match stmt {
1863918642 Statement::AlterUser(alter) => {
1864018643 assert_eq!(
@@ -18650,11 +18653,11 @@ fn test_parse_alter_user() {
1865018653 }
1865118654 _ => unreachable!(),
1865218655 }
18653- verified_stmt("ALTER USER u1 SET DEFAULT_SECONDARY_ROLES=()");
18654- verified_stmt("ALTER USER u1 SET DEFAULT_SECONDARY_ROLES=('R1', 'R2', 'R3')");
18655- verified_stmt("ALTER USER u1 SET PASSWORD='secret', DEFAULT_SECONDARY_ROLES=('ALL')");
18656- verified_stmt("ALTER USER u1 SET DEFAULT_SECONDARY_ROLES=('ALL'), PASSWORD='secret'");
18657- let stmt = verified_stmt(
18656+ dialects. verified_stmt("ALTER USER u1 SET DEFAULT_SECONDARY_ROLES=()");
18657+ dialects. verified_stmt("ALTER USER u1 SET DEFAULT_SECONDARY_ROLES=('R1', 'R2', 'R3')");
18658+ dialects. verified_stmt("ALTER USER u1 SET PASSWORD='secret', DEFAULT_SECONDARY_ROLES=('ALL')");
18659+ dialects. verified_stmt("ALTER USER u1 SET DEFAULT_SECONDARY_ROLES=('ALL'), PASSWORD='secret'");
18660+ let stmt = dialects. verified_stmt(
1865818661 "ALTER USER u1 SET WORKLOAD_IDENTITY=(TYPE=AWS, ARN='arn:aws:iam::123456789:r1/')",
1865918662 );
1866018663 match stmt {
@@ -18688,13 +18691,13 @@ fn test_parse_alter_user() {
1868818691 }
1868918692 _ => unreachable!(),
1869018693 }
18691- verified_stmt("ALTER USER u1 SET DEFAULT_SECONDARY_ROLES=('ALL'), PASSWORD='secret', WORKLOAD_IDENTITY=(TYPE=AWS, ARN='arn:aws:iam::123456789:r1/')");
18694+ dialects. verified_stmt("ALTER USER u1 SET DEFAULT_SECONDARY_ROLES=('ALL'), PASSWORD='secret', WORKLOAD_IDENTITY=(TYPE=AWS, ARN='arn:aws:iam::123456789:r1/')");
1869218695
18693- verified_stmt("ALTER USER u1 PASSWORD 'AAA'");
18694- verified_stmt("ALTER USER u1 ENCRYPTED PASSWORD 'AAA'");
18695- verified_stmt("ALTER USER u1 PASSWORD NULL");
18696+ dialects. verified_stmt("ALTER USER u1 PASSWORD 'AAA'");
18697+ dialects. verified_stmt("ALTER USER u1 ENCRYPTED PASSWORD 'AAA'");
18698+ dialects. verified_stmt("ALTER USER u1 PASSWORD NULL");
1869618699
18697- one_statement_parses_to(
18700+ dialects. one_statement_parses_to(
1869818701 "ALTER USER u1 WITH PASSWORD 'AAA'",
1869918702 "ALTER USER u1 PASSWORD 'AAA'",
1870018703 );
0 commit comments