Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit05caed2

Browse files
committed
clean code, remove function get_attribute_type_pl(), small fixes
1 parentd98e1af commit05caed2

File tree

10 files changed

+309
-336
lines changed

10 files changed

+309
-336
lines changed

‎expected/pathman_basic.out

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1610,9 +1610,9 @@ NOTICE: sequence "zero_seq" does not exist, skipping
16101610
(1 row)
16111611

16121612
SELECT pathman.append_range_partition('test.zero', 'test.zero_0');
1613-
ERROR:cannot append to empty partitions set
1613+
ERROR:relation "zero" has no partitions
16141614
SELECT pathman.prepend_range_partition('test.zero', 'test.zero_1');
1615-
ERROR:cannot prepend to empty partitions set
1615+
ERROR:relation "zero" has no partitions
16161616
SELECT pathman.add_range_partition('test.zero', 50, 70, 'test.zero_50');
16171617
add_range_partition
16181618
---------------------

‎expected/pathman_calamity.out

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -230,26 +230,12 @@ SELECT get_base_type(NULL) IS NULL;
230230
t
231231
(1 row)
232232

233-
/* check function get_attribute_type() */
234-
SELECT get_attribute_type('calamity.part_test', 'val');
235-
get_attribute_type
236-
--------------------
237-
integer
238-
(1 row)
239-
240-
SELECT get_attribute_type('calamity.part_test', NULL) IS NULL;
241-
?column?
242-
----------
243-
t
244-
(1 row)
245-
246-
SELECT get_attribute_type(NULL, 'val') IS NULL;
247-
?column?
248-
----------
249-
t
250-
(1 row)
251-
252-
SELECT get_attribute_type(NULL, NULL) IS NULL;
233+
/* check function get_partition_key_type() */
234+
SELECT get_partition_key_type('calamity.part_test');
235+
ERROR: relation "part_test" has no partitions
236+
SELECT get_partition_key_type(0::regclass);
237+
ERROR: relation "0" has no partitions
238+
SELECT get_partition_key_type(NULL) IS NULL;
253239
?column?
254240
----------
255241
t

‎hash.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ BEGIN
261261
quote_ident(plain_relname||'_%s');
262262

263263
/* Fetch base hash function for atttype*/
264-
atttype := @extschema@.get_attribute_type(parent_relid, attr);
264+
atttype := @extschema@.get_partition_key_type(parent_relid);
265265

