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