doltgresql
doltgresql copied to clipboard
Added CREATE USER, ALTER USER, DROP USER
This adds support for CREATE USER, ALTER USER, and DROP USER. This also adds the related ROLE statements too, since the USER statements are essentially aliases for them. Next step will be to look into persistence and bats testing.
| Main | PR | |
|---|---|---|
| Total | 42090 | 42090 |
| Successful | 12431 | 12700 |
| Failures | 29659 | 29390 |
| Partial Successes[^1] | 4913 | 4894 |
| Main | PR | |
|---|---|---|
| Successful | 29.5343% | 30.1734% |
| Failures | 70.4657% | 69.8266% |
Progressions
alter_generic
QUERY: DROP ROLE IF EXISTS regress_alter_generic_user1;
QUERY: DROP ROLE IF EXISTS regress_alter_generic_user2;
QUERY: DROP ROLE IF EXISTS regress_alter_generic_user3;
QUERY: CREATE USER regress_alter_generic_user3;
QUERY: CREATE USER regress_alter_generic_user2;
QUERY: CREATE ROLE regress_alter_generic_user5 NOSUPERUSER;
QUERY: CREATE ROLE regress_alter_generic_user6;
QUERY: DROP USER regress_alter_generic_user2;
QUERY: DROP USER regress_alter_generic_user3;
alter_operator
QUERY: CREATE USER regress_alter_op_user;
QUERY: DROP USER regress_alter_op_user;
alter_table
QUERY: DROP ROLE IF EXISTS regress_alter_table_user1;
QUERY: CREATE USER regress_alter_table_user1;
QUERY: CREATE ROLE regress_test_me;
QUERY: CREATE ROLE regress_test_not_me;
QUERY: DROP ROLE regress_test_not_me;
QUERY: DROP ROLE regress_test_me;
QUERY: DROP USER regress_alter_table_user1;
cluster
QUERY: CREATE USER regress_clstr_user;
QUERY: CREATE ROLE regress_ptnowner;
QUERY: DROP ROLE regress_ptnowner;
QUERY: DROP USER regress_clstr_user;
collate.icu.utf8
QUERY: CREATE ROLE regress_test_role;
QUERY: DROP ROLE regress_test_role;
constraints
QUERY: CREATE ROLE regress_constraint_comments;
QUERY: CREATE ROLE regress_constraint_comments_noaccess;
QUERY: DROP ROLE regress_constraint_comments;
QUERY: DROP ROLE regress_constraint_comments_noaccess;
conversion
QUERY: CREATE USER regress_conversion_user WITH NOCREATEDB NOCREATEROLE;
QUERY: DROP USER regress_conversion_user;
copy2
QUERY: CREATE ROLE regress_rls_copy_user;
QUERY: CREATE ROLE regress_rls_copy_user_colperms;
QUERY: DROP ROLE regress_rls_copy_user;
QUERY: DROP ROLE regress_rls_copy_user_colperms;
create_function_sql
QUERY: CREATE USER regress_unpriv_user;
QUERY: DROP USER regress_unpriv_user;
create_index
QUERY: CREATE ROLE regress_reindexuser NOLOGIN;
QUERY: DROP ROLE regress_reindexuser;
create_operator
QUERY: CREATE ROLE regress_rol_op1;
QUERY: CREATE ROLE regress_rol_op3;
QUERY: CREATE ROLE regress_rol_op4;
QUERY: CREATE ROLE regress_rol_op5;
QUERY: CREATE ROLE regress_rol_op6;
create_procedure
QUERY: CREATE USER regress_cp_user1;
QUERY: DROP USER regress_cp_user1;
create_role
QUERY: CREATE ROLE regress_role_super SUPERUSER;
QUERY: CREATE ROLE regress_role_admin CREATEDB CREATEROLE REPLICATION BYPASSRLS;
QUERY: CREATE ROLE regress_createdb CREATEDB;
QUERY: CREATE ROLE regress_createrole CREATEROLE;
QUERY: CREATE ROLE regress_login LOGIN;
QUERY: CREATE ROLE regress_inherit INHERIT;
QUERY: CREATE ROLE regress_connection_limit CONNECTION LIMIT 5;
QUERY: CREATE ROLE regress_encrypted_password ENCRYPTED PASSWORD 'foo';
QUERY: CREATE ROLE regress_password_null PASSWORD NULL;
QUERY: CREATE ROLE regress_noiseword SYSID 12345;
QUERY: CREATE ROLE regress_plainrole;
QUERY: CREATE ROLE regress_rolecreator CREATEROLE;
QUERY: CREATE ROLE regress_tenant CREATEDB CREATEROLE LOGIN INHERIT CONNECTION LIMIT 5;
QUERY: DROP ROLE regress_plainrole;
QUERY: DROP ROLE regress_createdb;
QUERY: DROP ROLE regress_createrole;
QUERY: DROP ROLE regress_login;
QUERY: DROP ROLE regress_inherit;
QUERY: DROP ROLE regress_connection_limit;
QUERY: DROP ROLE regress_encrypted_password;
QUERY: DROP ROLE regress_password_null;
QUERY: DROP ROLE regress_noiseword;
QUERY: DROP ROLE regress_rolecreator;
create_schema
QUERY: CREATE ROLE regress_create_schema_role SUPERUSER;
QUERY: DROP ROLE regress_create_schema_role;
dependency
QUERY: CREATE USER regress_dep_user;
QUERY: CREATE USER regress_dep_user2;
QUERY: CREATE USER regress_dep_user3;
QUERY: CREATE GROUP regress_dep_group;
QUERY: CREATE USER regress_dep_user0;
QUERY: CREATE USER regress_dep_user1;
QUERY: CREATE USER regress_dep_user2;
QUERY: DROP USER regress_dep_user0;
drop_if_exists
QUERY: CREATE USER regress_test_u1;
QUERY: CREATE ROLE regress_test_r1;
QUERY: CREATE GROUP regress_test_g1;
QUERY: DROP USER IF EXISTS regress_test_u1, regress_test_u2;
QUERY: DROP ROLE IF EXISTS regress_test_r1, regress_test_r2;
QUERY: DROP GROUP IF EXISTS regress_test_g1, regress_test_g2;
equivclass
QUERY: create user regress_user_ectest;
QUERY: drop user regress_user_ectest;
event_trigger
QUERY: create role regress_evt_user;
QUERY: alter role regress_evt_user superuser;
foreign_key
QUERY: create role regress_other_partitioned_fk_owner;
QUERY: drop role regress_other_partitioned_fk_owner;
generated
QUERY: CREATE USER regress_user11;
QUERY: DROP USER regress_user11;
guc
QUERY: CREATE ROLE regress_guc_user;
QUERY: DROP ROLE regress_guc_user;
identity
QUERY: CREATE USER regress_identity_user1;
QUERY: DROP USER regress_identity_user1;
inherit
QUERY: create role regress_no_child_access;
QUERY: drop role regress_no_child_access;
insert
QUERY: create user regress_insert_other_user;
QUERY: drop role regress_insert_other_user;
QUERY: create role regress_coldesc_role;
QUERY: drop role regress_coldesc_role;
largeobject
QUERY: CREATE ROLE regress_lo_user;
QUERY: DROP ROLE regress_lo_user;
lock
QUERY: CREATE ROLE regress_rol_lock1;
QUERY: DROP ROLE regress_rol_lock1;
matview
QUERY: CREATE ROLE regress_user_mvtest;
QUERY: DROP ROLE regress_user_mvtest;
QUERY: CREATE USER regress_matview_user;
QUERY: DROP USER regress_matview_user;
merge
QUERY: CREATE USER regress_merge_privs;
QUERY: CREATE USER regress_merge_no_privs;
QUERY: DROP USER regress_merge_privs;
QUERY: DROP USER regress_merge_no_privs;
misc_functions
QUERY: CREATE ROLE regress_log_memory;
QUERY: DROP ROLE regress_log_memory;
QUERY: CREATE ROLE regress_slot_dir_funcs;
QUERY: DROP ROLE regress_slot_dir_funcs;
object_address
QUERY: DROP ROLE IF EXISTS regress_addr_user;
QUERY: CREATE USER regress_addr_user;
QUERY: DROP USER regress_addr_user;
password
QUERY: CREATE ROLE regress_passwd1 PASSWORD 'role_pwd1';
QUERY: CREATE ROLE regress_passwd2 PASSWORD 'role_pwd2';
QUERY: CREATE ROLE regress_passwd3 PASSWORD 'role_pwd3';
QUERY: CREATE ROLE regress_passwd4 PASSWORD NULL;
QUERY: ALTER ROLE regress_passwd2 PASSWORD 'foo';
QUERY: ALTER ROLE regress_passwd1 PASSWORD 'md5cd3578025fe2c3d7ed1b9a9b26238b70';
QUERY: ALTER ROLE regress_passwd3 PASSWORD 'SCRAM-SHA-256$4096:VLK4RMaQLCvNtQ==$6YtlR4t69SguDiwFvbVgVZtuz6gpJQQqUMZ7IQJK5yI=:ps75jrHeYU4lXCcXI4O8oIdJ3eO8o2jirjruw9phBTo=';
QUERY: ALTER ROLE regress_passwd4 PASSWORD 'foo';
QUERY: CREATE ROLE regress_passwd5 PASSWORD 'md5e73a4b11df52a6068f8b39f90be36023';
QUERY: CREATE ROLE regress_passwd6 PASSWORD 'SCRAM-SHA-256$1234';
QUERY: CREATE ROLE regress_passwd7 PASSWORD 'md5012345678901234567890123456789zz';
QUERY: CREATE ROLE regress_passwd8 PASSWORD 'md501234567890123456789012345678901zz';
QUERY: CREATE ROLE regress_passwd_empty PASSWORD '';
QUERY: ALTER ROLE regress_passwd_empty PASSWORD 'md585939a5ce845f1a1b620742e3c659e0a';
QUERY: ALTER ROLE regress_passwd_empty PASSWORD 'SCRAM-SHA-256$4096:hpFyHTUsSWcR7O9P$LgZFIt6Oqdo27ZFKbZ2nV+vtnYM995pDh9ca6WSi120=:qVV5NeluNfUPkwm7Vqat25RjSPLkGeoZBQs6wVv+um4=';
QUERY: CREATE ROLE regress_passwd_sha_len0 PASSWORD 'SCRAM-SHA-256$4096:A6xHKoH/494E941doaPOYg==$Ky+A30sewHIH3VHQLRN9vYsuzlgNyGNKCh37dy96Rqw=:COPdlNiIkrsacU5QoxydEuOH6e/KfiipeETb/bPw8ZI=';
QUERY: CREATE ROLE regress_passwd_sha_len1 PASSWORD 'SCRAM-SHA-256$4096:A6xHKoH/494E941doaPOYg==$Ky+A30sewHIH3VHQLRN9vYsuzlgNyGNKCh37dy96RqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=:COPdlNiIkrsacU5QoxydEuOH6e/KfiipeETb/bPw8ZI=';
QUERY: CREATE ROLE regress_passwd_sha_len2 PASSWORD 'SCRAM-SHA-256$4096:A6xHKoH/494E941doaPOYg==$Ky+A30sewHIH3VHQLRN9vYsuzlgNyGNKCh37dy96Rqw=:COPdlNiIkrsacU5QoxydEuOH6e/KfiipeETb/bPw8ZIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=';
QUERY: DROP ROLE regress_passwd1;
QUERY: DROP ROLE regress_passwd2;
QUERY: DROP ROLE regress_passwd3;
QUERY: DROP ROLE regress_passwd4;
QUERY: DROP ROLE regress_passwd5;
QUERY: DROP ROLE regress_passwd6;
QUERY: DROP ROLE regress_passwd7;
QUERY: DROP ROLE regress_passwd8;
QUERY: DROP ROLE regress_passwd_empty;
QUERY: DROP ROLE regress_passwd_sha_len0;
QUERY: DROP ROLE regress_passwd_sha_len1;
QUERY: DROP ROLE regress_passwd_sha_len2;
psql
QUERY: CREATE ROLE regress_display_role;
QUERY: DROP ROLE regress_display_role;
QUERY: create role regress_partitioning_role;
QUERY: drop role regress_partitioning_role;
publication
QUERY: CREATE ROLE regress_publication_user LOGIN SUPERUSER;
QUERY: CREATE ROLE regress_publication_user2;
QUERY: CREATE ROLE regress_publication_user_dummy LOGIN NOSUPERUSER;
QUERY: CREATE ROLE regress_publication_user3;
QUERY: DROP ROLE regress_publication_user3;
QUERY: DROP ROLE regress_publication_user, regress_publication_user2;
QUERY: DROP ROLE regress_publication_user_dummy;
regproc
QUERY: /* If objects exist, return oids */
CREATE ROLE regress_regrole_test;
QUERY: /* If objects don't exist, raise errors. */
DROP ROLE regress_regrole_test;
roleattributes
QUERY: CREATE ROLE regress_test_def_superuser;
QUERY: CREATE ROLE regress_test_superuser WITH SUPERUSER;
QUERY: ALTER ROLE regress_test_superuser WITH NOSUPERUSER;
QUERY: ALTER ROLE regress_test_superuser WITH SUPERUSER;
QUERY: CREATE ROLE regress_test_def_inherit;
QUERY: CREATE ROLE regress_test_inherit WITH NOINHERIT;
QUERY: ALTER ROLE regress_test_inherit WITH INHERIT;
QUERY: ALTER ROLE regress_test_inherit WITH NOINHERIT;
QUERY: CREATE ROLE regress_test_def_createrole;
QUERY: CREATE ROLE regress_test_createrole WITH CREATEROLE;
QUERY: ALTER ROLE regress_test_createrole WITH NOCREATEROLE;
QUERY: ALTER ROLE regress_test_createrole WITH CREATEROLE;
QUERY: CREATE ROLE regress_test_def_createdb;
QUERY: CREATE ROLE regress_test_createdb WITH CREATEDB;
QUERY: ALTER ROLE regress_test_createdb WITH NOCREATEDB;
QUERY: ALTER ROLE regress_test_createdb WITH CREATEDB;
QUERY: CREATE ROLE regress_test_def_role_canlogin;
QUERY: CREATE ROLE regress_test_role_canlogin WITH LOGIN;
QUERY: ALTER ROLE regress_test_role_canlogin WITH NOLOGIN;
QUERY: ALTER ROLE regress_test_role_canlogin WITH LOGIN;
QUERY: CREATE USER regress_test_def_user_canlogin;
QUERY: CREATE USER regress_test_user_canlogin WITH NOLOGIN;
QUERY: ALTER USER regress_test_user_canlogin WITH LOGIN;
QUERY: ALTER USER regress_test_user_canlogin WITH NOLOGIN;
QUERY: CREATE ROLE regress_test_def_replication;
QUERY: CREATE ROLE regress_test_replication WITH REPLICATION;
QUERY: ALTER ROLE regress_test_replication WITH NOREPLICATION;
QUERY: ALTER ROLE regress_test_replication WITH REPLICATION;
QUERY: CREATE ROLE regress_test_def_bypassrls;
QUERY: CREATE ROLE regress_test_bypassrls WITH BYPASSRLS;
QUERY: ALTER ROLE regress_test_bypassrls WITH NOBYPASSRLS;
QUERY: ALTER ROLE regress_test_bypassrls WITH BYPASSRLS;
QUERY: DROP ROLE regress_test_def_superuser;
QUERY: DROP ROLE regress_test_superuser;
QUERY: DROP ROLE regress_test_def_inherit;
QUERY: DROP ROLE regress_test_inherit;
QUERY: DROP ROLE regress_test_def_createrole;
QUERY: DROP ROLE regress_test_createrole;
QUERY: DROP ROLE regress_test_def_createdb;
QUERY: DROP ROLE regress_test_createdb;
QUERY: DROP ROLE regress_test_def_role_canlogin;
QUERY: DROP ROLE regress_test_role_canlogin;
QUERY: DROP USER regress_test_def_user_canlogin;
QUERY: DROP USER regress_test_user_canlogin;
QUERY: DROP ROLE regress_test_def_replication;
QUERY: DROP ROLE regress_test_replication;
QUERY: DROP ROLE regress_test_def_bypassrls;
QUERY: DROP ROLE regress_test_bypassrls;
rowsecurity
QUERY: DROP USER IF EXISTS regress_rls_alice;
QUERY: DROP USER IF EXISTS regress_rls_bob;
QUERY: DROP USER IF EXISTS regress_rls_carol;
QUERY: DROP USER IF EXISTS regress_rls_dave;
QUERY: DROP USER IF EXISTS regress_rls_exempt_user;
QUERY: DROP ROLE IF EXISTS regress_rls_group1;
QUERY: DROP ROLE IF EXISTS regress_rls_group2;
QUERY: CREATE USER regress_rls_alice NOLOGIN;
QUERY: CREATE USER regress_rls_bob NOLOGIN;
QUERY: CREATE USER regress_rls_carol NOLOGIN;
QUERY: CREATE USER regress_rls_dave NOLOGIN;
QUERY: CREATE USER regress_rls_exempt_user BYPASSRLS NOLOGIN;
QUERY: CREATE ROLE regress_rls_group1 NOLOGIN;
QUERY: CREATE ROLE regress_rls_group2 NOLOGIN;
QUERY: CREATE ROLE regress_rls_eve;
QUERY: CREATE ROLE regress_rls_frank;
QUERY: CREATE ROLE regress_rls_dob_role1;
QUERY: CREATE ROLE regress_rls_dob_role2;
QUERY: DROP USER regress_rls_dob_role1;
QUERY: DROP USER regress_rls_dob_role2;
QUERY: DROP USER regress_rls_alice;
QUERY: DROP USER regress_rls_bob;
QUERY: DROP USER regress_rls_carol;
QUERY: DROP USER regress_rls_dave;
QUERY: DROP USER regress_rls_exempt_user;
QUERY: DROP ROLE regress_rls_group1;
QUERY: DROP ROLE regress_rls_group2;
rules
QUERY: CREATE USER regress_rule_user1;
QUERY: DROP USER regress_rule_user1;
security_label
QUERY: DROP ROLE IF EXISTS regress_seclabel_user1;
QUERY: DROP ROLE IF EXISTS regress_seclabel_user2;
QUERY: CREATE USER regress_seclabel_user1 WITH CREATEROLE;
QUERY: CREATE USER regress_seclabel_user2;
QUERY: DROP USER regress_seclabel_user1;
QUERY: DROP USER regress_seclabel_user2;
select_into
QUERY: CREATE USER regress_selinto_user;
QUERY: DROP USER regress_selinto_user;
select_parallel
QUERY: drop role if exists regress_parallel_worker;
QUERY: create role regress_parallel_worker;
QUERY: drop role regress_parallel_worker;
select_views
QUERY: CREATE ROLE regress_alice;
QUERY: DROP ROLE regress_alice;
sequence
QUERY: CREATE USER regress_seq_user;
QUERY: DROP USER regress_seq_user;
stats_ext
QUERY: CREATE ROLE regress_stats_ext;
QUERY: DROP ROLE regress_stats_ext;
QUERY: create role regress_stats_ext nosuperuser;
QUERY: drop user regress_stats_ext;
QUERY: CREATE USER regress_stats_user1;
QUERY: DROP USER regress_stats_user1;
subscription
QUERY: CREATE ROLE regress_subscription_user LOGIN SUPERUSER;
QUERY: CREATE ROLE regress_subscription_user2;
QUERY: CREATE ROLE regress_subscription_user_dummy LOGIN NOSUPERUSER;
QUERY: ALTER ROLE regress_subscription_user2 SUPERUSER;
QUERY: DROP ROLE regress_subscription_user;
QUERY: DROP ROLE regress_subscription_user2;
QUERY: DROP ROLE regress_subscription_user_dummy;
tablespace
QUERY: CREATE ROLE regress_tablespace_user1 login;
QUERY: CREATE ROLE regress_tablespace_user2 login;
QUERY: DROP ROLE regress_tablespace_user1;
QUERY: DROP ROLE regress_tablespace_user2;
updatable_views
QUERY: CREATE USER regress_view_user1;
QUERY: CREATE USER regress_view_user2;
QUERY: CREATE USER regress_view_user3;
QUERY: DROP USER regress_view_user1;
QUERY: DROP USER regress_view_user2;
QUERY: DROP USER regress_view_user3;
QUERY: create user regress_view_user1;
QUERY: create user regress_view_user2;
QUERY: drop user regress_view_user1;
QUERY: drop user regress_view_user2;
update
QUERY: CREATE USER regress_range_parted_user;
QUERY: DROP USER regress_range_parted_user;
vacuum
QUERY: CREATE ROLE regress_vacuum;
QUERY: DROP ROLE regress_vacuum;
[^1]: These are tests that we're marking as Successful, however they do not match the expected output in some way. This is due to small differences, such as different wording on the error messages, or the column names being incorrect while the data itself is correct.