15670430创建于 2020年12月28日历史提交
-- test MAXSIZE
create tablespace test_spc location '@abs_srcdir@/data/test_maxsize' maxsize '';
ERROR:  Invalid value for tablespace maxsize: ""
HINT:  Unknown tablespace size
create tablespace test_spc location '@abs_srcdir@/data/test_maxsize' maxsize '10000000000000000000000000000000000000000000000000000000';
ERROR:  Invalid value for tablespace maxsize: "10000000000000000000000000000000000000000000000000000000"
HINT:  lost valid unit
create tablespace test_spc location '@abs_srcdir@/data/test_maxsize' maxsize '10000000000000000000000000000000000000000000000000000000K';
ERROR:  Invalid value for tablespace maxsize: "10000000000000000000000000000000000000000000000000000000K"
HINT:  Value exceeds max size 9007199254740991 with unit KB
create tablespace test_spc location '@abs_srcdir@/data/test_maxsize' maxsize '10000000000000000000000000000000000000000000000000000000M';
ERROR:  Invalid value for tablespace maxsize: "10000000000000000000000000000000000000000000000000000000M"
HINT:  Value exceeds max size 8796093022207 with unit MB
create tablespace test_spc location '@abs_srcdir@/data/test_maxsize' maxsize '10000000000000000000000000000000000000000000000000000000G';
ERROR:  Invalid value for tablespace maxsize: "10000000000000000000000000000000000000000000000000000000G"
HINT:  Value exceeds max size 8589934591 with unit GB
create tablespace test_spc location '@abs_srcdir@/data/test_maxsize' maxsize '10000000000000000000000000000000000000000000000000000000T';
ERROR:  Invalid value for tablespace maxsize: "10000000000000000000000000000000000000000000000000000000T"
HINT:  Value exceeds max size 8388607 with unit TB
create tablespace test_spc location '@abs_srcdir@/data/test_maxsize' maxsize '10000000000000000000000000000000000000000000000000000000P';
ERROR:  Invalid value for tablespace maxsize: "10000000000000000000000000000000000000000000000000000000P"
HINT:  Value exceeds max size 8191 with unit PB
create tablespace test_spc location '@abs_srcdir@/data/test_maxsize' maxsize '10000000000000000000000000000000000000000000000000000000J';
ERROR:  Invalid value for tablespace maxsize: "10000000000000000000000000000000000000000000000000000000J"
HINT:  Valid units are "k/K", "m/M", "g/G", "t/T", and "p/P".
create tablespace test_spc location '@abs_srcdir@/data/test_maxsize_a' maxsize '3000';
ERROR:  Invalid value for tablespace maxsize: "3000"
HINT:  lost valid unit
create tablespace test_spc1 location '@abs_srcdir@/data/test_maxsize_b' maxsize '3000K';
create tablespace test_spc2 location '@abs_srcdir@/data/test_maxsize_c' maxsize '3000M';
create tablespace test_spc3 location '@abs_srcdir@/data/test_maxsize_d' maxsize '3000G';
create tablespace test_spc4 location '@abs_srcdir@/data/test_maxsize_e' maxsize '3000T';
create tablespace test_spc5 location '@abs_srcdir@/data/test_maxsize_f' maxsize '3000P';
DROP TABLESPACE IF EXISTS test_spc1;
DROP TABLESPACE IF EXISTS test_spc2;
DROP TABLESPACE IF EXISTS test_spc3;
DROP TABLESPACE IF EXISTS test_spc4;
DROP TABLESPACE IF EXISTS test_spc5;
\! rmdir @abs_srcdir@/data/test_maxsize_a
\! rmdir @abs_srcdir@/data/test_maxsize_b
\! rmdir @abs_srcdir@/data/test_maxsize_c
\! rmdir @abs_srcdir@/data/test_maxsize_d
\! rmdir @abs_srcdir@/data/test_maxsize_e
\! rmdir @abs_srcdir@/data/test_maxsize_f
-- problem: quota is disable when small uint64 - big uint64
create tablespace test_tblspc_10 location '@abs_srcdir@/tmp_check/test_tblspc_10' MAXSIZE '20 M';
CREATE TABLE test_case_10
(
  c_hashid int,
  c_tinyint  tinyint,
  c_smallint smallint,
  c_int integer,
  c_bigint   bigint,
  c_money    money,
  c_numeric   numeric,
  c_real      real,
  c_double    double precision,
  c_decimal   decimal,
  c_varchar   varchar,
  c_char   char(30),
  c_nvarchar2  nvarchar2,
  c_text text,
  c_timestamp   timestamp with time zone,
  c_timestamptz timestamp without time zone,
  c_date     date,
  c_time     time without time zone,
  c_timetz   time with time zone,
  c_interval  interval,
  c_tinterval   tinterval,
  c_smalldatetime   smalldatetime,
  c_bytea   bytea,
  c_boolean  boolean,
  c_inet inet,
  c_cidr cidr,
  c_bit bit(10),
  c_varbit varbit(10),
  c_oid oid
)
tablespace test_tblspc_10 distribute by replication;
CREATE TABLE test_case_11
(
  c_hashid int,
  c_tinyint  tinyint,
  c_smallint smallint,
  c_int integer,
  c_bigint   bigint,
  c_money    money,
  c_numeric   numeric,
  c_real      real,
  c_double    double precision,
  c_decimal   decimal,
  c_varchar   varchar,
  c_char   char(30),
  c_nvarchar2  nvarchar2,
  c_text text,
  c_timestamp   timestamp with time zone,
  c_timestamptz timestamp without time zone,
  c_date     date,
  c_time     time without time zone,
  c_timetz   time with time zone,
  c_interval  interval,
  c_tinterval   tinterval,
  c_smalldatetime   smalldatetime,
  c_bytea   bytea,
  c_boolean  boolean,
  c_inet inet,
  c_cidr cidr,
  c_bit bit(10),
  c_varbit varbit(10),
  c_oid oid
);
COPY test_case_11 FROM '@abs_srcdir@/data/cstore_alter_change_plus_update.dat';
INSERT INTO test_case_10 SELECT * FROM test_case_11;
ERROR:  Insufficient storage space for tablespace "test_tblspc_10"
--?.*
DROP TABLE test_case_10;
DROP TABLE test_case_11;
DROP TABLESPACE test_tblspc_10;
---
-- check pg_tablespace with different privilege
---
create tablespace tblspc_privilege location '@abs_srcdir@/tmp_check/test_tblspc_privilege';
\! @abs_bindir@/gsql -d postgres -p @portstring@ -c "\db";
--?.*
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)

create user user_tablespc_normal password 'Gauss@123';
\! @abs_bindir@/gsql -d postgres -U user_tablespc_normal -W 'Gauss@123' -p @portstring@ -c "\db";
--?.*
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)

create user user_tablespc_sysadmin sysadmin password 'Gauss@123';
\! @abs_bindir@/gsql -d postgres -U user_tablespc_sysadmin -W 'Gauss@123' -p @portstring@ -c "\db";
--?.*
--?.*
--?.*
--?.*
--?.*
--?.*
(3 rows)

drop user user_tablespc_normal;
drop user user_tablespc_sysadmin;
drop tablespace tblspc_privilege;