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
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.
+++ /dev/null
-/*-------------------------------------------------------------------------
- *
- * 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);
-}
*/
/* yyyymmddN */
-#define CATALOG_VERSION_NO 201903062
+#define CATALOG_VERSION_NO 201903063
#endif
proargtypes => 'internal oid internal int2 internal',
prosrc => 'arraycontjoinsel' },
-{ oid => '760', descr => 'I/O',
- proname => 'smgrin', provolatile => 's', prorettype => 'smgr',
- proargtypes => 'cstring', prosrc => 'smgrin' },
-{ oid => '761', descr => 'I/O',
- proname => 'smgrout', provolatile => 's', prorettype => 'cstring',
- proargtypes => 'smgr', prosrc => 'smgrout' },
-{ oid => '762', descr => 'storage manager',
- proname => 'smgreq', prorettype => 'bool', proargtypes => 'smgr smgr',
- prosrc => 'smgreq' },
-{ oid => '763', descr => 'storage manager',
- proname => 'smgrne', prorettype => 'bool', proargtypes => 'smgr smgr',
- prosrc => 'smgrne' },
-
{ oid => '764', descr => 'large object import',
proname => 'lo_import', provolatile => 'v', proparallel => 'u',
prorettype => 'oid', proargtypes => 'text', prosrc => 'be_lo_import' },
typoutput => 'pg_ddl_command_out', typreceive => 'pg_ddl_command_recv',
typsend => 'pg_ddl_command_send', typalign => 'ALIGNOF_POINTER' },
-# OIDS 200 - 299
-
-{ oid => '210', descr => 'storage manager',
- typname => 'smgr', typlen => '2', typbyval => 't', typcategory => 'U',
- typinput => 'smgrin', typoutput => 'smgrout', typreceive => '-',
- typsend => '-', typalign => 's' },
-
# OIDS 600 - 699
{ oid => '600', array_type_oid => '1017',
ALTER TABLE attmp ADD COLUMN m xid;
ALTER TABLE attmp ADD COLUMN n oidvector;
--ALTER TABLE attmp ADD COLUMN o lock;
-ALTER TABLE attmp ADD COLUMN p smgr;
+ALTER TABLE attmp ADD COLUMN p boolean;
ALTER TABLE attmp ADD COLUMN q point;
ALTER TABLE attmp ADD COLUMN r lseg;
ALTER TABLE attmp ADD COLUMN s path;
VALUES (4, 'name', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)',
'c',
314159, '(1,1)', '512',
- '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',
+ '1 2 3 4 5 6 7 8', true, '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',
'(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)',
'epoch', '01:00:10', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}');
SELECT * FROM attmp;
- initial | a | b | c | d | e | f | g | i | k | l | m | n | p | q | r | s | t | v | w | x | y | z
----------+---+------+------+-----+-----+---+-----------------------+---+--------+-------+-----+-----------------+---------------+-----------+-----------------------+-----------------------------+---------------------+--------------------------+------------------+-----------+-----------+-----------
- | 4 | name | text | 4.1 | 4.1 | 2 | ((4.1,4.1),(3.1,3.1)) | c | 314159 | (1,1) | 512 | 1 2 3 4 5 6 7 8 | magnetic disk | (1.1,1.1) | [(4.1,4.1),(3.1,3.1)] | ((0,2),(4.1,4.1),(3.1,3.1)) | (4.1,4.1),(3.1,3.1) | Thu Jan 01 00:00:00 1970 | @ 1 hour 10 secs | {1,2,3,4} | {1,2,3,4} | {1,2,3,4}
+ initial | a | b | c | d | e | f | g | i | k | l | m | n | p | q | r | s | t | v | w | x | y | z
+---------+---+------+------+-----+-----+---+-----------------------+---+--------+-------+-----+-----------------+---+-----------+-----------------------+-----------------------------+---------------------+--------------------------+------------------+-----------+-----------+-----------
+ | 4 | name | text | 4.1 | 4.1 | 2 | ((4.1,4.1),(3.1,3.1)) | c | 314159 | (1,1) | 512 | 1 2 3 4 5 6 7 8 | t | (1.1,1.1) | [(4.1,4.1),(3.1,3.1)] | ((0,2),(4.1,4.1),(3.1,3.1)) | (4.1,4.1),(3.1,3.1) | Thu Jan 01 00:00:00 1970 | @ 1 hour 10 secs | {1,2,3,4} | {1,2,3,4} | {1,2,3,4}
(1 row)
DROP TABLE attmp;
ALTER TABLE attmp ADD COLUMN m xid;
ALTER TABLE attmp ADD COLUMN n oidvector;
--ALTER TABLE attmp ADD COLUMN o lock;
-ALTER TABLE attmp ADD COLUMN p smgr;
+ALTER TABLE attmp ADD COLUMN p boolean;
ALTER TABLE attmp ADD COLUMN q point;
ALTER TABLE attmp ADD COLUMN r lseg;
ALTER TABLE attmp ADD COLUMN s path;
VALUES (4, 'name', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)',
'c',
314159, '(1,1)', '512',
- '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',
+ '1 2 3 4 5 6 7 8', true, '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',
'(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)',
'epoch', '01:00:10', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}');
SELECT * FROM attmp;
- initial | a | b | c | d | e | f | g | i | k | l | m | n | p | q | r | s | t | v | w | x | y | z
----------+---+------+------+-----+-----+---+-----------------------+---+--------+-------+-----+-----------------+---------------+-----------+-----------------------+-----------------------------+---------------------+--------------------------+------------------+-----------+-----------+-----------
- | 4 | name | text | 4.1 | 4.1 | 2 | ((4.1,4.1),(3.1,3.1)) | c | 314159 | (1,1) | 512 | 1 2 3 4 5 6 7 8 | magnetic disk | (1.1,1.1) | [(4.1,4.1),(3.1,3.1)] | ((0,2),(4.1,4.1),(3.1,3.1)) | (4.1,4.1),(3.1,3.1) | Thu Jan 01 00:00:00 1970 | @ 1 hour 10 secs | {1,2,3,4} | {1,2,3,4} | {1,2,3,4}
+ initial | a | b | c | d | e | f | g | i | k | l | m | n | p | q | r | s | t | v | w | x | y | z
+---------+---+------+------+-----+-----+---+-----------------------+---+--------+-------+-----+-----------------+---+-----------+-----------------------+-----------------------------+---------------------+--------------------------+------------------+-----------+-----------+-----------
+ | 4 | name | text | 4.1 | 4.1 | 2 | ((4.1,4.1),(3.1,3.1)) | c | 314159 | (1,1) | 512 | 1 2 3 4 5 6 7 8 | t | (1.1,1.1) | [(4.1,4.1),(3.1,3.1)] | ((0,2),(4.1,4.1),(3.1,3.1)) | (4.1,4.1),(3.1,3.1) | Thu Jan 01 00:00:00 1970 | @ 1 hour 10 secs | {1,2,3,4} | {1,2,3,4} | {1,2,3,4}
(1 row)
CREATE INDEX attmp_idx ON attmp (a, (d + e), b);
194 | pg_node_tree
3361 | pg_ndistinct
3402 | pg_dependencies
- 210 | smgr
-(4 rows)
+(3 rows)
-- Make sure typarray points to a varlena array type of our own base
SELECT p1.oid, p1.typname as basetype, p2.typname as arraytype,
ALTER TABLE attmp ADD COLUMN n oidvector;
--ALTER TABLE attmp ADD COLUMN o lock;
-ALTER TABLE attmp ADD COLUMN p smgr;
+ALTER TABLE attmp ADD COLUMN p boolean;
ALTER TABLE attmp ADD COLUMN q point;
VALUES (4, 'name', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)',
'c',
314159, '(1,1)', '512',
- '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',
+ '1 2 3 4 5 6 7 8', true, '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',
'(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)',
'epoch', '01:00:10', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}');
ALTER TABLE attmp ADD COLUMN n oidvector;
--ALTER TABLE attmp ADD COLUMN o lock;
-ALTER TABLE attmp ADD COLUMN p smgr;
+ALTER TABLE attmp ADD COLUMN p boolean;
ALTER TABLE attmp ADD COLUMN q point;
VALUES (4, 'name', 'text', 4.1, 4.1, 2, '(4.1,4.1,3.1,3.1)',
'c',
314159, '(1,1)', '512',
- '1 2 3 4 5 6 7 8', 'magnetic disk', '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',
+ '1 2 3 4 5 6 7 8', true, '(1.1,1.1)', '(4.1,4.1,3.1,3.1)',
'(0,2,4.1,4.1,3.1,3.1)', '(4.1,4.1,3.1,3.1)',
'epoch', '01:00:10', '{1.0,2.0,3.0,4.0}', '{1.0,2.0,3.0,4.0}', '{1,2,3,4}');