Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/src/test/modules/test_misc/t/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 3 kB image not shown  

Quelle  002_tablespace.pl

  Sprache: Shell
 


# Copyright (c) 2024-2025, PostgreSQL Global Development Group

# Simple tablespace tests that can't be replicated on the same host
# due to the use of absolute paths, so we keep them out of the regular
# regression tests.

use strict;
use warnings FATAL => 'all';
use PostgreSQL::Test::Cluster;
use PostgreSQL::Test::Utils;
use Test::More;

my $node = PostgreSQL::Test::Cluster->new('main');
$node->init;
$node->start;

# Create a couple of directories to use as tablespaces.
my $basedir = $node->basedir();
my $TS1_LOCATION = "$basedir/ts1";
$TS1_LOCATION =~ s/\/\.\//\//g;    # collapse foo/./bar to foo/bar
mkdir($TS1_LOCATION);
my $TS2_LOCATION = "$basedir/ts2";
$TS2_LOCATION =~ s/\/\.\//\//g;
mkdir($TS2_LOCATION);

my $result;

# Create a tablespace with an absolute path
$result = $node->psql('postgres',
 "CREATE TABLESPACE regress_ts1 LOCATION '$TS1_LOCATION'");
ok($result == 0'create tablespace with absolute path');

# Can't create a tablespace where there is one already
$result = $node->psql('postgres',
 "CREATE TABLESPACE regress_ts1 LOCATION '$TS1_LOCATION'");
ok($result != 0'clobber tablespace with absolute path');

# Create table in it
$result = $node->psql('postgres'"CREATE TABLE t () TABLESPACE regress_ts1");
ok($result == 0'create table in tablespace with absolute path');

# Can't drop a tablespace that still has a table in it
$result = $node->psql('postgres'"DROP TABLESPACE regress_ts1");
ok($result != 0'drop tablespace with absolute path');

# Drop the table
$result = $node->psql('postgres'"DROP TABLE t");
ok($result == 0'drop table in tablespace with absolute path');

# Drop the tablespace
$result = $node->psql('postgres'"DROP TABLESPACE regress_ts1");
ok($result == 0'drop tablespace with absolute path');

# Create two absolute tablespaces and two in-place tablespaces, so we can
# testing various kinds of tablespace moves.
$result = $node->psql('postgres',
 "CREATE TABLESPACE regress_ts1 LOCATION '$TS1_LOCATION'");
ok($result == 0'create tablespace 1 with absolute path');
$result = $node->psql('postgres',
 "CREATE TABLESPACE regress_ts2 LOCATION '$TS2_LOCATION'");
ok($result == 0'create tablespace 2 with absolute path');
$result = $node->psql('postgres',
 "SET allow_in_place_tablespaces=on; CREATE TABLESPACE regress_ts3 LOCATION ''"
);
ok($result == 0'create tablespace 3 with in-place directory');
$result = $node->psql('postgres',
 "SET allow_in_place_tablespaces=on; CREATE TABLESPACE regress_ts4 LOCATION ''"
);
ok($result == 0'create tablespace 4 with in-place directory');

# Create a table and test moving between absolute and in-place tablespaces
$result = $node->psql('postgres'"CREATE TABLE t () TABLESPACE regress_ts1");
ok($result == 0'create table in tablespace 1');
$result = $node->psql('postgres'"ALTER TABLE t SET tablespace regress_ts2");
ok($result == 0'move table abs->abs');
$result = $node->psql('postgres'"ALTER TABLE t SET tablespace regress_ts3");
ok($result == 0'move table abs->in-place');
$result = $node->psql('postgres'"ALTER TABLE t SET tablespace regress_ts4");
ok($result == 0'move table in-place->in-place');
$result = $node->psql('postgres'"ALTER TABLE t SET tablespace regress_ts1");
ok($result == 0'move table in-place->abs');

# Drop everything
$result = $node->psql('postgres'"DROP TABLE t");
ok($result == 0'create table in tablespace 1');
$result = $node->psql('postgres'"DROP TABLESPACE regress_ts1");
ok($result == 0'drop tablespace 1');
$result = $node->psql('postgres'"DROP TABLESPACE regress_ts2");
ok($result == 0'drop tablespace 2');
$result = $node->psql('postgres'"DROP TABLESPACE regress_ts3");
ok($result == 0'drop tablespace 3');
$result = $node->psql('postgres'"DROP TABLESPACE regress_ts4");
ok($result == 0'drop tablespace 4');

$node->stop;

done_testing();

¤ Dauer der Verarbeitung: 0.17 Sekunden  (vorverarbeitet am  2026-08-10) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.