sebastian
sebastian

Reputation: 2348

Failing create table in Redshift

I pgdumped a redshift table and I am trying to restore it. however, I get an error when restoring. I've even attempted to run the create table command manually and it produces an error. I can't figure out what is wrong. Thanks.

CREATE TABLE report (
    experiment_id bigint,
    offer_type character varying(50),
    variant_id bigint,
    variant_name character varying(256),
    active_lapsed character varying(10),
    active_lapsed_new character varying(10),
    am_pm_dominance character varying(20),
    channel character varying(50),
    daypart character varying(20),
    marketable boolean,
    tcm character varying(5),
    vip_flag boolean,
    weekly_freq_over_8w double precision,
    product1 integer,
    product2 integer,
    product3 integer,
    product4 integer,
    product5 integer,
    reward1 integer,
    reward2 integer,
    reward3 integer,
    hurdle1 integer,
    hurdle2 integer,
    hurdle3 integer,
    product1_recommender character varying(50),
    product2_recommender character varying(50),
    product3_recommender character varying(50),
    product4_recommender character varying(50),
    product5_recommender character varying(50),
    product1_description character varying(100),
    product2_description character varying(100),
    product3_description character varying(100),
    product4_description character varying(100),
    product5_description character varying(100),
    microsegment integer,
    microsegment_desc character varying(100),
    tag character varying(50),
    error_tag character varying(25),
    vip_email character varying(50),
    count bigint,
    error_message character varying(1024),
    unlimited_redemption boolean,
    push_notification_flags character varying(60),
    weekend_3d_freq_over_8w double precision,
    experiment_group character varying(100),
    created_date date,
    automatic_hurdle_qty boolean DEFAULT false,
    product1_frequency double precision,
    product2_frequency double precision,
    product3_frequency double precision,
    product4_frequency double precision,
    product5_frequency double precision,
    weekly_freq_over_8w_after_2pm double precision,
    weekly_freq_over_8w_before_11am double precision,
    weekly_non_dominant_daypart_freq_over_8w double precision,
    automatic_product_qty boolean DEFAULT false,
    optimization_model character varying(21),
    control_bool boolean
);

This is the error I receive.

ERROR:  syntax error at or near "tag"
LINE 38:     tag character varying(50),

Upvotes: 0

Views: 478

Answers (1)

Erwin Brandstetter
Erwin Brandstetter

Reputation: 656251

tag is a reserved word in Amazon Redshift according to their online manual.

You can force it by double-quoting:

...
"tag" character varying(50),
...

But then you have to always double-quote that column name. The cleaner solution is to avoid reserved words as identifiers.

Not sure how you produced that dump with an unquoted tag as column name. Maybe using a version of pg_dump that doesn't match the database version?

Upvotes: 2

Related Questions