Projection Naming
Vertica identifies projections according to the following conventions, where proj‑basename is the name assigned to this projection by CREATE PROJECTION
.
Unsegmented Projections
Unsegmented projections conform to the following naming conventions:
table‑name_super
|
Identifies the auto projection that Vertica automatically creates when you initially load data into an unsegmented table, where table‑basename is the table name specified in For example:
|
proj‑basename[_unseg]
|
Identifies an unsegmented projection. If proj-basename is identical to the anchor table name, Vertica appends the string For example:
|
Segmented Projections
Segmented projections conform to the following naming convention:
proj‑basename_boffset
|
Identifies buddy projections for a segmented projection, where offset identifies the projection's node location relative to all other buddy projections. All buddy projections share the same project base name. For example:
One exception applies: Vertica uses the following convention to name live aggregate projections:
|
Projections of Copied Tables
Vertica creates projections for tables that you create from existing tables with CREATE TABLE LIKE...INCLUDING PROJECTIONS
.
The following table describes the algorithm that Vertica uses to assign base names to the new projections:
Source projection name | Target | ||
---|---|---|---|
Schema | Table | Projection base name | |
string | Same | Different | tgtTableName_string
|
string | Different | Same | string
|
string | Different | Different |
|
srcTableName_string
|
Same | Different | tgtTableName_string
|
srcTableName_string
|
Different | Different | tgtTableName_string
|
For example, given the following table and its segmented projections:
Table name | Projection names |
---|---|
public.T1 |
T1_b0 T1_b1 |
T1_proj1_b0 T1_proj1_b1 |
|
proj2_b0 proj2_b1 |
The following CREATE TABLE…LIKE
statements copy table public.T1
and its projections to tables public.T2
and private.T1
:
CREATE TABLE public.T2 LIKE public.T1 INCLUDING PROJECTIONS; CREATE TABLE private.T1 LIKE public.T1 INCLUDING PROJECTIONS;
For each new table, Vertica copies the public.T1
projections as follows:
New table name | Copied projection names |
---|---|
public.T2 |
T2_b0 T2_b1 |
T2_proj1_b0 T2_proj1_b1 |
|
T2_proj2_b0 T2_proj2_b1 |
|
private.T1 |
T1_b0 |
T1_proj1_b0 T1_proj1_b1 |
|
proj2_b0 proj2_b1 |