Vertica Analytics Platform Version 9.2.x Documentation

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 CREATE TABLE. The auto projection is always a superprojection.

For example:

store.customer_dimension_super

proj‑basename[_unseg]

Identifies an unsegmented projection. If proj-basename is identical to the anchor table name, Vertica appends the string _unseg to the projection name. If the projection is copied on all nodes, this projection name maps to all instances.

For example:

store.customer_dimension_unseg

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:

store.store_orders_fact_b0
store.store_orders_fact_b1

One exception applies: Vertica uses the following convention to name live aggregate projections:

  • proj‑basename
  • proj‑basename_b1
  • ...

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

tgtTableName_string

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_b1
T1_proj1_b0
T1_proj1_b1
proj2_b0
proj2_b1