Skip to content
Snippets Groups Projects
user avatar
Bruce Momjian authored
(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
03194432
History
Name Last commit Last update
..
abort.sgml
allfiles.sgml
alter_database.sgml
alter_group.sgml
alter_table.sgml
alter_user.sgml
analyze.sgml
begin.sgml
checkpoint.sgml
close.sgml
cluster.sgml
comment.sgml
commit.sgml
copy.sgml
create_aggregate.sgml
create_constraint.sgml
create_database.sgml
create_function.sgml
create_group.sgml
create_index.sgml
create_language.sgml
create_operator.sgml
create_rule.sgml
create_sequence.sgml
create_table.sgml
create_table_as.sgml
create_trigger.sgml
create_type.sgml
create_user.sgml
create_view.sgml
createdb.sgml
createlang.sgml
createuser.sgml
current_date.sgml
current_time.sgml
current_timestamp.sgml
current_user.sgml
declare.sgml
delete.sgml
drop_aggregate.sgml
drop_database.sgml
drop_function.sgml
drop_group.sgml
drop_index.sgml
drop_language.sgml
drop_operator.sgml
drop_rule.sgml
drop_sequence.sgml
drop_table.sgml
drop_trigger.sgml
drop_type.sgml
drop_user.sgml
drop_view.sgml
dropdb.sgml
droplang.sgml
dropuser.sgml
ecpg-ref.sgml
end.sgml
explain.sgml
fetch.sgml
grant.sgml
initdb.sgml
initlocation.sgml
insert.sgml
ipcclean.sgml
listen.sgml
load.sgml
lock.sgml
move.sgml
notify.sgml
pg_config-ref.sgml
pg_ctl-ref.sgml
pg_dump.sgml
pg_dumpall.sgml
pg_passwd.sgml
pg_restore.sgml
pgaccess-ref.sgml
pgtclsh.sgml
pgtksh.sgml
postgres-ref.sgml
postmaster.sgml
psql-ref.sgml
reindex.sgml
reset.sgml
revoke.sgml
rollback.sgml
select.sgml
select_into.sgml
set.sgml
set_constraints.sgml
set_session_auth.sgml
set_transaction.sgml
show.sgml
truncate.sgml
unlisten.sgml
update.sgml
vacuum.sgml
vacuumdb.sgml