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
08817bdb
Commit
08817bdb
authored
Sep 22, 2005
by
Tom Lane
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adjust GiST error messages to conform to message style guidelines.
parent
a453951d
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
41 additions
and
36 deletions
+41
-36
src/backend/access/gist/gistscan.c
src/backend/access/gist/gistscan.c
+4
-3
src/backend/access/gist/gistutil.c
src/backend/access/gist/gistutil.c
+5
-4
src/backend/access/gist/gistvacuum.c
src/backend/access/gist/gistvacuum.c
+7
-6
src/backend/access/gist/gistxlog.c
src/backend/access/gist/gistxlog.c
+25
-23
No files found.
src/backend/access/gist/gistscan.c
View file @
08817bdb
...
...
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/gist/gistscan.c,v 1.
59 2005/06/27 12:45:22 teodor
Exp $
* $PostgreSQL: pgsql/src/backend/access/gist/gistscan.c,v 1.
60 2005/09/22 18:49:45 tgl
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -380,7 +380,7 @@ gistadjone(IndexScanDesc scan,
*/
static
void
adjustiptr
(
IndexScanDesc
scan
,
ItemPointer
iptr
,
GISTSearchStack
*
stk
,
ItemPointer
iptr
,
GISTSearchStack
*
stk
,
int
op
,
BlockNumber
blkno
,
OffsetNumber
offnum
,
XLogRecPtr
newlsn
,
XLogRecPtr
oldlsn
)
...
...
@@ -422,7 +422,8 @@ adjustiptr(IndexScanDesc scan,
}
break
;
default:
elog
(
ERROR
,
"Bad operation in GiST scan adjust: %d"
,
op
);
elog
(
ERROR
,
"unrecognized GiST scan adjust operation: %d"
,
op
);
}
}
}
...
...
src/backend/access/gist/gistutil.c
View file @
08817bdb
...
...
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/gist/gistutil.c,v 1.
5 2005/06/30 17:52:14 teodor
Exp $
* $PostgreSQL: pgsql/src/backend/access/gist/gistutil.c,v 1.
6 2005/09/22 18:49:45 tgl
Exp $
*-------------------------------------------------------------------------
*/
#include "postgres.h"
...
...
@@ -71,7 +71,7 @@ gistfillbuffer(Relation r, Page page, IndexTuple *itup,
l
=
PageAddItem
(
page
,
(
Item
)
itup
[
i
],
IndexTupleSize
(
itup
[
i
]),
off
,
LP_USED
);
if
(
l
==
InvalidOffsetNumber
)
elog
(
ERROR
,
"
gistfillbuffer: failed to add index item to
\"
%s
\"
"
,
elog
(
ERROR
,
"
failed to add item to index page in
\"
%s
\"
"
,
RelationGetRelationName
(
r
));
off
++
;
}
...
...
@@ -645,8 +645,9 @@ gistchoose(Relation r, Page p, IndexTuple it, /* it has compressed entry */
IndexTuple
itup
=
(
IndexTuple
)
PageGetItem
(
p
,
PageGetItemId
(
p
,
i
));
if
(
!
GistPageIsLeaf
(
p
)
&&
GistTupleIsInvalid
(
itup
)
)
{
elog
(
LOG
,
"It's desirable to vacuum or reindex GiST index '%s' due to crash recovery"
,
RelationGetRelationName
(
r
));
ereport
(
LOG
,
(
errmsg
(
"index
\"
%s
\"
needs VACUUM or REINDEX to finish crash recovery"
,
RelationGetRelationName
(
r
))));
continue
;
}
...
...
src/backend/access/gist/gistvacuum.c
View file @
08817bdb
...
...
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.
7 2005/09/02 19:02:19
tgl Exp $
* $PostgreSQL: pgsql/src/backend/access/gist/gistvacuum.c,v 1.
8 2005/09/22 18:49:45
tgl Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -78,7 +78,8 @@ gistVacuumUpdate( GistVacuum *gv, BlockNumber blkno, bool needunion ) {
needchildunion
=
(
GistTupleIsInvalid
(
idxtuple
))
?
true
:
false
;
if
(
needchildunion
)
elog
(
DEBUG2
,
"gistVacuumUpdate: Need union for block %u"
,
ItemPointerGetBlockNumber
(
&
(
idxtuple
->
t_tid
)));
elog
(
DEBUG2
,
"gistVacuumUpdate: need union for block %u"
,
ItemPointerGetBlockNumber
(
&
(
idxtuple
->
t_tid
)));
chldtuple
=
gistVacuumUpdate
(
gv
,
ItemPointerGetBlockNumber
(
&
(
idxtuple
->
t_tid
)),
needchildunion
);
...
...
@@ -309,10 +310,10 @@ gistvacuumcleanup(PG_FUNCTION_ARGS) {
}
freeGISTstate
(
&
(
gv
.
giststate
));
MemoryContextDelete
(
gv
.
opCtx
);
}
else
if
(
needFullVacuum
)
{
e
log
(
NOTICE
,
"It's desirable to vacuum full or reindex GiST index '%s' due to crash recovery"
,
RelationGetRelationName
(
rel
));
}
}
else
if
(
needFullVacuum
)
e
report
(
NOTICE
,
(
errmsg
(
"index
\"
%s
\"
needs VACUUM FULL or REINDEX to finish crash recovery"
,
RelationGetRelationName
(
rel
))));
needFullVacuum
=
false
;
...
...
src/backend/access/gist/gistxlog.c
View file @
08817bdb
...
...
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/gist/gistxlog.c,v 1.
7 2005/07/01 13:18:17 teodor
Exp $
* $PostgreSQL: pgsql/src/backend/access/gist/gistxlog.c,v 1.
8 2005/09/22 18:49:45 tgl
Exp $
*-------------------------------------------------------------------------
*/
#include "postgres.h"
...
...
@@ -162,7 +162,7 @@ gistRedoEntryUpdateRecord(XLogRecPtr lsn, XLogRecord *record, bool isnewroot) {
return
;
buffer
=
XLogReadBuffer
(
false
,
reln
,
xlrec
.
data
->
blkno
);
if
(
!
BufferIsValid
(
buffer
))
elog
(
PANIC
,
"
gistRedoEntryUpdateRecord:
block %u unfound"
,
xlrec
.
data
->
blkno
);
elog
(
PANIC
,
"block %u unfound"
,
xlrec
.
data
->
blkno
);
page
=
(
Page
)
BufferGetPage
(
buffer
);
if
(
isnewroot
)
{
...
...
@@ -173,7 +173,7 @@ gistRedoEntryUpdateRecord(XLogRecPtr lsn, XLogRecord *record, bool isnewroot) {
}
}
else
{
if
(
PageIsNew
((
PageHeader
)
page
)
)
elog
(
PANIC
,
"
gistRedoEntryUpdateRecord: uninitialized page blkno
%u"
,
xlrec
.
data
->
blkno
);
elog
(
PANIC
,
"
uninitialized page
%u"
,
xlrec
.
data
->
blkno
);
if
(
XLByteLE
(
lsn
,
PageGetLSN
(
page
)))
{
LockBuffer
(
buffer
,
BUFFER_LOCK_UNLOCK
);
ReleaseBuffer
(
buffer
);
...
...
@@ -270,11 +270,10 @@ gistRedoPageSplitRecord(XLogRecPtr lsn, XLogRecord *record ) {
/* first of all wee need get F_LEAF flag from original page */
buffer
=
XLogReadBuffer
(
false
,
reln
,
xlrec
.
data
->
origblkno
);
if
(
!
BufferIsValid
(
buffer
))
elog
(
PANIC
,
"
gistRedoEntryUpdateRecord:
block %u unfound"
,
xlrec
.
data
->
origblkno
);
elog
(
PANIC
,
"block %u unfound"
,
xlrec
.
data
->
origblkno
);
page
=
(
Page
)
BufferGetPage
(
buffer
);
if
(
PageIsNew
((
PageHeader
)
page
)
)
elog
(
PANIC
,
"gistRedoEntryUpdateRecord: uninitialized page blkno %u"
,
xlrec
.
data
->
origblkno
);
elog
(
PANIC
,
"uninitialized page %u"
,
xlrec
.
data
->
origblkno
);
flags
=
(
GistPageIsLeaf
(
page
)
)
?
F_LEAF
:
0
;
LockBuffer
(
buffer
,
BUFFER_LOCK_UNLOCK
);
...
...
@@ -287,7 +286,7 @@ gistRedoPageSplitRecord(XLogRecPtr lsn, XLogRecord *record ) {
buffer
=
XLogReadBuffer
(
!
isorigpage
,
reln
,
newpage
->
header
->
blkno
);
if
(
!
BufferIsValid
(
buffer
))
elog
(
PANIC
,
"
gistRedoEntryUpdateRecord:
block %u unfound"
,
newpage
->
header
->
blkno
);
elog
(
PANIC
,
"block %u unfound"
,
newpage
->
header
->
blkno
);
page
=
(
Page
)
BufferGetPage
(
buffer
);
if
(
XLByteLE
(
lsn
,
PageGetLSN
(
page
)))
{
...
...
@@ -330,7 +329,7 @@ gistRedoCreateIndex(XLogRecPtr lsn, XLogRecord *record) {
return
;
buffer
=
XLogReadBuffer
(
true
,
reln
,
GIST_ROOT_BLKNO
);
if
(
!
BufferIsValid
(
buffer
))
elog
(
PANIC
,
"
gistRedoCreateIndex:
block unfound"
);
elog
(
PANIC
,
"
root
block unfound"
);
page
=
(
Page
)
BufferGetPage
(
buffer
);
if
(
!
PageIsNew
((
PageHeader
)
page
)
&&
XLByteLE
(
lsn
,
PageGetLSN
(
page
)))
{
...
...
@@ -450,6 +449,7 @@ gist_desc(char *buf, uint8 xl_info, char *rec)
((
gistxlogInsertComplete
*
)
rec
)
->
node
.
spcNode
,
((
gistxlogInsertComplete
*
)
rec
)
->
node
.
dbNode
,
((
gistxlogInsertComplete
*
)
rec
)
->
node
.
relNode
);
break
;
default:
elog
(
PANIC
,
"gist_desc: unknown op code %u"
,
info
);
}
...
...
@@ -474,9 +474,9 @@ static Buffer
gistXLogReadAndLockBuffer
(
Relation
r
,
BlockNumber
blkno
)
{
Buffer
buffer
=
XLogReadBuffer
(
false
,
r
,
blkno
);
if
(
!
BufferIsValid
(
buffer
))
elog
(
PANIC
,
"
gistXLogReadAndLockBuffer:
block %u unfound"
,
blkno
);
elog
(
PANIC
,
"block %u unfound"
,
blkno
);
if
(
PageIsNew
(
(
PageHeader
)(
BufferGetPage
(
buffer
))
)
)
elog
(
PANIC
,
"
gistXLogReadAndLockBuffer: uninitialized page blkno
%u"
,
blkno
);
elog
(
PANIC
,
"
uninitialized page
%u"
,
blkno
);
return
buffer
;
}
...
...
@@ -507,7 +507,7 @@ gixtxlogFindPath( Relation index, gistIncompleteInsert *insert ) {
ptr
=
ptr
->
parent
;
}
}
else
elog
(
LOG
,
"
gixtxlogFindPath:
lost parent for block %u"
,
insert
->
origblkno
);
elog
(
LOG
,
"lost parent for block %u"
,
insert
->
origblkno
);
}
/*
...
...
@@ -545,7 +545,7 @@ gistContinueInsert(gistIncompleteInsert *insert) {
Page
page
;
if
(
!
BufferIsValid
(
buffer
))
elog
(
PANIC
,
"
gistContinueInsert:
root block unfound"
);
elog
(
PANIC
,
"root block unfound"
);
page
=
BufferGetPage
(
buffer
);
if
(
XLByteLE
(
insert
->
lsn
,
PageGetLSN
(
page
)))
{
...
...
@@ -580,10 +580,10 @@ gistContinueInsert(gistIncompleteInsert *insert) {
numbuffer
=
1
;
buffers
[
numbuffer
-
1
]
=
XLogReadBuffer
(
false
,
index
,
insert
->
path
[
i
]);
if
(
!
BufferIsValid
(
buffers
[
numbuffer
-
1
]))
elog
(
PANIC
,
"
gistContinueInsert:
block %u unfound"
,
insert
->
path
[
i
]);
elog
(
PANIC
,
"block %u unfound"
,
insert
->
path
[
i
]);
pages
[
numbuffer
-
1
]
=
BufferGetPage
(
buffers
[
numbuffer
-
1
]
);
if
(
PageIsNew
((
PageHeader
)(
pages
[
numbuffer
-
1
]))
)
elog
(
PANIC
,
"
gistContinueInsert: uninitialized page blkno
%u"
,
insert
->
path
[
i
]);
elog
(
PANIC
,
"
uninitialized page
%u"
,
insert
->
path
[
i
]);
if
(
XLByteLE
(
insert
->
lsn
,
PageGetLSN
(
pages
[
numbuffer
-
1
])))
{
LockBuffer
(
buffers
[
numbuffer
-
1
],
BUFFER_LOCK_UNLOCK
);
...
...
@@ -614,7 +614,7 @@ gistContinueInsert(gistIncompleteInsert *insert) {
/* no space left on page, so we should split */
buffers
[
numbuffer
]
=
XLogReadBuffer
(
true
,
index
,
P_NEW
);
if
(
!
BufferIsValid
(
buffers
[
numbuffer
]))
elog
(
PANIC
,
"
gistContinueInsert: can't create
new block"
);
elog
(
PANIC
,
"
could not obtain
new block"
);
GISTInitBuffer
(
buffers
[
numbuffer
],
0
);
pages
[
numbuffer
]
=
BufferGetPage
(
buffers
[
numbuffer
]
);
gistfillbuffer
(
index
,
pages
[
numbuffer
],
itup
,
lenitup
,
FirstOffsetNumber
);
...
...
@@ -628,13 +628,13 @@ gistContinueInsert(gistIncompleteInsert *insert) {
/* sanity check */
if
(
i
+
1
!=
insert
->
pathlen
)
elog
(
PANIC
,
"
gistContinueInsert: can't restore index '%s'
"
,
RelationGetRelationName
(
index
));
elog
(
PANIC
,
"
unexpected pathlen in index
\"
%s
\"
"
,
RelationGetRelationName
(
index
));
/* fill new page */
buffers
[
numbuffer
]
=
XLogReadBuffer
(
true
,
index
,
P_NEW
);
if
(
!
BufferIsValid
(
buffers
[
numbuffer
]))
elog
(
PANIC
,
"
gistContinueInsert: can't create
new block"
);
elog
(
PANIC
,
"
could not obtain
new block"
);
GISTInitBuffer
(
buffers
[
numbuffer
],
0
);
pages
[
numbuffer
]
=
BufferGetPage
(
buffers
[
numbuffer
]
);
gistfillbuffer
(
index
,
pages
[
numbuffer
],
parentitup
,
pituplen
,
FirstOffsetNumber
);
...
...
@@ -644,12 +644,12 @@ gistContinueInsert(gistIncompleteInsert *insert) {
GISTInitBuffer
(
buffers
[
0
],
0
);
for
(
j
=
1
;
j
<
numbuffer
;
j
++
)
{
IndexTuple
tuple
=
gist_form_invalid_tuple
(
BufferGetBlockNumber
(
buffers
[
j
]
)
);
if
(
InvalidOffsetNumber
==
PageAddItem
(
pages
[
0
],
if
(
PageAddItem
(
pages
[
0
],
(
Item
)
tuple
,
IndexTupleSize
(
tuple
),
(
OffsetNumber
)
j
,
LP_USED
)
)
elog
(
PANIC
,
"gistContinueInsert: can't restore index '%s'
"
,
LP_USED
)
==
InvalidOffsetNumber
)
elog
(
PANIC
,
"failed to add item to index page in
\"
%s
\"
"
,
RelationGetRelationName
(
index
));
}
}
...
...
@@ -668,8 +668,10 @@ gistContinueInsert(gistIncompleteInsert *insert) {
}
}
elog
(
LOG
,
"Detected incomplete insert into GiST index %u/%u/%u; It's desirable to vacuum or reindex index"
,
insert
->
node
.
spcNode
,
insert
->
node
.
dbNode
,
insert
->
node
.
relNode
);
ereport
(
LOG
,
(
errmsg
(
"index %u/%u/%u needs VACUUM or REINDEX to finish crash recovery"
,
insert
->
node
.
spcNode
,
insert
->
node
.
dbNode
,
insert
->
node
.
relNode
),
errdetail
(
"Incomplete insertion detected during crash replay."
)));
}
void
...
...
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