Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7516f52

Browse files
committed
BRIN: Block Range Indexes
BRIN is a new index access method intended to accelerate scans of verylarge tables, without the maintenance overhead of btrees or othertraditional indexes. They work by maintaining "summary" data aboutblock ranges. Bitmap index scans work by reading each summary tuple andcomparing them with the query quals; all pages in the range are returnedin a lossy TID bitmap if the quals are consistent with the values in thesummary tuple, otherwise not. Normal index scans are not supportedbecause these indexes do not store TIDs.As new tuples are added into the index, the summary information isupdated (if the block range in which the tuple is added is alreadysummarized) or not; in the latter case, a subsequent pass of VACUUM orthe brin_summarize_new_values() function will create the summaryinformation.For data types with natural 1-D sort orders, the summary info consistsof the maximum and the minimum values of each indexed column within eachpage range. This type of operator class we call "Minmax", and wesupply a bunch of them for most data types with B-tree opclasses.Since the BRIN code is generalized, other approaches are possible forthings such as arrays, geometric types, ranges, etc; even for thingssuch as enum types we could do something different than minmax withbetter results. In this commit I only include minmax.Catalog version bumped due to new builtin catalog entries.There's more that could be done here, but this is a good step forwards.Loosely based on ideas from Simon Riggs; code mostly by Álvaro Herrera,with contribution by Heikki Linnakangas.Patch reviewed by: Amit Kapila, Heikki Linnakangas, Robert Haas.Testing help from Jeff Janes, Erik Rijkers, Emanuel Calvo.PS: The research leading to these results has received funding from the European Union's Seventh Framework Programme (FP7/2007-2013) under grant agreement n° 318633.
1 parent1961b1c commit7516f52

File tree

57 files changed

+6807
-24
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+6807
-24
lines changed

‎contrib/pageinspect/Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# contrib/pageinspect/Makefile
22

33
MODULE_big= pageinspect
4-
OBJS= rawpage.o heapfuncs.o btreefuncs.o fsmfuncs.o$(WIN32RES)
4+
OBJS= rawpage.o heapfuncs.o btreefuncs.o fsmfuncs.obrinfuncs.o$(WIN32RES)
55

66
EXTENSION = pageinspect
7-
DATA = pageinspect--1.2.sql pageinspect--1.0--1.1.sql\
7+
DATA = pageinspect--1.3.sql pageinspect--1.0--1.1.sql\
8+
pageinspect--1.2--1.3.sql\
89
pageinspect--1.1--1.2.sql pageinspect--unpackaged--1.0.sql
910
PGFILEDESC = "pageinspect - functions to inspect contents of database pages"
1011

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp