Thread: pgsql/ oc/src/sgml/xfunc.sgml oc/src/sgml/ref/ ...

pgsql/ oc/src/sgml/xfunc.sgml oc/src/sgml/ref/ ...

From
momjian@postgresql.org (Bruce Momjian - CVS)
Date:
CVSROOT:    /cvsroot
Module name:    pgsql
Changes by:    momjian@postgresql.org    02/03/05 00:33:34

Modified files:
    doc/src/sgml   : xfunc.sgml
    doc/src/sgml/ref: alter_table.sgml
    src/backend/access/heap: tuptoaster.c
    src/backend/commands: command.c
    src/backend/parser: gram.y keywords.c
    src/backend/tcop: utility.c
    src/backend/utils/adt: varlena.c
    src/backend/utils/fmgr: fmgr.c
    src/include    : fmgr.h
    src/include/access: tuptoaster.h
    src/include/commands: command.h
    src/include/nodes: parsenodes.h

Log message:
    I attach a version of my toast-slicing patch, against current CVS
    (current as of a few hours ago.)

    This patch:

    1. Adds PG_GETARG_xxx_P_SLICE() macros and associated support routines.

    2. Adds routines in src/backend/access/tuptoaster.c for fetching only
    necessary chunks of a toasted value. (Modelled on latest changes to
    assume chunks are returned in order).

    3. Amends text_substr and bytea_substr to use new methods. It now
    handles multibyte cases -and should still lead to a performance
    improvement in the multibyte case where the substring is near the
    beginning of the string.

    4. Added new command: ALTER TABLE tabname ALTER COLUMN colname SET
    STORAGE {PLAIN | EXTERNAL | EXTENDED | MAIN} to parser and documented in
    alter-table.sgml. (NB I used ColId as the item type for the storage
    mode string, rather than a new production - I hope this makes sense!).
    All this does is sets attstorage for the specified column.

    4. AlterTableAlterColumnStatistics is now AlterTableAlterColumnFlags and
    handles both statistics and storage (it uses the subtype code to
    distinguish). The previous version of my patch also re-arranged other
    code in backend/commands/command.c but I have dropped that from this
    patch.(I plan to return to it separately).

    5. Documented new macros (and also the PG_GETARG_xxx_P_COPY macros) in
    xfunc.sgml. ref/alter_table.sgml also contains documentation for ALTER
    COLUMN SET STORAGE.

    John Gray