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

INSERT INTO test (attr1, attr2) VALUES (1, 2)
--
ERROR: list of column names in INSERT statement is not supported yet (1 : 18)
INSERT INTO test (attr1, attr2) VALUES (1, 2)
                 ^
==

INSERT INTO test VALUES (1, -2, 3)
--
InsertStatement[relation_name=test]
+-tuple=
  +-Literal
  | +-NumericLiteral[numeric_string=1,float_like=false]
  +-Literal
  | +-NumericLiteral[numeric_string=-2,float_like=false]
  +-Literal
    +-NumericLiteral[numeric_string=3,float_like=false]
==

INSERT INTO test VALUES (1+1, 2*2, 3+1)
--
ERROR: syntax error (1 : 27)
INSERT INTO test VALUES (1+1, 2*2, 3+1)
                          ^
==

INSERT INTO test VALUES (e'\'sdfs')
--
InsertStatement[relation_name=test]
+-tuple=
  +-Literal
    +-StringLiteral[value='sdfs]
==

INSERT INTO test VALUES ('\'sdfs')
--
ERROR: syntax error (1 : 29)
INSERT INTO test VALUES ('\'sdfs')
                            ^
