@@ -124,3 +124,37 @@ test('Materialized view columns', function () use ($connection) {
124124 array_column ($ driver ->getColumns ('source_mt ' ), 'name ' ),
125125 );
126126});
127+
128+
129+ test ('Partitioned table ' , function () use ($ connection ) {
130+ Nette \Database \Helpers::loadFromFile ($ connection , Tester \FileMock::create ('
131+ DROP SCHEMA IF EXISTS "reflection_10" CASCADE;
132+ CREATE SCHEMA "reflection_10";
133+
134+ CREATE TABLE "reflection_10"."parted" (
135+ "id" INTEGER PRIMARY KEY,
136+ "value" INTEGER
137+ ) PARTITION BY RANGE (id);
138+
139+ CREATE TABLE "reflection_10"."part_1" PARTITION OF "reflection_10"."parted" FOR VALUES FROM (1) TO (10);
140+ ' ));
141+
142+ $ driver = $ connection ->getDriver ();
143+
144+ $ connection ->query ('SET search_path TO reflection_10 ' );
145+
146+ Assert::same ([
147+ ['name ' => 'part_1 ' , 'view ' => false , 'fullName ' => 'reflection_10.part_1 ' ],
148+ ['name ' => 'parted ' , 'view ' => false , 'fullName ' => 'reflection_10.parted ' ],
149+ ], $ driver ->getTables ());
150+
151+ Assert::same (['id ' , 'value ' ], array_column ($ driver ->getColumns ('parted ' ), 'name ' ));
152+ Assert::same (['id ' , 'value ' ], array_column ($ driver ->getColumns ('part_1 ' ), 'name ' ));
153+
154+ Assert::same ([[
155+ 'name ' => 'parted_pkey ' ,
156+ 'unique ' => true ,
157+ 'primary ' => true ,
158+ 'columns ' => ['id ' ],
159+ ]], $ driver ->getIndexes ('parted ' ));
160+ });
0 commit comments