Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
9e3d4c43
Commit
9e3d4c43
authored
Nov 06, 1996
by
Marc G. Fournier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Another directory cleaned up
parent
8544daf6
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
383 additions
and
167 deletions
+383
-167
src/backend/catalog/heap.c
src/backend/catalog/heap.c
+274
-33
src/backend/catalog/index.c
src/backend/catalog/index.c
+23
-37
src/backend/catalog/indexing.c
src/backend/catalog/indexing.c
+16
-20
src/backend/catalog/pg_aggregate.c
src/backend/catalog/pg_aggregate.c
+17
-19
src/backend/catalog/pg_operator.c
src/backend/catalog/pg_operator.c
+14
-17
src/backend/catalog/pg_proc.c
src/backend/catalog/pg_proc.c
+22
-22
src/backend/catalog/pg_type.c
src/backend/catalog/pg_type.c
+17
-19
No files found.
src/backend/catalog/heap.c
View file @
9e3d4c43
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.
5 1996/11/06 06:47:03
scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.
6 1996/11/06 07:31:19
scrappy Exp $
*
*
* INTERFACE ROUTINES
* INTERFACE ROUTINES
* heap_creatr() - Create an uncataloged heap relation
* heap_creatr() - Create an uncataloged heap relation
...
@@ -26,6 +26,14 @@
...
@@ -26,6 +26,14 @@
*/
*/
#include <postgres.h>
#include <postgres.h>
#include <catalog/pg_ipl.h>
#include <catalog/pg_inherits.h>
#include <catalog/pg_proc.h>
#include <miscadmin.h>
#include <catalog/indexing.h>
#include <catalog/catalog.h>
#include <utils/builtins.h>
#include <access/heapam.h>
#include <utils/mcxt.h>
#include <utils/mcxt.h>
#include <parser/catalog_utils.h>
#include <parser/catalog_utils.h>
#include <catalog/index.h>
#include <catalog/index.h>
...
@@ -39,37 +47,11 @@
...
@@ -39,37 +47,11 @@
#include <rewrite/rewriteRemove.h>
#include <rewrite/rewriteRemove.h>
#include <storage/lmgr.h>
#include <storage/lmgr.h>
#include <storage/smgr.h>
#include <storage/smgr.h>
#include <access/relscan.h>
#ifndef HAVE_MEMMOVE
#include <utils/tqual.h>
# include <regex/utils.h>
#else
/*
# include <string.h>
#include <catalog/heap.h>
#endif
#include <catalog/pg_proc.h>
#include <parser/catalog_utils.h>
#include <access/heapam.h>
#include <access/genam.h>
#include <access/istrat.h>
#include <storage/bufmgr.h>
#include <lib/hasht.h>
#include <miscadmin.h>
#include <fmgr.h>
#include <utils/builtins.h>
#include <utils/mcxt.h>
#include <utils/relcache.h>
#include <catalog/catname.h>
#include <catalog/pg_index.h>
#include <catalog/pg_inherits.h>
#include <catalog/pg_ipl.h>
#include <catalog/index.h>
#include <catalog/indexing.h>
#include <catalog/catalog.h>
#include <storage/lmgr.h>
#include <rewrite/rewriteRemove.h>
#include <storage/smgr.h>
*/
static
void
AddNewAttributeTuples
(
Oid
new_rel_oid
,
TupleDesc
tupdesc
);
static
void
CheckAttributeNames
(
TupleDesc
tupdesc
);
/* ----------------------------------------------------------------
/* ----------------------------------------------------------------
* XXX UGLY HARD CODED BADNESS FOLLOWS XXX
* XXX UGLY HARD CODED BADNESS FOLLOWS XXX
...
@@ -1179,4 +1161,263 @@ DeletePgTypeTuple(Relation rdesc)
...
@@ -1179,4 +1161,263 @@ DeletePgTypeTuple(Relation rdesc)
/* ----------------
/* ----------------
* now scan pg_attribute. if any other relations have
* now scan pg_attribute. if any other relations have
*
attributes
of
the
type
of
the
relation
we
are
de
* attributes of the type of the relation we are deleteing
\ No newline at end of file
* then we have to disallow the deletion. should talk to
* stonebraker about this. -cim 6/19/90
* ----------------
*/
typoid
=
tup
->
t_oid
;
pg_attribute_desc
=
heap_openr
(
AttributeRelationName
);
ScanKeyEntryInitialize
(
&
attkey
,
0
,
Anum_pg_attribute_atttypid
,
F_INT4EQ
,
typoid
);
pg_attribute_scan
=
heap_beginscan
(
pg_attribute_desc
,
0
,
NowTimeQual
,
1
,
&
attkey
);
/* ----------------
* try and get a pg_attribute tuple. if we succeed it means
* we cant delete the relation because something depends on
* the schema.
* ----------------
*/
atttup
=
heap_getnext
(
pg_attribute_scan
,
0
,
(
Buffer
*
)
NULL
);
if
(
PointerIsValid
(
atttup
))
{
Oid
relid
=
((
AttributeTupleForm
)
GETSTRUCT
(
atttup
))
->
attrelid
;
heap_endscan
(
pg_type_scan
);
heap_close
(
pg_type_desc
);
heap_endscan
(
pg_attribute_scan
);
heap_close
(
pg_attribute_desc
);
elog
(
WARN
,
"DeletePgTypeTuple: att of type %s exists in relation %d"
,
&
rdesc
->
rd_rel
->
relname
,
relid
);
}
heap_endscan
(
pg_attribute_scan
);
heap_close
(
pg_attribute_desc
);
/* ----------------
* Ok, it's safe so we delete the relation tuple
* from pg_type and finish up. But first end the scan so that
* we release the read lock on pg_type. -mer 13 Aug 1991
* ----------------
*/
heap_endscan
(
pg_type_scan
);
heap_delete
(
pg_type_desc
,
&
tup
->
t_ctid
);
heap_close
(
pg_type_desc
);
}
/* --------------------------------
* heap_destroy
*
* --------------------------------
*/
void
heap_destroy
(
char
*
relname
)
{
Relation
rdesc
;
/* ----------------
* first open the relation. if the relation does exist,
* heap_openr() returns NULL.
* ----------------
*/
rdesc
=
heap_openr
(
relname
);
if
(
rdesc
==
NULL
)
elog
(
WARN
,
"Relation %s Does Not Exist!"
,
relname
);
/* ----------------
* prevent deletion of system relations
* ----------------
*/
if
(
IsSystemRelationName
(
RelationGetRelationName
(
rdesc
)
->
data
))
elog
(
WARN
,
"amdestroy: cannot destroy %s relation"
,
&
rdesc
->
rd_rel
->
relname
);
/* ----------------
* remove inheritance information
* ----------------
*/
RelationRemoveInheritance
(
rdesc
);
/* ----------------
* remove indexes if necessary
* ----------------
*/
if
(
rdesc
->
rd_rel
->
relhasindex
)
{
RelationRemoveIndexes
(
rdesc
);
}
/* ----------------
* remove rules if necessary
* ----------------
*/
if
(
rdesc
->
rd_rules
!=
NULL
)
{
RelationRemoveRules
(
rdesc
->
rd_id
);
}
/* ----------------
* delete attribute tuples
* ----------------
*/
DeletePgAttributeTuples
(
rdesc
);
/* ----------------
* delete type tuple. here we want to see the effects
* of the deletions we just did, so we use setheapoverride().
* ----------------
*/
setheapoverride
(
true
);
DeletePgTypeTuple
(
rdesc
);
setheapoverride
(
false
);
/* ----------------
* delete relation tuple
* ----------------
*/
DeletePgRelationTuple
(
rdesc
);
/* ----------------
* flush the relation from the relcache
* ----------------
*/
RelationIdInvalidateRelationCacheByRelationId
(
rdesc
->
rd_id
);
/* ----------------
* unlink the relation and finish up.
* ----------------
*/
(
void
)
smgrunlink
(
rdesc
->
rd_rel
->
relsmgr
,
rdesc
);
if
(
rdesc
->
rd_istemp
)
{
rdesc
->
rd_tmpunlinked
=
TRUE
;
}
heap_close
(
rdesc
);
}
/*
* heap_destroyr
* destroy and close temporary relations
*
*/
void
heap_destroyr
(
Relation
rdesc
)
{
ReleaseTmpRelBuffers
(
rdesc
);
(
void
)
smgrunlink
(
rdesc
->
rd_rel
->
relsmgr
,
rdesc
);
if
(
rdesc
->
rd_istemp
)
{
rdesc
->
rd_tmpunlinked
=
TRUE
;
}
heap_close
(
rdesc
);
RemoveFromTempRelList
(
rdesc
);
}
/**************************************************************
functions to deal with the list of temporary relations
**************************************************************/
/* --------------
InitTempRellist():
initialize temporary relations list
the tempRelList is a list of temporary relations that
are created in the course of the transactions
they need to be destroyed properly at the end of the transactions
MODIFIES the global variable tempRels
>> NOTE <<
malloc is used instead of palloc because we KNOW when we are
going to free these things. Keeps us away from the memory context
hairyness
*/
void
InitTempRelList
()
{
if
(
tempRels
)
{
free
(
tempRels
->
rels
);
free
(
tempRels
);
};
tempRels
=
(
TempRelList
*
)
malloc
(
sizeof
(
TempRelList
));
tempRels
->
size
=
TEMP_REL_LIST_SIZE
;
tempRels
->
rels
=
(
Relation
*
)
malloc
(
sizeof
(
Relation
)
*
tempRels
->
size
);
memset
(
tempRels
->
rels
,
0
,
sizeof
(
Relation
)
*
tempRels
->
size
);
tempRels
->
num
=
0
;
}
/*
removes a relation from the TempRelList
MODIFIES the global variable tempRels
we don't really remove it, just mark it as NULL
and DestroyTempRels will look for NULLs
*/
void
RemoveFromTempRelList
(
Relation
r
)
{
int
i
;
if
(
!
tempRels
)
return
;
for
(
i
=
0
;
i
<
tempRels
->
num
;
i
++
)
{
if
(
tempRels
->
rels
[
i
]
==
r
)
{
tempRels
->
rels
[
i
]
=
NULL
;
break
;
}
}
}
/*
add a temporary relation to the TempRelList
MODIFIES the global variable tempRels
*/
void
AddToTempRelList
(
Relation
r
)
{
if
(
!
tempRels
)
return
;
if
(
tempRels
->
num
==
tempRels
->
size
)
{
tempRels
->
size
+=
TEMP_REL_LIST_SIZE
;
tempRels
->
rels
=
realloc
(
tempRels
->
rels
,
tempRels
->
size
);
}
tempRels
->
rels
[
tempRels
->
num
]
=
r
;
tempRels
->
num
++
;
}
/*
go through the tempRels list and destroy each of the relations
*/
void
DestroyTempRels
()
{
int
i
;
Relation
rdesc
;
if
(
!
tempRels
)
return
;
for
(
i
=
0
;
i
<
tempRels
->
num
;
i
++
)
{
rdesc
=
tempRels
->
rels
[
i
];
/* rdesc may be NULL if it has been removed from the list already */
if
(
rdesc
)
heap_destroyr
(
rdesc
);
}
free
(
tempRels
->
rels
);
free
(
tempRels
);
tempRels
=
NULL
;
}
src/backend/catalog/index.c
View file @
9e3d4c43
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.
6 1996/11/05 11:57:52
scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.
7 1996/11/06 07:31:21
scrappy Exp $
*
*
*
*
* INTERFACE ROUTINES
* INTERFACE ROUTINES
...
@@ -23,47 +23,33 @@
...
@@ -23,47 +23,33 @@
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
#include
"postgres.h"
#include
<postgres.h>
#include <catalog/pg_proc.h>
#include <catalog/pg_proc.h>
#include <storage/bufmgr.h>
#include <storage/bufmgr.h>
#include <fmgr.h>
#include <fmgr.h>
#include <access/genam.h>
#include <access/heapam.h>
#include <utils/builtins.h>
#include <access/xact.h>
#include <parser/catalog_utils.h>
#include <storage/smgr.h>
#include <storage/lmgr.h>
#include <miscadmin.h>
#include <utils/mcxt.h>
#include <utils/relcache.h>
#include <bootstrap/bootstrap.h>
#include <catalog/catname.h>
#include <catalog/catalog.h>
#include <utils/syscache.h>
#include <catalog/indexing.h>
#include <catalog/heap.h>
#include <catalog/index.h>
#include <executor/executor.h>
#include <optimizer/clauses.h>
#include <optimizer/prep.h>
#include <access/istrat.h>
#include "access/genam.h"
#include "access/heapam.h"
#include "utils/builtins.h"
#include "access/xact.h"
#include "parser/catalog_utils.h"
#include "storage/smgr.h"
#include "storage/lmgr.h"
#include "miscadmin.h"
#include "utils/mcxt.h"
#include "utils/palloc.h"
#include "utils/relcache.h"
#include "bootstrap/bootstrap.h"
#include "catalog/catname.h"
#include "catalog/catalog.h"
#include "utils/syscache.h"
#include "catalog/pg_attribute.h"
#include "catalog/pg_class.h"
#include "catalog/indexing.h"
#include "catalog/heap.h"
#include "nodes/plannodes.h"
#include "catalog/index.h"
#include "executor/executor.h"
#include "executor/tuptable.h"
#include "optimizer/clauses.h"
#include "optimizer/prep.h"
#include "access/istrat.h"
#ifndef HAVE_MEMMOVE
#ifndef HAVE_MEMMOVE
# include <regex/utils.h>
# include <regex/utils.h>
#else
#else
...
...
src/backend/catalog/indexing.c
View file @
9e3d4c43
...
@@ -8,30 +8,26 @@
...
@@ -8,30 +8,26 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.
3 1996/11/03 23:27:04
scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.
4 1996/11/06 07:31:22
scrappy Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
#include "postgres.h"
#include <postgres.h>
#include "utils/builtins.h"
#include "utils/oidcompos.h"
#include <utils/builtins.h>
#include "utils/palloc.h"
#include <utils/oidcompos.h>
#include "access/heapam.h"
#include <access/heapam.h>
#include "access/genam.h"
#include <access/genam.h>
#include "access/skey.h"
#include <storage/bufmgr.h>
#include "storage/bufmgr.h"
#include <nodes/execnodes.h>
#include "nodes/execnodes.h"
#include <catalog/catalog.h>
#include "catalog/catalog.h"
#include <catalog/catname.h>
#include "catalog/catname.h"
#include <catalog/pg_index.h>
#include "catalog/pg_index.h"
#include <catalog/pg_proc.h>
#include "catalog/pg_proc.h"
#include <utils/syscache.h>
#include "catalog/pg_class.h"
#include <catalog/indexing.h>
#include "catalog/pg_attribute.h"
#include <catalog/index.h>
#include "utils/syscache.h"
#include <miscadmin.h>
#include "catalog/indexing.h"
#include "catalog/index.h"
#include "miscadmin.h"
/*
/*
* Names of indices on the following system catalogs:
* Names of indices on the following system catalogs:
...
...
src/backend/catalog/pg_aggregate.c
View file @
9e3d4c43
...
@@ -7,29 +7,27 @@
...
@@ -7,29 +7,27 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.
2 1996/11/03 23:27:05
scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_aggregate.c,v 1.
3 1996/11/06 07:31:23
scrappy Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
#include <string.h>
#include <postgres.h>
#include "postgres.h"
#include "access/heapam.h"
#include <access/heapam.h>
#include "access/relscan.h"
#include <utils/builtins.h>
#include "access/skey.h"
#include <fmgr.h>
#include "access/tupdesc.h"
#include <catalog/catname.h>
#include "utils/palloc.h"
#include <utils/syscache.h>
#include "utils/builtins.h"
#include <catalog/pg_operator.h>
#include "fmgr.h"
#include <catalog/pg_proc.h>
#include <catalog/pg_type.h>
#include "catalog/catname.h"
#include <catalog/pg_aggregate.h>
#include "utils/syscache.h"
#include <miscadmin.h>
#include "catalog/pg_operator.h"
#ifndef HAVE_MEMMOVE
#include "catalog/pg_proc.h"
# include <regex/utils.h>
#include "catalog/pg_type.h"
#else
#include "catalog/pg_aggregate.h"
# include <string.h>
#endif
#include "miscadmin.h"
/* ----------------
/* ----------------
* AggregateCreate
* AggregateCreate
...
...
src/backend/catalog/pg_operator.c
View file @
9e3d4c43
...
@@ -7,32 +7,29 @@
...
@@ -7,32 +7,29 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.
4 1996/11/05 11:57:53
scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_operator.c,v 1.
5 1996/11/06 07:31:24
scrappy Exp $
*
*
* NOTES
* NOTES
* these routines moved here from commands/define.c and somewhat cleaned up.
* these routines moved here from commands/define.c and somewhat cleaned up.
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
#include <string.h>
#include <postgres.h>
#include "postgres.h"
#include <catalog/pg_proc.h>
#include <catalog/pg_proc.h>
#include <utils/syscache.h>
#include <utils/syscache.h>
#include <access/heapam.h>
#include "access/heapam.h"
#include <parser/catalog_utils.h>
#include "access/skey.h"
#include <catalog/catname.h>
#include "access/htup.h"
#include <catalog/pg_operator.h>
#include "utils/palloc.h"
#include <storage/bufmgr.h>
#include "parser/catalog_utils.h"
#include <fmgr.h>
#include <miscadmin.h>
#include "catalog/catname.h"
#ifndef HAVE_MEMMOVE
#include "catalog/pg_operator.h"
# include <regex/utils.h>
#include "storage/bufmgr.h"
#else
# include <string.h>
#include "fmgr.h"
#endif
#include "miscadmin.h"
static
Oid
OperatorGetWithOpenRelation
(
Relation
pg_operator_desc
,
static
Oid
OperatorGetWithOpenRelation
(
Relation
pg_operator_desc
,
const
char
*
operatorName
,
const
char
*
operatorName
,
...
...
src/backend/catalog/pg_proc.c
View file @
9e3d4c43
...
@@ -7,33 +7,33 @@
...
@@ -7,33 +7,33 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.
3 1996/11/05 11:57:54
scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_proc.c,v 1.
4 1996/11/06 07:31:25
scrappy Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
#include <
string
.h>
#include <
postgres
.h>
#include "postgres.h"
#include <utils/syscache.h>
#include <utils/syscache.h>
#include <catalog/pg_proc.h>
#include <catalog/pg_proc.h>
#include <access/heapam.h>
#include
"access/heapam.h"
#include
<access/relscan.h>
#include
"access/relscan.h"
#include
<fmgr.h>
#include
"access/skey.h"
#include
<utils/builtins.h>
#include
"fmgr.h"
#include
<utils/sets.h>
#include
"utils/builtins.h"
#include
<catalog/catname.h>
#include
"utils/sets.h"
#include
<catalog/indexing.h>
#include <parser/parse_query.h>
#include
"catalog/catname.h"
#include
<tcop/tcopprot.h>
#include
"catalog/indexing.h"
#include
<parser/catalog_utils.h>
#include
"parser/parse_query.h"
#include
<optimizer/internal.h>
#include
"tcop/tcopprot.h"
#include
<optimizer/planner.h>
#include
"parser/catalog_utils.h"
#include
<utils/lsyscache.h>
#include
"optimizer/internal.h"
#include
<miscadmin.h>
#i
nclude "optimizer/planner.h"
#i
fndef HAVE_MEMMOVE
# include <regex/utils.h>
#
include "utils/lsyscache.h"
#
else
# include <string.h>
#
include "miscadmin.h"
#
endif
/* ----------------------------------------------------------------
/* ----------------------------------------------------------------
* ProcedureDefine
* ProcedureDefine
...
...
src/backend/catalog/pg_type.c
View file @
9e3d4c43
...
@@ -7,30 +7,28 @@
...
@@ -7,30 +7,28 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.
3 1996/11/05 11:57:55
scrappy Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/pg_type.c,v 1.
4 1996/11/06 07:31:26
scrappy Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
#include <
string
.h>
#include <
postgres
.h>
#include "postgres.h"
#include <utils/syscache.h>
#include <utils/syscache.h>
#include <catalog/pg_proc.h>
#include <catalog/pg_proc.h>
#include <access/heapam.h>
#include <access/relscan.h>
#include "access/heapam.h"
#include <utils/builtins.h>
#include "access/relscan.h"
#include <fmgr.h>
#include "access/skey.h"
#include <parser/catalog_utils.h>
#include "access/tupdesc.h"
#include <catalog/catname.h>
#include "utils/builtins.h"
#include <catalog/indexing.h>
#include "utils/palloc.h"
#include <storage/lmgr.h>
#include "fmgr.h"
#include <miscadmin.h>
#include "parser/catalog_utils.h"
#ifndef HAVE_MEMMOVE
# include <regex/utils.h>
#include "catalog/catname.h"
#else
#include "catalog/indexing.h"
# include <string.h>
#include "storage/lmgr.h"
#endif
#include "miscadmin.h"
/* ----------------------------------------------------------------
/* ----------------------------------------------------------------
* TypeGetWithOpenRelation
* TypeGetWithOpenRelation
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment