|
|
|
|
@ -3401,11 +3401,25 @@ CreateAsStmt: |
|
|
|
|
ctas->into = $4; |
|
|
|
|
ctas->relkind = OBJECT_TABLE; |
|
|
|
|
ctas->is_select_into = false; |
|
|
|
|
ctas->if_not_exists = false; |
|
|
|
|
/* cram additional flags into the IntoClause */ |
|
|
|
|
$4->rel->relpersistence = $2; |
|
|
|
|
$4->skipData = !($7); |
|
|
|
|
$$ = (Node *) ctas; |
|
|
|
|
} |
|
|
|
|
| CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS SelectStmt opt_with_data |
|
|
|
|
{ |
|
|
|
|
CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); |
|
|
|
|
ctas->query = $9; |
|
|
|
|
ctas->into = $7; |
|
|
|
|
ctas->relkind = OBJECT_TABLE; |
|
|
|
|
ctas->is_select_into = false; |
|
|
|
|
ctas->if_not_exists = true; |
|
|
|
|
/* cram additional flags into the IntoClause */ |
|
|
|
|
$7->rel->relpersistence = $2; |
|
|
|
|
$7->skipData = !($10); |
|
|
|
|
$$ = (Node *) ctas; |
|
|
|
|
} |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
create_as_target: |
|
|
|
|
@ -3444,11 +3458,25 @@ CreateMatViewStmt: |
|
|
|
|
ctas->into = $5; |
|
|
|
|
ctas->relkind = OBJECT_MATVIEW; |
|
|
|
|
ctas->is_select_into = false; |
|
|
|
|
ctas->if_not_exists = false; |
|
|
|
|
/* cram additional flags into the IntoClause */ |
|
|
|
|
$5->rel->relpersistence = $2; |
|
|
|
|
$5->skipData = !($8); |
|
|
|
|
$$ = (Node *) ctas; |
|
|
|
|
} |
|
|
|
|
| CREATE OptNoLog MATERIALIZED VIEW IF_P NOT EXISTS create_mv_target AS SelectStmt opt_with_data |
|
|
|
|
{ |
|
|
|
|
CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); |
|
|
|
|
ctas->query = $10; |
|
|
|
|
ctas->into = $8; |
|
|
|
|
ctas->relkind = OBJECT_MATVIEW; |
|
|
|
|
ctas->is_select_into = false; |
|
|
|
|
ctas->if_not_exists = true; |
|
|
|
|
/* cram additional flags into the IntoClause */ |
|
|
|
|
$8->rel->relpersistence = $2; |
|
|
|
|
$8->skipData = !($11); |
|
|
|
|
$$ = (Node *) ctas; |
|
|
|
|
} |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
create_mv_target: |
|
|
|
|
|