public inbox for [email protected]help / color / mirror / Atom feed
[PATCH 3/4] Use correct 'statistics kind' in a couple places 3+ messages / 3 participants [nested] [flat]
* [PATCH 3/4] Use correct 'statistics kind' in a couple places @ 2021-03-07 00:38 Tomas Vondra <[email protected]> 0 siblings, 0 replies; 3+ messages in thread From: Tomas Vondra @ 2021-03-07 00:38 UTC (permalink / raw) A couple places used 'statistic kind' which is inconsistent, so use 'statistics kind' consistently. --- doc/src/sgml/catalogs.sgml | 2 +- src/backend/statistics/dependencies.c | 2 +- src/backend/statistics/extended_stats.c | 2 +- src/backend/statistics/mcv.c | 2 +- src/backend/statistics/mvdistinct.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/src/sgml/catalogs.sgml b/doc/src/sgml/catalogs.sgml index b1de6d0674..64601d6b24 100644 --- a/doc/src/sgml/catalogs.sgml +++ b/doc/src/sgml/catalogs.sgml @@ -7358,7 +7358,7 @@ SCRAM-SHA-256$<replaceable><iteration count></replaceable>:<replaceable>&l <structfield>stxkind</structfield> <type>char[]</type> </para> <para> - An array containing codes for the enabled statistic kinds; + An array containing codes for the enabled statistics kinds; valid values are: <literal>d</literal> for n-distinct statistics, <literal>f</literal> for functional dependency statistics, and diff --git a/src/backend/statistics/dependencies.c b/src/backend/statistics/dependencies.c index f6e399b192..eac9285165 100644 --- a/src/backend/statistics/dependencies.c +++ b/src/backend/statistics/dependencies.c @@ -639,7 +639,7 @@ statext_dependencies_load(Oid mvoid) Anum_pg_statistic_ext_data_stxddependencies, &isnull); if (isnull) elog(ERROR, - "requested statistic kind \"%c\" is not yet built for statistics object %u", + "requested statistics kind \"%c\" is not yet built for statistics object %u", STATS_EXT_DEPENDENCIES, mvoid); result = statext_dependencies_deserialize(DatumGetByteaPP(deps)); diff --git a/src/backend/statistics/extended_stats.c b/src/backend/statistics/extended_stats.c index a030ea3653..8c05e10d0c 100644 --- a/src/backend/statistics/extended_stats.c +++ b/src/backend/statistics/extended_stats.c @@ -64,7 +64,7 @@ typedef struct StatExtEntry char *schema; /* statistics object's schema */ char *name; /* statistics object's name */ Bitmapset *columns; /* attribute numbers covered by the object */ - List *types; /* 'char' list of enabled statistic kinds */ + List *types; /* 'char' list of enabled statistics kinds */ int stattarget; /* statistics target (-1 for default) */ } StatExtEntry; diff --git a/src/backend/statistics/mcv.c b/src/backend/statistics/mcv.c index abbc1f1ba8..8335dff241 100644 --- a/src/backend/statistics/mcv.c +++ b/src/backend/statistics/mcv.c @@ -570,7 +570,7 @@ statext_mcv_load(Oid mvoid) if (isnull) elog(ERROR, - "requested statistic kind \"%c\" is not yet built for statistics object %u", + "requested statistics kind \"%c\" is not yet built for statistics object %u", STATS_EXT_DEPENDENCIES, mvoid); result = statext_mcv_deserialize(DatumGetByteaP(mcvlist)); diff --git a/src/backend/statistics/mvdistinct.c b/src/backend/statistics/mvdistinct.c index 9ef21debb6..e08c001e3f 100644 --- a/src/backend/statistics/mvdistinct.c +++ b/src/backend/statistics/mvdistinct.c @@ -153,7 +153,7 @@ statext_ndistinct_load(Oid mvoid) Anum_pg_statistic_ext_data_stxdndistinct, &isnull); if (isnull) elog(ERROR, - "requested statistic kind \"%c\" is not yet built for statistics object %u", + "requested statistics kind \"%c\" is not yet built for statistics object %u", STATS_EXT_NDISTINCT, mvoid); result = statext_ndistinct_deserialize(DatumGetByteaPP(ndist)); -- 2.26.2 --------------BCA1373AE29B32B57608F4EE Content-Type: text/x-patch; charset=UTF-8; name="0004-Extended-statistics-on-expressions-20210307.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0004-Extended-statistics-on-expressions-20210307.patch" ^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: Index AmInsert Parameter Confused? @ 2023-09-27 10:08 Matthias van de Meent <[email protected]> 0 siblings, 1 reply; 3+ messages in thread From: Matthias van de Meent @ 2023-09-27 10:08 UTC (permalink / raw) To: jacktby jacktby <[email protected]>; +Cc: [email protected] On Wed, 27 Sept 2023 at 05:03, jacktby jacktby <[email protected]> wrote: > > > > > 2023年9月27日 00:45,Matthias van de Meent <[email protected]> 写道: > > > > On Tue, 26 Sept 2023 at 18:38, jacktby jacktby <[email protected]> wrote: > >> > >> typedef bool (*aminsert_function) (Relation indexRelation, > >> Datum *values, > >> bool *isnull, > >> ItemPointer heap_tid, > >> Relation heapRelation, > >> IndexUniqueCheck checkUnique, > >> bool indexUnchanged, > >> struct IndexInfo *indexInfo); > >> > >> Why is there a heap_tid, We haven’t inserted the value, so where does it from ? > > > > Index insertion only happens after the TableAM tuple has been > > inserted. As indexes refer to locations in the heap, this TID contains > > the TID of the table tuple that contains the indexed values, so that > > the index knows which tuple to refer to. > > > > Note that access/amapi.h describes only index AM APIs; it does not > > cover the table AM APIs descibed in access/tableam.h > > > > Kind regards, > > > > Matthias van de Meent > 1.Thanks, so if we insert a tuple into a table which has a index on itself, pg will insert tuple into heap firstly, and the give the heaptid form heap to the Index am api right? Correct. I think this is also detailed in various places of the documentation, yes. > 2. I’m trying to implement a new index, but I just need the data held in index table, I hope it’s not inserted into heap, because the all data I want can be in index table. In PostgreSQL, a table maintains the source of truth for the data, and indexes are ephemeral data structures that improve the speed of querying the data in their table. As such, dropping an index should not impact the availability of the table's data. If the only copy of your (non-derived) data is in the index, then it is likely that some normal table operations will result in failures due to the tableAM/indexAM breaking built-in assumptions about access methods and data availability. Kind regards, Matthias van de Meent Neon (https://neon.tech) ^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: Index AmInsert Parameter Confused? @ 2023-09-27 16:17 jacktby jacktby <[email protected]> parent: Matthias van de Meent <[email protected]> 0 siblings, 0 replies; 3+ messages in thread From: jacktby jacktby @ 2023-09-27 16:17 UTC (permalink / raw) To: [email protected]; +Cc: [email protected] > 2023年9月27日 18:08,Matthias van de Meent <[email protected]> 写道: > > On Wed, 27 Sept 2023 at 05:03, jacktby jacktby <[email protected] <mailto:[email protected]>> wrote: >> >> >> >>> 2023年9月27日 00:45,Matthias van de Meent <[email protected]> 写道: >>> >>> On Tue, 26 Sept 2023 at 18:38, jacktby jacktby <[email protected]> wrote: >>>> >>>> typedef bool (*aminsert_function) (Relation indexRelation, >>>> Datum *values, >>>> bool *isnull, >>>> ItemPointer heap_tid, >>>> Relation heapRelation, >>>> IndexUniqueCheck checkUnique, >>>> bool indexUnchanged, >>>> struct IndexInfo *indexInfo); >>>> >>>> Why is there a heap_tid, We haven’t inserted the value, so where does it from ? >>> >>> Index insertion only happens after the TableAM tuple has been >>> inserted. As indexes refer to locations in the heap, this TID contains >>> the TID of the table tuple that contains the indexed values, so that >>> the index knows which tuple to refer to. >>> >>> Note that access/amapi.h describes only index AM APIs; it does not >>> cover the table AM APIs descibed in access/tableam.h >>> >>> Kind regards, >>> >>> Matthias van de Meent >> 1.Thanks, so if we insert a tuple into a table which has a index on itself, pg will insert tuple into heap firstly, and the give the heaptid form heap to the Index am api right? > > Correct. I think this is also detailed in various places of the > documentation, yes. > >> 2. I’m trying to implement a new index, but I just need the data held in index table, I hope it’s not inserted into heap, because the all data I want can be in index table. > > In PostgreSQL, a table maintains the source of truth for the data, and > indexes are ephemeral data structures that improve the speed of > querying the data in their table. As such, dropping an index should > not impact the availability of the table's data. > If the only copy of your (non-derived) data is in the index, then it > is likely that some normal table operations will result in failures > due to the tableAM/indexAM breaking built-in assumptions about access > methods and data availability. > > Kind regards, > > Matthias van de Meent > Neon (https://neon.tech <https://neon.tech/;) So do I need to free the ItemPointer and Values in the func implemented by myself? ^ permalink raw reply [nested|flat] 3+ messages in thread
end of thread, other threads:[~2023-09-27 16:17 UTC | newest] Thread overview: 3+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2021-03-07 00:38 [PATCH 3/4] Use correct 'statistics kind' in a couple places Tomas Vondra <[email protected]> 2023-09-27 10:08 Re: Index AmInsert Parameter Confused? Matthias van de Meent <[email protected]> 2023-09-27 16:17 ` Re: Index AmInsert Parameter Confused? jacktby jacktby <[email protected]>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox