File tree Expand file tree Collapse file tree 5 files changed +12
-18
lines changed Expand file tree Collapse file tree 5 files changed +12
-18
lines changed Original file line number Diff line number Diff line change @@ -32,9 +32,11 @@ Based on partitioning type and operator the `pg_pathman` searches corresponding
32
32
33
33
## Roadmap
34
34
35
- * Optimize the execution of the NestedLoop join method;
36
- * LIST-partitioning;
37
- * HASH-partitioning for non integer attributes.
35
+ * Execute time sections selections (useful for nested loops and prepared statements);
36
+ * Optimization of ordering output from patitioned tables (useful for merge join and order by);
37
+ * Optimization of hash join when both tables are patitioned by join key;
38
+ * LIST-patitioning;
39
+ * HASH-patitioning by non integer attribtes.
38
40
39
41
## Installation
40
42
Original file line number Diff line number Diff line change @@ -34,9 +34,11 @@ WHERE id = 150
34
34
35
35
## Roadmap
36
36
37
- * Оптимизация поиска секции для соединения (join) таблиц методом NestedLoop;
38
- * LIST-секционирование;
39
- * HASH-секционирование по ключевому аттрибуту с типом, отличным от INTEGER.
37
+ * Выбор секций на этапе выполнения запроса (полезно для nested loop join, prepared statements);
38
+ * Оптимизация выдачи упорядоченных результатов из секционированных таблиц (полезно для merge join, order by);
39
+ * Оптимизация hash join для случая, когда обе таблицы секционированы по ключу join’а;
40
+ * LIST-секционирование;
41
+ * HASH-секционирование по ключевому атрибуту с типом, отличным от INTEGER.
40
42
41
43
## Установка
42
44
Original file line number Diff line number Diff line change 13
13
#include "utils/bytea.h"
14
14
#include "utils/snapmgr.h"
15
15
16
- #include "miscadmin.h"
17
-
18
16
19
17
HTAB * relations = NULL ;
20
18
HTAB * range_restrictions = NULL ;
Original file line number Diff line number Diff line change @@ -105,6 +105,8 @@ typedef struct PathmanState
105
105
LWLock * edit_partitions_lock ;
106
106
} PathmanState ;
107
107
108
+ PathmanState * pmstate ;
109
+
108
110
#define PATHMAN_GET_DATUM (value , by_val ) ( (by_val) ? (value) : PointerGetDatum(&value) )
109
111
110
112
typedef int IndexRange ;
@@ -139,12 +141,6 @@ List *irange_list_intersect(List *a, List *b);
139
141
int irange_list_length (List * rangeset );
140
142
bool irange_list_find (List * rangeset , int index , bool * lossy );
141
143
142
-
143
- // LWLock *load_config_lock;
144
- // LWLock *dsm_init_lock;
145
- // LWLock *edit_partitions_lock;
146
- PathmanState * pmstate ;
147
-
148
144
/* Dynamic shared memory functions */
149
145
void init_dsm_config (void );
150
146
bool init_dsm_segment (size_t blocks_count , size_t block_size );
Original file line number Diff line number Diff line change @@ -361,17 +361,13 @@ check_overlap(PG_FUNCTION_ARGS)
361
361
Datum
362
362
acquire_partitions_lock (PG_FUNCTION_ARGS )
363
363
{
364
- // int relid = DatumGetInt32(PG_GETARG_DATUM(0));
365
- // LockRelationOid(relid, AccessExclusiveLock);
366
364
LWLockAcquire (pmstate -> edit_partitions_lock , LW_EXCLUSIVE );
367
365
PG_RETURN_NULL ();
368
366
}
369
367
370
368
Datum
371
369
release_partitions_lock (PG_FUNCTION_ARGS )
372
370
{
373
- // int relid = DatumGetInt32(PG_GETARG_DATUM(0));
374
- // UnlockRelationOid(relid, AccessExclusiveLock);
375
371
LWLockRelease (pmstate -> edit_partitions_lock );
376
372
PG_RETURN_NULL ();
377
373
}
You can’t perform that action at this time.
0 commit comments