@@ -9,6 +9,12 @@ SELECT debug_capture();
99
1010(1 row)
1111
12+ SELECT get_pathman_lib_version();
13+ get_pathman_lib_version
14+ -------------------------
15+ 10300
16+ (1 row)
17+
1218set client_min_messages = NOTICE;
1319/* create table to be partitioned */
1420CREATE TABLE calamity.part_test(val serial);
@@ -396,30 +402,69 @@ SELECT drop_range_partition_expand_next(NULL) IS NULL;
396402 t
397403(1 row)
398404
399- /* check invoke_on_partition_created_callback() for RANGE */
400- SELECT invoke_on_partition_created_callback('calamity.part_test', 'calamity.part_test', 1, NULL, NULL::int);
401- ERROR: both bounds must be provided for RANGE partition
402- SELECT invoke_on_partition_created_callback('calamity.part_test', 'calamity.part_test', 1, 1, NULL);
403- ERROR: both bounds must be provided for RANGE partition
404- SELECT invoke_on_partition_created_callback('calamity.part_test', 'calamity.part_test', 1, NULL, 1);
405- ERROR: both bounds must be provided for RANGE partition
406- /* check invoke_on_partition_created_callback() for HASH */
405+ /* check invoke_on_partition_created_callback() */
406+ CREATE FUNCTION calamity.dummy_cb(arg jsonb) RETURNS void AS $$
407+ begin
408+ raise warning 'arg: %', arg::text;
409+ end
410+ $$ LANGUAGE plpgsql;
411+ /* Invalid args */
412+ SELECT invoke_on_partition_created_callback(NULL, 'calamity.part_test', 1);
413+ ERROR: 'parent_relid' should not be NULL
414+ SELECT invoke_on_partition_created_callback('calamity.part_test', NULL, 1);
415+ ERROR: 'partition' should not be NULL
416+ SELECT invoke_on_partition_created_callback('calamity.part_test', 'calamity.part_test', 0);
417+ invoke_on_partition_created_callback
418+ --------------------------------------
419+
420+ (1 row)
421+
422+ SELECT invoke_on_partition_created_callback('calamity.part_test', 'calamity.part_test', 1);
423+ ERROR: callback function 1 does not exist
407424SELECT invoke_on_partition_created_callback('calamity.part_test', 'calamity.part_test', NULL);
408425 invoke_on_partition_created_callback
409426--------------------------------------
410427
411428(1 row)
412429
413- SELECT invoke_on_partition_created_callback('calamity.part_test', 'calamity.part_test', 0);
430+ /* HASH */
431+ SELECT invoke_on_partition_created_callback(0::regclass, 1::regclass, 'calamity.dummy_cb(jsonb)'::regprocedure);
432+ WARNING: arg: {"parent": null, "parttype": "1", "partition": null, "parent_schema": null, "partition_schema": null}
414433 invoke_on_partition_created_callback
415434--------------------------------------
416435
417436(1 row)
418437
419- SELECT invoke_on_partition_created_callback(NULL, 'calamity.part_test', 1);
420- ERROR: 'parent_relid' should not be NULL
421- SELECT invoke_on_partition_created_callback('calamity.part_test', NULL, 1);
422- ERROR: 'partition' should not be NULL
438+ /* RANGE */
439+ SELECT invoke_on_partition_created_callback('calamity.part_test'::regclass, 'pg_class'::regclass, 'calamity.dummy_cb(jsonb)'::regprocedure, NULL::int, NULL);
440+ WARNING: arg: {"parent": "part_test", "parttype": "2", "partition": "pg_class", "range_max": null, "range_min": null, "parent_schema": "calamity", "partition_schema": "pg_catalog"}
441+ invoke_on_partition_created_callback
442+ --------------------------------------
443+
444+ (1 row)
445+
446+ SELECT invoke_on_partition_created_callback(0::regclass, 1::regclass, 'calamity.dummy_cb(jsonb)'::regprocedure, NULL::int, NULL);
447+ WARNING: arg: {"parent": null, "parttype": "2", "partition": null, "range_max": null, "range_min": null, "parent_schema": null, "partition_schema": null}
448+ invoke_on_partition_created_callback
449+ --------------------------------------
450+
451+ (1 row)
452+
453+ SELECT invoke_on_partition_created_callback(0::regclass, 1::regclass, 'calamity.dummy_cb(jsonb)'::regprocedure, 1, NULL);
454+ WARNING: arg: {"parent": null, "parttype": "2", "partition": null, "range_max": null, "range_min": "1", "parent_schema": null, "partition_schema": null}
455+ invoke_on_partition_created_callback
456+ --------------------------------------
457+
458+ (1 row)
459+
460+ SELECT invoke_on_partition_created_callback(0::regclass, 1::regclass, 'calamity.dummy_cb(jsonb)'::regprocedure, NULL, 1);
461+ WARNING: arg: {"parent": null, "parttype": "2", "partition": null, "range_max": "1", "range_min": null, "parent_schema": null, "partition_schema": null}
462+ invoke_on_partition_created_callback
463+ --------------------------------------
464+
465+ (1 row)
466+
467+ DROP FUNCTION calamity.dummy_cb(arg jsonb);
423468/* check function add_to_pathman_config() -- PHASE #1 */
424469SELECT add_to_pathman_config(NULL, 'val'); /* no table */
425470ERROR: 'parent_relid' should not be NULL
0 commit comments