blob: d4a10989481eebff593b04600747af6e7b2b21dd [file] [log] [blame]
# Copyright 2011-2015 Quickstep Technologies LLC.
# Copyright 2015 Pivotal Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
[default initial_logical_plan]
create table test (col int)
--
ERROR: Relation test already exists (1 : 14)
create table test (col int)
^
==
create table foo (col1 int not null,
col2 long,
col3 double,
col4 float,
col5 char(5),
col6 varchar(5),
col7 int null,
col8 long null,
col9 double null,
col10 float null,
col11 char(5) null,
col12 varchar(5) null)
--
TopLevelPlan
+-plan=CreateTable[relation=foo]
| +-attributes=
| +-AttributeReference[id=0,name=col1,relation=foo,type=Int]
| +-AttributeReference[id=1,name=col2,relation=foo,type=Long]
| +-AttributeReference[id=2,name=col3,relation=foo,type=Double]
| +-AttributeReference[id=3,name=col4,relation=foo,type=Float]
| +-AttributeReference[id=4,name=col5,relation=foo,type=Char(5)]
| +-AttributeReference[id=5,name=col6,relation=foo,type=VarChar(5)]
| +-AttributeReference[id=6,name=col7,relation=foo,type=Int NULL]
| +-AttributeReference[id=7,name=col8,relation=foo,type=Long NULL]
| +-AttributeReference[id=8,name=col9,relation=foo,type=Double NULL]
| +-AttributeReference[id=9,name=col10,relation=foo,type=Float NULL]
| +-AttributeReference[id=10,name=col11,relation=foo,type=Char(5) NULL]
| +-AttributeReference[id=11,name=col12,relation=foo,type=VarChar(5) NULL]
+-output_attributes=
+-AttributeReference[id=0,name=col1,relation=foo,type=Int]
+-AttributeReference[id=1,name=col2,relation=foo,type=Long]
+-AttributeReference[id=2,name=col3,relation=foo,type=Double]
+-AttributeReference[id=3,name=col4,relation=foo,type=Float]
+-AttributeReference[id=4,name=col5,relation=foo,type=Char(5)]
+-AttributeReference[id=5,name=col6,relation=foo,type=VarChar(5)]
+-AttributeReference[id=6,name=col7,relation=foo,type=Int NULL]
+-AttributeReference[id=7,name=col8,relation=foo,type=Long NULL]
+-AttributeReference[id=8,name=col9,relation=foo,type=Double NULL]
+-AttributeReference[id=9,name=col10,relation=foo,type=Float NULL]
+-AttributeReference[id=10,name=col11,relation=foo,type=Char(5) NULL]
+-AttributeReference[id=11,name=col12,relation=foo,type=VarChar(5) NULL]
==
create table foo (col1 int, col1 int)
--
ERROR: Column col1 is specified more than once (1 : 29)
create table foo (col1 int, col1 int)
^
==
create table foo (col1 int, CoL1 int)
--
ERROR: Column CoL1 is specified more than once (1 : 29)
create table foo (col1 int, CoL1 int)
^
==
# "_qstemp_result_" is preserved for internal use.
create table "_qstemp_result_s" (col int)
--
ERROR: Relation name cannot start with _qstemp_result_ (1 : 14)
create table "_qstemp_result_s" (col int)
^
==
# Cannot repeat Block properties.
CREATE TABLE foo (attr INT) WITH BLOCKPROPERTIES
(TYPE rowstore, TYPE columnstore);
--
ERROR: Properties must be specified at most once. (2 : 17)
(TYPE rowstore, TYPE columnstore);
^
==
# Unrecognized BLOCKPROPERTIES should throw.
CREATE TABLE foo (attr INT) WITH BLOCKPROPERTIES
(TYPE rowstore, INVALID_PROP val);
--
ERROR: Unrecognized property name. (2 : 17)
(TYPE rowstore, INVALID_PROP val);
^
==
# TYPE property only accepts names of storage blocks.
CREATE TABLE foo (attr INT) WITH BLOCKPROPERTIES
(TYPE not_a_type);
--
ERROR: Unrecognized storage type. (2 : 7)
(TYPE not_a_type);
^
==
# TYPE property must be specified.
CREATE TABLE foo (attr INT) WITH
BLOCKPROPERTIES (BLOCKSIZEMB 10);
--
ERROR: TYPE property must be specified and be a string. (2 : 1)
BLOCKPROPERTIES (BLOCKSIZEMB 1...
^
==
# Rowstores cannot have a sorted attribute.
CREATE TABLE foo (attr INT) WITH BLOCKPROPERTIES
(TYPE rowstore, SORT attr);
--
ERROR: The SORT property does not apply to this block type. (2 : 22)
(TYPE rowstore, SORT attr);
^
==
# Columnstores require a sort attribute.
CREATE TABLE foo (attr INT) WITH BLOCKPROPERTIES
(TYPE columnstore);
--
ERROR: The SORT property must be specified as an attribute name. (2 : 7)
(TYPE columnstore);
^
==
# Non-existant columns should be caught.
CREATE TABLE foo (attr INT) WITH BLOCKPROPERTIES
(TYPE columnstore, SORT not_attr);
--
ERROR: The SORT property did not match any attribute name. (2 : 25)
(TYPE columnstore, SORT not_attr);
^
==
# Sort property must be a string type, not a list.
CREATE TABLE foo (attr INT, attr2 INT) WITH BLOCKPROPERTIES
(TYPE columnstore, SORT (attr, attr2));
--
ERROR: The SORT property must be specified as an attribute name. (2 : 7)
(TYPE columnstore, SORT (attr, attr2...
^
==
# Compress should only be specified on compressed blocks.
CREATE TABLE foo (attr INT) WITH BLOCKPROPERTIES
(TYPE columnstore, SORT attr, COMPRESS ALL);
--
ERROR: The COMPRESS property does not apply to this block type. (2 : 7)
(TYPE columnstore, SORT attr, COMPRES...
^
==
# Compress property is required for compressed blocks.
CREATE TABLE foo (attr INT) WITH
BLOCKPROPERTIES (TYPE compressed_rowstore);
--
ERROR: The COMPRESS property must be specified as ALL or a list of attributes. (2 : 1)
BLOCKPROPERTIES (TYPE compresse...
^
==
# Compress cannot have an integer value
CREATE TABLE foo (attr INT, attr2 INT) WITH
BLOCKPROPERTIES (TYPE compressed_rowstore, COMPRESS 1);
--
ERROR: The COMPRESS property must be specified as ALL or a list of attributes. (2 : 1)
BLOCKPROPERTIES (TYPE compresse...
^
==
# All specified COMPRESS columns must exist.
CREATE TABLE foo (attr INT, attr2 INT) WITH BLOCKPROPERTIES
(TYPE compressed_rowstore, COMPRESS (attr, attr3));
--
ERROR: The given attribute was not found. (2 : 44)
...TYPE compressed_rowstore, COMPRESS (attr, attr3));
^
==
# BLOCKSIZEMB property must be an integer.
CREATE TABLE foo (attr INT) WITH BLOCKPROPERTIES
(TYPE rowstore, BLOCKSIZEMB ten);
--
ERROR: The BLOCKSIZEMB property must be an integer. (2 : 17)
(TYPE rowstore, BLOCKSIZEMB ten);
^
==
# BLOCKSIZEMB must not be 0.
CREATE TABLE foo (attr INT) WITH BLOCKPROPERTIES
(TYPE rowstore, BLOCKSIZEMB 0);
--
ERROR: The BLOCKSIZEMB property must be between 2Mb and 1000Mb. (2 : 17)
(TYPE rowstore, BLOCKSIZEMB 0);
^