wang_da_ye created CALCITE-4519:
-----------------------------------

             Summary: INSERT mysql table operate failure
                 Key: CALCITE-4519
                 URL: https://issues.apache.org/jira/browse/CALCITE-4519
             Project: Calcite
          Issue Type: Bug
    Affects Versions: 1.26.0
         Environment: JDK: 15.0.2

calcite: 1.26.0

mysql: 5.7.31
            Reporter: wang_da_ye


I have a mysql table as follow:I have a mysql table as follow:| my_test | 
CREATE TABLE `my_test` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` 
varchar(200) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=12 
DEFAULT CHARSET=utf8 |

my code as follow:Connection connection = 
Util.getConnect("/model.json");Statement statement = 
connection.createStatement();String sql = "INSERT INTO test.my_test(name) 
VALUES('test...')";statement.execute(sql); //a error here

debug calcite code, I found:JdbcSchema#getRelDataType() maybe some problem.   
this function parse row name, and transform to RelProtoDataType object.get meta 
data used DatabaseMetaData class.

then,the result set of the metadata is obtained,as follow code:final ResultSet 
resultSet = metaData.getColumns(catalogName, schemaName, tableName, null);
after,in while loop, resultSet get each row meta, like sqlType,nullable.my test 
table "my_test" id is primary key, so this filed is not null, but this filed 
has a "auto_increment" attribute.it means that:INSERT INTO test.my_test(name) 
VALUES('test...')this sql run ok, I can omit the id filed.

in "statement.execute(sql);" this sentence, trigger validate,and throws a 
exeception:Column 'id' has no default value and does not allow NULLs
the same sql in mysql 5.7.31 run ok, but in calcite get a 
error,JdbcSchema#getRelDataType() there may be a lack of judgment.in this 
function,add a "IS_AUTOINCREMENT" meta info, may be can deal with that,in 
validate logic,if a filed has "nullable" and "autoincrement" attribute may be 
can skip the validate.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to