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:
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user