@@ -28,21 +28,33 @@ SELECT context, entries FROM pathman_cache_stats ORDER BY context;
2828 partition status cache | 3
2929(4 rows)
3030
31- /* change column's type (should flush caches) */
31+ /*
32+ * Get parsed and analyzed expression.
33+ */
34+ CREATE FUNCTION get_cached_partition_cooked_key(REGCLASS)
35+ RETURNS TEXT AS 'pg_pathman', 'get_cached_partition_cooked_key_pl'
36+ LANGUAGE C STRICT;
3237SELECT get_partition_cooked_key('test_column_type.test'::REGCLASS);
3338 get_partition_cooked_key
3439-----------------------------------------------------------------------------------------------------------------------
3540 {VAR :varno 1 :varattno 1 :vartype 23 :vartypmod -1 :varcollid 0 :varlevelsup 0 :varnoold 1 :varoattno 1 :location 8}
3641(1 row)
3742
43+ SELECT get_cached_partition_cooked_key('test_column_type.test'::REGCLASS);
44+ get_cached_partition_cooked_key
45+ -----------------------------------------------------------------------------------------------------------------------
46+ {VAR :varno 1 :varattno 1 :vartype 23 :vartypmod -1 :varcollid 0 :varlevelsup 0 :varnoold 1 :varoattno 1 :location 8}
47+ (1 row)
48+
3849SELECT get_partition_key_type('test_column_type.test'::REGCLASS);
3950 get_partition_key_type
4051------------------------
4152 integer
4253(1 row)
4354
55+ /* change column's type (should also flush caches) */
4456ALTER TABLE test_column_type.test ALTER val TYPE NUMERIC;
45- /* check that expression has been built */
57+ /* check that correct expression has been built */
4658SELECT get_partition_key_type('test_column_type.test'::REGCLASS);
4759 get_partition_key_type
4860------------------------
@@ -55,6 +67,13 @@ SELECT get_partition_cooked_key('test_column_type.test'::REGCLASS);
5567 {VAR :varno 1 :varattno 1 :vartype 1700 :vartypmod -1 :varcollid 0 :varlevelsup 0 :varnoold 1 :varoattno 1 :location 8}
5668(1 row)
5769
70+ SELECT get_cached_partition_cooked_key('test_column_type.test'::REGCLASS);
71+ get_cached_partition_cooked_key
72+ -------------------------------------------------------------------------------------------------------------------------
73+ {VAR :varno 1 :varattno 1 :vartype 1700 :vartypmod -1 :varcollid 0 :varlevelsup 0 :varnoold 1 :varoattno 1 :location 8}
74+ (1 row)
75+
76+ DROP FUNCTION get_cached_partition_cooked_key(REGCLASS);
5877/* make sure that everything works properly */
5978SELECT * FROM test_column_type.test;
6079 val
0 commit comments