1
0
mirror of https://github.com/postgres/postgres.git synced 2025-12-01 12:18:01 +03:00

Drop the vestigial "smgr" type.

Before commit 3fa2bb31 this type appeared in the catalogs to
select which of several block storage mechanisms each relation
used.

New features under development propose to revive the concept of
different block storage managers for new kinds of data accessed
via bufmgr.c, but don't need to put references to them in the
catalogs.  So, avoid useless maintenance work on this type by
dropping it.  Update some regression tests that were referencing
it where any type would do.

Discussion: https://postgr.es/m/CA%2BhUKG%2BDE0mmiBZMtZyvwWtgv1sZCniSVhXYsXkvJ_Wo%2B83vvw%40mail.gmail.com
This commit is contained in:
Thomas Munro
2019-03-07 15:43:37 +13:00
parent 277cb78983
commit 91595f9d49
9 changed files with 17 additions and 124 deletions

View File

@@ -12,6 +12,6 @@ subdir = src/backend/storage/smgr
top_builddir = ../../../..
include $(top_builddir)/src/Makefile.global
OBJS = md.o smgr.o smgrtype.o
OBJS = md.o smgr.o
include $(top_srcdir)/src/backend/common.mk

View File

@@ -31,12 +31,6 @@ The files in this directory, and their contents, are
md.c The "magnetic disk" storage manager, which is really just
an interface to the kernel's filesystem operations.
smgrtype.c Storage manager type -- maps string names to storage manager
IDs and provides simple comparison operators. This is the
regproc support for type "smgr" in the system catalogs.
(This is vestigial since no columns of type smgr exist
in the catalogs anymore.)
Note that md.c in turn relies on src/backend/storage/file/fd.c.

View File

@@ -1,80 +0,0 @@
/*-------------------------------------------------------------------------
*
* smgrtype.c
* storage manager type
*
* Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* src/backend/storage/smgr/smgrtype.c
*
*-------------------------------------------------------------------------
*/
#include "postgres.h"
#include "storage/smgr.h"
#include "utils/builtins.h"
typedef struct smgrid
{
const char *smgr_name;
} smgrid;
/*
* StorageManager[] -- List of defined storage managers.
*/
static const smgrid StorageManager[] = {
{"magnetic disk"}
};
static const int NStorageManagers = lengthof(StorageManager);
Datum
smgrin(PG_FUNCTION_ARGS)
{
char *s = PG_GETARG_CSTRING(0);
int16 i;
for (i = 0; i < NStorageManagers; i++)
{
if (strcmp(s, StorageManager[i].smgr_name) == 0)
PG_RETURN_INT16(i);
}
elog(ERROR, "unrecognized storage manager name \"%s\"", s);
PG_RETURN_INT16(0);
}
Datum
smgrout(PG_FUNCTION_ARGS)
{
int16 i = PG_GETARG_INT16(0);
char *s;
if (i >= NStorageManagers || i < 0)
elog(ERROR, "invalid storage manager ID: %d", i);
s = pstrdup(StorageManager[i].smgr_name);
PG_RETURN_CSTRING(s);
}
Datum
smgreq(PG_FUNCTION_ARGS)
{
int16 a = PG_GETARG_INT16(0);
int16 b = PG_GETARG_INT16(1);
PG_RETURN_BOOL(a == b);
}
Datum
smgrne(PG_FUNCTION_ARGS)
{
int16 a = PG_GETARG_INT16(0);
int16 b = PG_GETARG_INT16(1);
PG_RETURN_BOOL(a != b);
}