266266
/* Format function definition and execute it*/
267267
EXECUTE format(func, funcname, attr, partitions_count, att_val_fmt,

‎init.sql

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -704,15 +704,6 @@ CREATE OR REPLACE FUNCTION @extschema@.get_base_type(
704704
RETURNS REGTYPEAS'pg_pathman','get_base_type_pl'
705705
LANGUAGE C STRICT;
706706

707-
/*
708-
* Returns attribute type name for relation.
709-
*/
710-
CREATEOR REPLACE FUNCTION @extschema@.get_attribute_type(
711-
relidREGCLASS,
712-
attnameTEXT)
713-
RETURNS REGTYPEAS'pg_pathman','get_attribute_type_pl'
714-
LANGUAGE C STRICT;
715-
716707
/*
717708
* Return partition key type
718709
*/

‎range.sql

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -488,22 +488,18 @@ BEGIN
488488
/* Acquire data modification lock (prevent further modifications)*/
489489
PERFORM @extschema@.prevent_relation_modification(partition_relid);
490490

491+
v_atttype= @extschema@.get_partition_key_type(v_parent);
492+
491493
SELECT attname, parttype
492494
FROM @extschema@.pathman_config
493495
WHERE partrel= v_parent
494496
INTO v_attname, v_part_type;
495497

496-
IF v_attname ISNULL THEN
497-
RAISE EXCEPTION'table "%" is not partitioned', v_parent::TEXT;
498-
END IF;
499-
500498
/* Check if this is a RANGE partition*/
501499
IF v_part_type!=2 THEN
502500
RAISE EXCEPTION'"%" is not a RANGE partition', partition_relid::TEXT;
503501
END IF;
504502

505-
v_atttype= @extschema@.get_attribute_type(v_parent, v_attname);
506-
507503
/* Get partition values range*/
508504
EXECUTE format('SELECT @extschema@.get_part_range($1, NULL::%s)',
509505
@extschema@.get_base_type(v_atttype)::TEXT)
@@ -589,7 +585,6 @@ CREATE OR REPLACE FUNCTION @extschema@.append_range_partition(
589585
RETURNSTEXTAS
590586
$$
591587
DECLARE
592-
v_attnameTEXT;
593588
v_atttypeREGTYPE;
594589
v_part_nameTEXT;
595590
v_intervalTEXT;
@@ -600,16 +595,12 @@ BEGIN
600595
/* Acquire lock on parent*/
601596
PERFORM @extschema@.lock_partitioned_relation(parent_relid);
602597

603-
SELECT attname, range_interval
598+
v_atttype := @extschema@.get_partition_key_type(parent_relid);
599+
600+
SELECT range_interval
604601
FROM @extschema@.pathman_config
605602
WHERE partrel= parent_relid
606-
INTO v_attname, v_interval;
607-
608-
IF v_attname ISNULL THEN
609-
RAISE EXCEPTION'table "%" is not partitioned', parent_relid::TEXT;
610-
END IF;
611-
612-
v_atttype := @extschema@.get_attribute_type(parent_relid, v_attname);
603+
INTO v_interval;
613604

614605
EXECUTE
615606
format('SELECT @extschema@.append_partition_internal($1, $2, $3, ARRAY[]::%s[], $4, $5)',
@@ -700,7 +691,6 @@ CREATE OR REPLACE FUNCTION @extschema@.prepend_range_partition(
700691
RETURNSTEXTAS
701692
$$
702693
DECLARE
703-
v_attnameTEXT;
704694
v_atttypeREGTYPE;
705695
v_part_nameTEXT;
706696
v_intervalTEXT;
@@ -711,16 +701,12 @@ BEGIN
711701
/* Acquire lock on parent*/
712702
PERFORM @extschema@.lock_partitioned_relation(parent_relid);
713703

714-
SELECT attname, range_interval
704+
v_atttype := @extschema@.get_partition_key_type(parent_relid);
705+
706+
SELECT range_interval
715707
FROM @extschema@.pathman_config
716708
WHERE partrel= parent_relid
717-
INTO v_attname, v_interval;
718-
719-
IF v_attname ISNULL THEN
720-
RAISE EXCEPTION'table "%" is not partitioned', parent_relid::TEXT;
721-
END IF;
722-
723-
v_atttype := @extschema@.get_attribute_type(parent_relid, v_attname);
709+
INTO v_interval;
724710

725711
EXECUTE
726712
format('SELECT @extschema@.prepend_partition_internal($1, $2, $3, ARRAY[]::%s[], $4, $5)',

‎sql/pathman_calamity.sql

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,10 @@ SELECT get_base_type('int4'::regtype);
7777
SELECT get_base_type('calamity.test_domain'::regtype);
7878
SELECT get_base_type(NULL) ISNULL;
7979

80-
/* check function get_attribute_type()*/
81-
SELECT get_attribute_type('calamity.part_test','val');
82-
SELECT get_attribute_type('calamity.part_test',NULL) ISNULL;
83-
SELECT get_attribute_type(NULL,'val') ISNULL;
84-
SELECT get_attribute_type(NULL,NULL) ISNULL;
80+
/* check function get_partition_key_type()*/
81+
SELECT get_partition_key_type('calamity.part_test');
82+
SELECT get_partition_key_type(0::regclass);
83+
SELECT get_partition_key_type(NULL) ISNULL;
8584

8685
/* check function build_check_constraint_name_attnum()*/
8786
SELECT build_check_constraint_name('calamity.part_test',1::int2);

‎src/partition_creation.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1511,10 +1511,6 @@ invoke_init_callback_internal(init_callback_params *cb_params)
15111511
ev_datum=cb_params->params.range_params.end_value;
15121512
Oidtype=cb_params->params.range_params.value_type;
15131513

1514-
/* Convert min & max to CSTRING */
1515-
// start_value = datum_to_cstring(sv_datum, type);
1516-
// end_value = datum_to_cstring(ev_datum, type);
1517-
15181514
pushJsonbValue(&jsonb_state,WJB_BEGIN_OBJECT,NULL);
15191515

15201516
JSB_INIT_VAL(&key,WJB_KEY,"parent");
@@ -1532,6 +1528,7 @@ invoke_init_callback_internal(init_callback_params *cb_params)
15321528
JSB_INIT_VAL(&key,WJB_KEY,"range_min");
15331529
if (!IsInfinite(&sv_datum))
15341530
{
1531+
/* Convert min to CSTRING */
15351532
start_value=datum_to_cstring(BoundGetValue(&sv_datum),type);
15361533
JSB_INIT_VAL(&val,WJB_VALUE,start_value);
15371534
}
@@ -1542,12 +1539,12 @@ invoke_init_callback_internal(init_callback_params *cb_params)
15421539
JSB_INIT_VAL(&key,WJB_KEY,"range_max");
15431540
if (!IsInfinite(&ev_datum))
15441541
{
1542+
/* Convert max to CSTRING */
15451543
end_value=datum_to_cstring(BoundGetValue(&ev_datum),type);
15461544
JSB_INIT_VAL(&val,WJB_VALUE,end_value);
15471545
}
15481546
else
15491547
JSB_INIT_NULL_VAL(&val,WJB_VALUE);
1550-
// JSB_INIT_VAL(&val, WJB_VALUE, end_value);
15511548

15521549
result=pushJsonbValue(&jsonb_state,WJB_END_OBJECT,NULL);
15531550
}

‎src/pg_pathman.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -536,12 +536,14 @@ select_range_partitions(const Datum value,
536536

537537
current_re=&ranges[i];
538538

539-
// cmp_min = FunctionCall2(cmp_func, value, current_re->min);
540-
// cmp_max = FunctionCall2(cmp_func, value, current_re->max);
541539
cmp_min=IsInfinite(&current_re->min) ?
542-
1 :FunctionCall2(cmp_func,value,BoundGetValue(&current_re->min));
540+
1 :
541+
FunctionCall2(cmp_func,value,
542+
BoundGetValue(&current_re->min));
543543
cmp_max=IsInfinite(&current_re->max) ?
544-
-1 :FunctionCall2(cmp_func,value,BoundGetValue(&current_re->max));
544+
-1 :
545+
FunctionCall2(cmp_func,value,
546+
BoundGetValue(&current_re->max));
545547

546548
is_less= (cmp_min<0|| (cmp_min==0&&strategy==BTLessStrategyNumber));
547549
is_greater= (cmp_max>0|| (cmp_max >=0&&strategy!=BTLessStrategyNumber));

‎src/pl_funcs.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -217,18 +217,6 @@ get_base_type_pl(PG_FUNCTION_ARGS)
217217
PG_RETURN_OID(getBaseType(PG_GETARG_OID(0)));
218218
}
219219

220-
/*
221-
* Get type (as REGTYPE) of a given attribute.
222-
*/
223-
Datum
224-
get_attribute_type_pl(PG_FUNCTION_ARGS)
225-
{
226-
Oidrelid=PG_GETARG_OID(0);
227-
text*attname=PG_GETARG_TEXT_P(1);
228-
229-
PG_RETURN_OID(get_attribute_type(relid,text_to_cstring(attname), false));
230-
}
231-
232220
/*
233221
* Return partition key type
234222
*/

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp