blob: c0cba33c71732cceaeaba05614bffdbbb22a8f00 [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.
# The first three assignment expressions are coerced to match
# the corresponding column's type.
[default initial_logical_plan]
update test
set double_col=long_col+1, int_col=1.2, char_col='foo', vchar_col='foofoo'
where int_col+1>long_col
--
ERROR: The assigned value for the column int_col has the type Double, which cannot be safely coerced to the column's type Int NULL (2 : 28)
set double_col=long_col+1, int_col=1.2, char_col='foo', vcha...
^
==
update undefined_table
set int_col=1
--
ERROR: Unrecognized relation undefined_table (1 : 8)
update undefined_table
^
==
update test
set undefined_col=1
--
ERROR: Unrecognized attribute undefined_col (2 : 5)
set undefined_col=1
^
==
update test
set int_col=1, int_col=1
--
ERROR: Multiple assignments to the column int_col (2 : 16)
set int_col=1, int_col=1
^
==
update test
set float_col=int_col+1
--
ERROR: The assigned value for the column float_col has the type Float NULL, which cannot be safely coerced to the column's type Float (2 : 5)
set float_col=int_col+1
^
==
update test
set char_col=3
--
ERROR: The assigned value for the column char_col has the type Int, which cannot be safely coerced to the column's type Char(20) (2 : 5)
set char_col=3
^
==
# The assignment expression cannot have an aggregate function.
update test set int_col=count(*)+1
--
ERROR: Aggregate function not allowed in SET clause (1 : 25)
update test set int_col=count(*)+1
^
==
# The WHERE cannot have an aggregate function.
update test set int_col=1 where count(*)>1
--
ERROR: Aggregate function not allowed in WHERE clause (1 : 33)
update test set int_col=1 where count(*)>1
^