mirror of https://github.com/citusdata/citus.git
Adds tests for create and drop database
parent
a708a7810d
commit
236ea1d1b9
|
@ -312,6 +312,11 @@ PreprocessAlterDatabaseSetStmt(Node *node, const char *queryString,
|
|||
List *
|
||||
PostprocessCreateDatabaseStmt(Node *node, const char *queryString)
|
||||
{
|
||||
if (EnableCreateDatabasePropagation)
|
||||
{
|
||||
EnsureCoordinator();
|
||||
}
|
||||
|
||||
if (!EnableCreateDatabasePropagation || !ShouldPropagate())
|
||||
{
|
||||
return NIL;
|
||||
|
|
|
@ -274,6 +274,13 @@ AppendCreatedbStmt(StringInfo buf, CreatedbStmt *stmt)
|
|||
appendStringInfo(buf, " ICU_LOCALE %s",
|
||||
quote_literal_cstr(icuLocale));
|
||||
}
|
||||
else if (strcmp(option->defname, "icu_rules") == 0)
|
||||
{
|
||||
char *icuLocale = defGetString(option);
|
||||
|
||||
appendStringInfo(buf, " ICU_RULES %s",
|
||||
quote_literal_cstr(icuLocale));
|
||||
}
|
||||
else if (strcmp(option->defname, "locale_provider") == 0)
|
||||
{
|
||||
char *localeProvider = defGetString(option);
|
||||
|
@ -323,10 +330,6 @@ AppendCreatedbStmt(StringInfo buf, CreatedbStmt *stmt)
|
|||
quote_literal_cstr(strategy));
|
||||
}
|
||||
#endif
|
||||
else if (strcmp(option->defname, "location") == 0)
|
||||
{
|
||||
/* deprecated option */
|
||||
}
|
||||
else
|
||||
{
|
||||
ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR),
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
set citus.enable_create_database_propagation=on;
|
||||
create user create_drop_db_test_user;
|
||||
CREATE DATABASE mydatabase
|
||||
WITH TEMPLATE = 'template0'
|
||||
OWNER = create_drop_db_test_user
|
||||
CONNECTION LIMIT = 10
|
||||
ENCODING = 'UTF8'
|
||||
STRATEGY = 'wal_log'
|
||||
LOCALE = 'en_US.UTF-8'
|
||||
LC_COLLATE = 'en_US.UTF-8'
|
||||
LC_CTYPE = 'en_US.UTF-8'
|
||||
ICU_LOCALE = 'en_US.UTF-8'
|
||||
LOCALE_PROVIDER = 'icu'
|
||||
COLLATION_VERSION = '1.0'
|
||||
TABLESPACE = test_tablespace
|
||||
ALLOW_CONNECTIONS = true
|
||||
IS_TEMPLATE = false
|
||||
OID = 966345;
|
||||
SELECT pd.datname , pd.datdba, pd.encoding, pd.datlocprovider,
|
||||
pd.datistemplate, pd.datallowconn, pd.datconnlimit,
|
||||
pd.datcollate , pd. datctype , pd.daticulocale, pd.datcollversion,
|
||||
pd.datacl, rolname AS database_owner, pa.rolname AS database_owner, pt.spcname AS tablespace
|
||||
FROM pg_database pd
|
||||
JOIN pg_authid pa ON pd.datdba = pa.oid
|
||||
join pg_tablespace pt on pd.dattablespace = pt.oid
|
||||
WHERE datname = 'mydatabase';
|
||||
datname | datdba | encoding | datlocprovider | datistemplate | datallowconn | datconnlimit | datcollate | datctype | daticulocale | datcollversion | datacl | database_owner | database_owner | tablespace
|
||||
---------------------------------------------------------------------
|
||||
mydatabase | 17343 | 6 | i | f | t | 10 | en_US.UTF-8 | en_US.UTF-8 | en_US.UTF-8 | 1.0 | | create_drop_db_test_user | create_drop_db_test_user | test_tablespace
|
||||
(1 row)
|
||||
|
||||
drop database mydatabase;
|
||||
SELECT pd.datname , pd.datdba, pd.encoding, pd.datlocprovider,
|
||||
pd.datistemplate, pd.datallowconn, pd.datconnlimit,
|
||||
pd.datcollate , pd. datctype , pd.daticulocale, pd.datcollversion,
|
||||
pd.datacl, rolname AS database_owner, pa.rolname AS database_owner, pt.spcname AS tablespace
|
||||
FROM pg_database pd
|
||||
JOIN pg_authid pa ON pd.datdba = pa.oid
|
||||
join pg_tablespace pt on pd.dattablespace = pt.oid
|
||||
WHERE datname = 'mydatabase';
|
||||
datname | datdba | encoding | datlocprovider | datistemplate | datallowconn | datconnlimit | datcollate | datctype | daticulocale | datcollversion | datacl | database_owner | database_owner | tablespace
|
||||
---------------------------------------------------------------------
|
||||
(0 rows)
|
||||
|
||||
drop user create_drop_db_test_user;
|
||||
set citus.enable_create_database_propagation=off;
|
|
@ -52,6 +52,7 @@ test: multi_read_from_secondaries
|
|||
|
||||
test: grant_on_database_propagation
|
||||
test: alter_database_propagation
|
||||
test: create_drop_database_propagation
|
||||
|
||||
# ----------
|
||||
# multi_citus_tools tests utility functions written for citus tools
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
set citus.enable_create_database_propagation=on;
|
||||
create user create_drop_db_test_user;
|
||||
|
||||
|
||||
CREATE DATABASE mydatabase
|
||||
WITH TEMPLATE = 'template0'
|
||||
OWNER = create_drop_db_test_user
|
||||
CONNECTION LIMIT = 10
|
||||
ENCODING = 'UTF8'
|
||||
STRATEGY = 'wal_log'
|
||||
LOCALE = 'en_US.UTF-8'
|
||||
LC_COLLATE = 'en_US.UTF-8'
|
||||
LC_CTYPE = 'en_US.UTF-8'
|
||||
ICU_LOCALE = 'en_US.UTF-8'
|
||||
LOCALE_PROVIDER = 'icu'
|
||||
COLLATION_VERSION = '1.0'
|
||||
TABLESPACE = test_tablespace
|
||||
ALLOW_CONNECTIONS = true
|
||||
IS_TEMPLATE = false
|
||||
OID = 966345;
|
||||
|
||||
SELECT pd.datname , pd.datdba, pd.encoding, pd.datlocprovider,
|
||||
pd.datistemplate, pd.datallowconn, pd.datconnlimit,
|
||||
pd.datcollate , pd. datctype , pd.daticulocale, pd.datcollversion,
|
||||
pd.datacl, rolname AS database_owner, pa.rolname AS database_owner, pt.spcname AS tablespace
|
||||
FROM pg_database pd
|
||||
JOIN pg_authid pa ON pd.datdba = pa.oid
|
||||
join pg_tablespace pt on pd.dattablespace = pt.oid
|
||||
WHERE datname = 'mydatabase';
|
||||
|
||||
drop database mydatabase;
|
||||
|
||||
SELECT pd.datname , pd.datdba, pd.encoding, pd.datlocprovider,
|
||||
pd.datistemplate, pd.datallowconn, pd.datconnlimit,
|
||||
pd.datcollate , pd. datctype , pd.daticulocale, pd.datcollversion,
|
||||
pd.datacl, rolname AS database_owner, pa.rolname AS database_owner, pt.spcname AS tablespace
|
||||
FROM pg_database pd
|
||||
JOIN pg_authid pa ON pd.datdba = pa.oid
|
||||
join pg_tablespace pt on pd.dattablespace = pt.oid
|
||||
WHERE datname = 'mydatabase';
|
||||
|
||||
drop user create_drop_db_test_user;
|
||||
set citus.enable_create_database_propagation=off;
|
||||
|
||||
|
Loading…
Reference in New Issue