#   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.

ALTER TABLE test
ADD attr INT
--
ERROR: syntax error (2 : 5)
ADD attr INT
    ^
==

ALTER TABLE test
ADD COLUMN attr INT
--
ERROR: ALTER statements is not supported yet (1 : 1)
ALTER TABLE test
^
==

ALTER TABLE test
DROP COLUMN attr INT
--
[same as above]
==

ALTER TABLE test
ADD CONSTRAINT UNIQUE(attr)
--
ERROR: Table Constraints (UNIQUE) is not supported yet (2 : 16)
ADD CONSTRAINT UNIQUE(attr)
               ^
==

ALTER TABLE test
DROP CONSTRAINT constraint0
--
ERROR: ALTER statements is not supported yet (1 : 1)
ALTER TABLE test
^
