PostgresNode-new-method.patch

text/x-patch

Filename: PostgresNode-new-method.patch
Type: text/x-patch
Part: 0
Message: Re: Postgres perl module namespace

Patch

Format: unified
File+
src/test/perl/PostgresNode.pm 12 6
diff --git a/src/test/perl/PostgresNode.pm b/src/test/perl/PostgresNode.pm
index 92d9303e23..94b39341ce 100644
--- a/src/test/perl/PostgresNode.pm
+++ b/src/test/perl/PostgresNode.pm
@@ -137,16 +137,22 @@ INIT
 
 =over
 
-=item PostgresNode::new($class, $name, $pghost, $pgport)
+=item PostgresNode->new(node_name, %params)
 
-Create a new PostgresNode instance. Does not initdb or start it.
-
-You should generally prefer to use get_new_node() instead since it takes care
-of finding port numbers, registering instances for cleanup, etc.
+Class oriented alias for get_new_node()
 
 =cut
 
 sub new
+{
+	my $class = $_[0];
+	$class->isa(__PACKAGE__) || die "new() not called as a class method";
+	return get_new_node(@_);
+}
+
+# internal subroutine used by get_new_node(). SHould not be called by any
+# external client of the module.
+sub _new
 {
 	my ($class, $name, $pghost, $pgport) = @_;
 	my $testname = basename($0);
@@ -1229,7 +1235,7 @@ sub get_new_node
 	}
 
 	# Lock port number found by creating a new node
-	my $node = $class->new($name, $host, $port);
+	my $node = _new($class, $name, $host, $port);
 
 	if ($params{install_path})
 	{