!1791 修复pg_get_tabledef()导出自生成列定义的问题
Merge pull request !1791 from 仲夏十三/dolphin
This commit is contained in:
@ -1582,6 +1582,7 @@ static int get_table_attribute(
|
||||
SysScanDesc adscan;
|
||||
HeapTuple tup = NULL;
|
||||
bool isnull = false;
|
||||
char generatedCol = '\0';
|
||||
|
||||
attrdefDesc = heap_open(AttrDefaultRelationId, AccessShareLock);
|
||||
|
||||
@ -1596,8 +1597,18 @@ static int get_table_attribute(
|
||||
|
||||
Datum txt = DirectFunctionCall2(pg_get_expr, val, ObjectIdGetDatum(tableoid));
|
||||
|
||||
if (attrdef->adnum == att_tup->attnum)
|
||||
appendStringInfo(buf, " DEFAULT %s", TextDatumGetCString(txt));
|
||||
if (attrdef->adnum == att_tup->attnum) {
|
||||
val = fastgetattr(tup, Anum_pg_attrdef_adgencol, attrdefDesc->rd_att, &isnull);
|
||||
if (!isnull) {
|
||||
generatedCol = DatumGetChar(val);
|
||||
}
|
||||
if (generatedCol == ATTRIBUTE_GENERATED_STORED) {
|
||||
appendStringInfo(buf, " GENERATED ALWAYS AS (%s) STORED", TextDatumGetCString(txt));
|
||||
} else {
|
||||
appendStringInfo(buf, " DEFAULT %s", TextDatumGetCString(txt));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
systable_endscan(adscan);
|
||||
@ -2960,7 +2971,7 @@ Datum pg_get_indexdef_for_dump(PG_FUNCTION_ARGS)
|
||||
bool dumpSchemaOnly = PG_GETARG_BOOL(1);
|
||||
|
||||
PG_RETURN_TEXT_P(string_to_text(pg_get_indexdef_worker(indexrelid, 0, NULL, false, true, 0, dumpSchemaOnly,
|
||||
true, false)));
|
||||
true, true)));
|
||||
}
|
||||
|
||||
Datum pg_get_indexdef_ext(PG_FUNCTION_ARGS)
|
||||
@ -3015,10 +3026,12 @@ static void AppendOnePartitionIndex(Oid indexRelId, Oid partOid, bool showTblSpc
|
||||
}
|
||||
|
||||
if (isSub) {
|
||||
appendStringInfo(buf, "\n ");
|
||||
appendStringInfo(buf, "\n ");
|
||||
appendStringInfo(buf, "SUBPARTITION %s", quote_identifier(partIdxTuple->relname.data));
|
||||
} else {
|
||||
appendStringInfo(buf, "PARTITION %s", quote_identifier(partIdxTuple->relname.data));
|
||||
}
|
||||
|
||||
appendStringInfo(buf, "PARTITION %s", quote_identifier(partIdxTuple->relname.data));
|
||||
if (showTblSpc && OidIsValid(partIdxTuple->reltablespace)) {
|
||||
char *tblspacName = get_tablespace_name(partIdxTuple->reltablespace);
|
||||
if (tblspacName != NULL)
|
||||
@ -3078,31 +3091,47 @@ static void pg_get_indexdef_partitions(Oid indexrelid, Form_pg_index idxrec, boo
|
||||
}
|
||||
|
||||
List *partList = NIL;
|
||||
ListCell *lc = NULL;
|
||||
ListCell *lc1 = NULL;
|
||||
ListCell *lc2 = NULL;
|
||||
bool isFirst = true;
|
||||
if (isSub) {
|
||||
/* reserve this code, oneday we will support it */
|
||||
partList = RelationGetSubPartitionOidList(rel);
|
||||
} else {
|
||||
partList = relationGetPartitionOidList(rel);
|
||||
}
|
||||
|
||||
if (isSub) {
|
||||
appendStringInfo(buf, "\n");
|
||||
}
|
||||
appendStringInfoChar(buf, '(');
|
||||
|
||||
foreach (lc, partList) {
|
||||
Oid partOid = DatumGetObjectId(lfirst(lc));
|
||||
AppendOnePartitionIndex(indexrelid, partOid, showTblSpc, &isFirst, buf, isSub);
|
||||
}
|
||||
if (isSub) {
|
||||
int i = 0;
|
||||
partList = RelationGetSubPartitionOidListList(rel);
|
||||
int partListLen = list_length(partList);
|
||||
appendStringInfo(buf, "\n");
|
||||
foreach (lc1, partList) {
|
||||
appendStringInfo(buf, " PARTITION partition_name(");
|
||||
foreach (lc2, (List*)lfirst(lc1)) {
|
||||
Oid partOid = DatumGetObjectId(lfirst(lc2));
|
||||
AppendOnePartitionIndex(indexrelid, partOid, showTblSpc, &isFirst, buf, isSub);
|
||||
}
|
||||
appendStringInfo(buf, "\n )");
|
||||
if (i != partListLen - 1) {
|
||||
appendStringInfo(buf, ",\n");
|
||||
}
|
||||
isFirst = true;
|
||||
i++;
|
||||
}
|
||||
appendStringInfo(buf, "\n");
|
||||
} else {
|
||||
partList = relationGetPartitionOidList(rel);
|
||||
foreach (lc1, partList) {
|
||||
Oid partOid = DatumGetObjectId(lfirst(lc1));
|
||||
AppendOnePartitionIndex(indexrelid, partOid, showTblSpc, &isFirst, buf, isSub);
|
||||
}
|
||||
}
|
||||
|
||||
appendStringInfo(buf, ") ");
|
||||
|
||||
heap_close(rel, NoLock);
|
||||
releasePartitionOidList(&partList);
|
||||
if (isSub) {
|
||||
ReleaseSubPartitionOidList(&partList);
|
||||
} else {
|
||||
releasePartitionOidList(&partList);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@ -449,106 +449,145 @@ create unique index list_hash_2_idx1 on list_hash_2(col_2, col_3, col_4) local;
|
||||
create index list_hash_2_idx2 on list_hash_2(col_3, col_1) local;
|
||||
create index list_hash_2_idx3 on list_hash_2(col_4) global;
|
||||
select * from pg_get_tabledef('list_hash_2');
|
||||
pg_get_tabledef
|
||||
---------------------------------------------------------------------------------------------
|
||||
SET search_path = test_get_table_def; +
|
||||
CREATE TABLE list_hash_2 ( +
|
||||
col_1 integer NOT NULL, +
|
||||
col_2 integer, +
|
||||
col_3 character varying(30), +
|
||||
col_4 integer +
|
||||
) +
|
||||
WITH (orientation=row, compression=no) +
|
||||
PARTITION BY LIST (col_2) SUBPARTITION BY HASH (col_3) +
|
||||
( +
|
||||
PARTITION p_list_1 VALUES (-1,-2,-3,-4,-5,-6,-7,-8,-9,-10) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_hash_1_1 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_1_2 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_1_3 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_2 VALUES (1,2,3,4,5,6,7,8,9,10) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_list_2_subpartdefault1 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_3 VALUES (11,12,13,14,15,16,17,18,19,20) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_hash_3_1 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_3_2 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_4 VALUES (21,22,23,24,25,26,27,28,29,30) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_hash_4_1 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_4_2 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_4_3 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_4_4 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_4_5 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_5 VALUES (31,32,33,34,35,36,37,38,39,40) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_list_5_subpartdefault1 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_6 VALUES (41,42,43,44,45,46,47,48,49,50) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_hash_6_1 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_6_2 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_6_3 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_6_4 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_6_5 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_7 VALUES (DEFAULT) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_list_7_subpartdefault1 TABLESPACE pg_default +
|
||||
) +
|
||||
) +
|
||||
ENABLE ROW MOVEMENT; +
|
||||
CREATE INDEX list_hash_2_idx3 ON list_hash_2 USING btree (col_4) TABLESPACE pg_default; +
|
||||
CREATE INDEX list_hash_2_idx2 ON list_hash_2 USING btree (col_3, col_1) LOCAL +
|
||||
( +
|
||||
PARTITION p_list_7_subpartdefault1_col_3_col_1_idx, +
|
||||
PARTITION p_hash_6_5_col_3_col_1_idx, +
|
||||
PARTITION p_hash_6_4_col_3_col_1_idx, +
|
||||
PARTITION p_hash_6_3_col_3_col_1_idx, +
|
||||
PARTITION p_hash_6_2_col_3_col_1_idx, +
|
||||
PARTITION p_hash_6_1_col_3_col_1_idx, +
|
||||
PARTITION p_list_5_subpartdefault1_col_3_col_1_idx, +
|
||||
PARTITION p_hash_4_5_col_3_col_1_idx, +
|
||||
PARTITION p_hash_4_4_col_3_col_1_idx, +
|
||||
PARTITION p_hash_4_3_col_3_col_1_idx, +
|
||||
PARTITION p_hash_4_2_col_3_col_1_idx, +
|
||||
PARTITION p_hash_4_1_col_3_col_1_idx, +
|
||||
PARTITION p_hash_3_2_col_3_col_1_idx, +
|
||||
PARTITION p_hash_3_1_col_3_col_1_idx, +
|
||||
PARTITION p_list_2_subpartdefault1_col_3_col_1_idx, +
|
||||
PARTITION p_hash_1_3_col_3_col_1_idx, +
|
||||
PARTITION p_hash_1_2_col_3_col_1_idx, +
|
||||
PARTITION p_hash_1_1_col_3_col_1_idx +
|
||||
) TABLESPACE pg_default; +
|
||||
CREATE UNIQUE INDEX list_hash_2_idx1 ON list_hash_2 USING btree (col_2, col_3, col_4) LOCAL+
|
||||
( +
|
||||
PARTITION p_list_7_subpartdefault1_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_6_5_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_6_4_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_6_3_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_6_2_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_6_1_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_list_5_subpartdefault1_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_4_5_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_4_4_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_4_3_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_4_2_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_4_1_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_3_2_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_3_1_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_list_2_subpartdefault1_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_1_3_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_1_2_col_2_col_3_col_4_idx, +
|
||||
PARTITION p_hash_1_1_col_2_col_3_col_4_idx +
|
||||
) TABLESPACE pg_default; +
|
||||
ALTER TABLE list_hash_2 ADD CONSTRAINT list_hash_2_col_3_tableoid_key UNIQUE (col_3); +
|
||||
pg_get_tabledef
|
||||
----------------------------------------------------------------------------------------------
|
||||
SET search_path = test_get_table_def; +
|
||||
CREATE TABLE list_hash_2 ( +
|
||||
col_1 integer NOT NULL, +
|
||||
col_2 integer, +
|
||||
col_3 character varying(30), +
|
||||
col_4 integer +
|
||||
) +
|
||||
WITH (orientation=row, compression=no) +
|
||||
PARTITION BY LIST (col_2) SUBPARTITION BY HASH (col_3) +
|
||||
( +
|
||||
PARTITION p_list_1 VALUES (-1,-2,-3,-4,-5,-6,-7,-8,-9,-10) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_hash_1_1 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_1_2 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_1_3 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_2 VALUES (1,2,3,4,5,6,7,8,9,10) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_list_2_subpartdefault1 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_3 VALUES (11,12,13,14,15,16,17,18,19,20) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_hash_3_1 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_3_2 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_4 VALUES (21,22,23,24,25,26,27,28,29,30) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_hash_4_1 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_4_2 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_4_3 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_4_4 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_4_5 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_5 VALUES (31,32,33,34,35,36,37,38,39,40) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_list_5_subpartdefault1 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_6 VALUES (41,42,43,44,45,46,47,48,49,50) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_hash_6_1 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_6_2 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_6_3 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_6_4 TABLESPACE pg_default, +
|
||||
SUBPARTITION p_hash_6_5 TABLESPACE pg_default +
|
||||
), +
|
||||
PARTITION p_list_7 VALUES (DEFAULT) TABLESPACE pg_default +
|
||||
( +
|
||||
SUBPARTITION p_list_7_subpartdefault1 TABLESPACE pg_default +
|
||||
) +
|
||||
) +
|
||||
ENABLE ROW MOVEMENT; +
|
||||
CREATE INDEX list_hash_2_idx3 ON list_hash_2 USING btree (col_4) TABLESPACE pg_default; +
|
||||
CREATE INDEX list_hash_2_idx2 ON list_hash_2 USING btree (col_3, col_1) LOCAL( +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_list_7_subpartdefault1_col_3_col_1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_hash_6_5_col_3_col_1_idx, +
|
||||
SUBPARTITION p_hash_6_4_col_3_col_1_idx, +
|
||||
SUBPARTITION p_hash_6_3_col_3_col_1_idx, +
|
||||
SUBPARTITION p_hash_6_2_col_3_col_1_idx, +
|
||||
SUBPARTITION p_hash_6_1_col_3_col_1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_list_5_subpartdefault1_col_3_col_1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_hash_4_5_col_3_col_1_idx, +
|
||||
SUBPARTITION p_hash_4_4_col_3_col_1_idx, +
|
||||
SUBPARTITION p_hash_4_3_col_3_col_1_idx, +
|
||||
SUBPARTITION p_hash_4_2_col_3_col_1_idx, +
|
||||
SUBPARTITION p_hash_4_1_col_3_col_1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_hash_3_2_col_3_col_1_idx, +
|
||||
SUBPARTITION p_hash_3_1_col_3_col_1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_list_2_subpartdefault1_col_3_col_1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_hash_1_3_col_3_col_1_idx, +
|
||||
SUBPARTITION p_hash_1_2_col_3_col_1_idx, +
|
||||
SUBPARTITION p_hash_1_1_col_3_col_1_idx +
|
||||
) +
|
||||
) TABLESPACE pg_default; +
|
||||
CREATE UNIQUE INDEX list_hash_2_idx1 ON list_hash_2 USING btree (col_2, col_3, col_4) LOCAL(+
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_list_7_subpartdefault1_col_2_col_3_col_4_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_hash_6_5_col_2_col_3_col_4_idx, +
|
||||
SUBPARTITION p_hash_6_4_col_2_col_3_col_4_idx, +
|
||||
SUBPARTITION p_hash_6_3_col_2_col_3_col_4_idx, +
|
||||
SUBPARTITION p_hash_6_2_col_2_col_3_col_4_idx, +
|
||||
SUBPARTITION p_hash_6_1_col_2_col_3_col_4_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_list_5_subpartdefault1_col_2_col_3_col_4_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_hash_4_5_col_2_col_3_col_4_idx, +
|
||||
SUBPARTITION p_hash_4_4_col_2_col_3_col_4_idx, +
|
||||
SUBPARTITION p_hash_4_3_col_2_col_3_col_4_idx, +
|
||||
SUBPARTITION p_hash_4_2_col_2_col_3_col_4_idx, +
|
||||
SUBPARTITION p_hash_4_1_col_2_col_3_col_4_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_hash_3_2_col_2_col_3_col_4_idx, +
|
||||
SUBPARTITION p_hash_3_1_col_2_col_3_col_4_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_list_2_subpartdefault1_col_2_col_3_col_4_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p_hash_1_3_col_2_col_3_col_4_idx, +
|
||||
SUBPARTITION p_hash_1_2_col_2_col_3_col_4_idx, +
|
||||
SUBPARTITION p_hash_1_1_col_2_col_3_col_4_idx +
|
||||
) +
|
||||
) TABLESPACE pg_default; +
|
||||
ALTER TABLE list_hash_2 ADD CONSTRAINT list_hash_2_col_3_tableoid_key UNIQUE (col_3); +
|
||||
ALTER TABLE list_hash_2 ADD CONSTRAINT list_hash_2_pkey PRIMARY KEY (col_1);
|
||||
(1 row)
|
||||
|
||||
drop table list_hash_2;
|
||||
create table generated_test(a int, b int generated always as (length((a)::text)) stored);
|
||||
select * from pg_get_tabledef('generated_test');
|
||||
pg_get_tabledef
|
||||
--------------------------------------------------------------
|
||||
SET search_path = test_get_table_def; +
|
||||
CREATE TABLE generated_test ( +
|
||||
a integer, +
|
||||
b integer GENERATED ALWAYS AS (length((a)::text)) STORED+
|
||||
) +
|
||||
WITH (orientation=row, compression=no);
|
||||
(1 row)
|
||||
|
||||
drop table generated_test;
|
||||
reset current_schema;
|
||||
drop schema test_get_table_def cascade;
|
||||
|
||||
@ -1549,18 +1549,27 @@ select pg_get_tabledef('range_range_03');
|
||||
ENABLE ROW MOVEMENT; +
|
||||
CREATE INDEX range_range_03_idx4 ON range_range_03 USING btree (c_varchar4) TABLESPACE pg_default;+
|
||||
CREATE INDEX range_range_03_idx3 ON range_range_03 USING btree (c_varchar3) TABLESPACE pg_default;+
|
||||
CREATE INDEX range_range_03_idx1 ON range_range_03 USING btree (c_varchar1) LOCAL +
|
||||
( +
|
||||
PARTITION p1_1_c_varchar1_idx, +
|
||||
PARTITION p1_2_c_varchar1_idx, +
|
||||
PARTITION p2_1_c_varchar1_idx, +
|
||||
PARTITION p2_2_c_varchar1_idx, +
|
||||
PARTITION p3_1_c_varchar1_idx, +
|
||||
PARTITION p3_2_c_varchar1_idx, +
|
||||
PARTITION p4_1_c_varchar1_idx, +
|
||||
PARTITION p4_2_c_varchar1_idx, +
|
||||
PARTITION p5_1_c_varchar1_idx, +
|
||||
PARTITION p5_2_c_varchar1_idx +
|
||||
CREATE INDEX range_range_03_idx1 ON range_range_03 USING btree (c_varchar1) LOCAL( +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p1_1_c_varchar1_idx, +
|
||||
SUBPARTITION p1_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p2_1_c_varchar1_idx, +
|
||||
SUBPARTITION p2_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p3_1_c_varchar1_idx, +
|
||||
SUBPARTITION p3_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p4_1_c_varchar1_idx, +
|
||||
SUBPARTITION p4_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p5_1_c_varchar1_idx, +
|
||||
SUBPARTITION p5_2_c_varchar1_idx +
|
||||
) +
|
||||
) TABLESPACE pg_default; +
|
||||
ALTER TABLE range_range_03 ADD CONSTRAINT range_range_03_pkey PRIMARY KEY (c, c_int);
|
||||
(1 row)
|
||||
|
||||
@ -1455,18 +1455,27 @@ select pg_get_tabledef('range_range_03');
|
||||
ENABLE ROW MOVEMENT; +
|
||||
CREATE INDEX range_range_03_idx4 ON range_range_03 USING btree (c_varchar4) TABLESPACE pg_default;+
|
||||
CREATE INDEX range_range_03_idx3 ON range_range_03 USING btree (c_varchar3) TABLESPACE pg_default;+
|
||||
CREATE INDEX range_range_03_idx1 ON range_range_03 USING btree (c_varchar1) LOCAL +
|
||||
( +
|
||||
PARTITION p1_1_c_varchar1_idx, +
|
||||
PARTITION p1_2_c_varchar1_idx, +
|
||||
PARTITION p2_1_c_varchar1_idx, +
|
||||
PARTITION p2_2_c_varchar1_idx, +
|
||||
PARTITION p3_1_c_varchar1_idx, +
|
||||
PARTITION p3_2_c_varchar1_idx, +
|
||||
PARTITION p4_1_c_varchar1_idx, +
|
||||
PARTITION p4_2_c_varchar1_idx, +
|
||||
PARTITION p5_1_c_varchar1_idx, +
|
||||
PARTITION p5_2_c_varchar1_idx +
|
||||
CREATE INDEX range_range_03_idx1 ON range_range_03 USING btree (c_varchar1) LOCAL( +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p1_1_c_varchar1_idx, +
|
||||
SUBPARTITION p1_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p2_1_c_varchar1_idx, +
|
||||
SUBPARTITION p2_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p3_1_c_varchar1_idx, +
|
||||
SUBPARTITION p3_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p4_1_c_varchar1_idx, +
|
||||
SUBPARTITION p4_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p5_1_c_varchar1_idx, +
|
||||
SUBPARTITION p5_2_c_varchar1_idx +
|
||||
) +
|
||||
) TABLESPACE pg_default; +
|
||||
ALTER TABLE range_range_03 ADD CONSTRAINT range_range_03_pkey PRIMARY KEY (c, c_int);
|
||||
(1 row)
|
||||
|
||||
@ -1455,18 +1455,27 @@ select pg_get_tabledef('range_range_03');
|
||||
ENABLE ROW MOVEMENT; +
|
||||
CREATE INDEX range_range_03_idx4 ON range_range_03 USING ubtree (c_varchar4) WITH (storage_type=USTORE) TABLESPACE pg_default;+
|
||||
CREATE INDEX range_range_03_idx3 ON range_range_03 USING ubtree (c_varchar3) WITH (storage_type=USTORE) TABLESPACE pg_default;+
|
||||
CREATE INDEX range_range_03_idx1 ON range_range_03 USING ubtree (c_varchar1) LOCAL +
|
||||
( +
|
||||
PARTITION p1_1_c_varchar1_idx, +
|
||||
PARTITION p1_2_c_varchar1_idx, +
|
||||
PARTITION p2_1_c_varchar1_idx, +
|
||||
PARTITION p2_2_c_varchar1_idx, +
|
||||
PARTITION p3_1_c_varchar1_idx, +
|
||||
PARTITION p3_2_c_varchar1_idx, +
|
||||
PARTITION p4_1_c_varchar1_idx, +
|
||||
PARTITION p4_2_c_varchar1_idx, +
|
||||
PARTITION p5_1_c_varchar1_idx, +
|
||||
PARTITION p5_2_c_varchar1_idx +
|
||||
CREATE INDEX range_range_03_idx1 ON range_range_03 USING ubtree (c_varchar1) LOCAL( +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p1_1_c_varchar1_idx, +
|
||||
SUBPARTITION p1_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p2_1_c_varchar1_idx, +
|
||||
SUBPARTITION p2_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p3_1_c_varchar1_idx, +
|
||||
SUBPARTITION p3_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p4_1_c_varchar1_idx, +
|
||||
SUBPARTITION p4_2_c_varchar1_idx +
|
||||
), +
|
||||
PARTITION partition_name( +
|
||||
SUBPARTITION p5_1_c_varchar1_idx, +
|
||||
SUBPARTITION p5_2_c_varchar1_idx +
|
||||
) +
|
||||
) WITH (storage_type=USTORE) TABLESPACE pg_default; +
|
||||
ALTER TABLE range_range_03 ADD CONSTRAINT range_range_03_pkey PRIMARY KEY (c, c_int) WITH (storage_type=USTORE);
|
||||
(1 row)
|
||||
|
||||
@ -210,5 +210,9 @@ create index list_hash_2_idx3 on list_hash_2(col_4) global;
|
||||
select * from pg_get_tabledef('list_hash_2');
|
||||
drop table list_hash_2;
|
||||
|
||||
create table generated_test(a int, b int generated always as (length((a)::text)) stored);
|
||||
select * from pg_get_tabledef('generated_test');
|
||||
drop table generated_test;
|
||||
|
||||
reset current_schema;
|
||||
drop schema test_get_table_def cascade;
|
||||
|
||||
Reference in New Issue
Block a user