Hello @proddata
I created the same table as you did above and from a remote system I tried to insert records. I am sending you the following three attempts to demonstrate where it breaks. Please note that the first attempt works, the other two fails:
[root@melbourne-raptor1 results]# curl -sS -H 'Content-Type: application/json' -X POST 'UUU:PPP@209.44.XX.XX:4200/_sql?error_trace=true' -d@- <<- EOF
> {"stmt": "INSERT INTO webservicetests.emre (metric_name,\"timestamp\",metric_value,check,error) VALUES (?,?,?,?,?)","bulk_args":
> [["vus",1618232816000,1.000000,"",""]]
> }
> EOF
{"cols":[],"duration":6.542104,"results":[{"rowcount":1}]}[root@melbourne-raptor1 results]#
########################
[root@melbourne-raptor1 results]# curl -sS -H 'Content-Type: application/json' -X POST 'UUU:PPP@209.44.XX.XX:4200/_sql?error_trace=true' -d@- <<- EOF
> {"stmt": "INSERT INTO webservicetests.emre (metric_name,\"timestamp\",metric_value,check,error,error_code) VALUES (?,?,?,?,?,?)","bulk_args":
> [["vus",1618232816000,1.000000,"","",]]
> }
> EOF
{"error":{"message":"SQLParseException[Failed to parse source [{\"stmt\": \"INSERT INTO webservicetests.emre (metric_name,\\\"timestamp\\\",metric_value,check,error,error_code) VALUES (?,?,?,?,?,?)\",\"bulk_args\": [[\"vus\",1618232816000,1.000000,\"\",\"\",]]}]]","code":4000},"error_trace":"io.crate.exceptions.SQLParseException: Failed to parse source [{\"stmt\": \"INSERT INTO webservicetests.emre (metric_name,\\\"timestamp\\\",metric_value,check,error,error_code) VALUES (?,?,?,?,?,?)\",\"bulk_args\": [[\"vus\",1618232816000,1.000000,\"\",\"\",]]}]\n\tat io.crate.action.sql.parser.SQLRequestParser.parseSource(SQLRequestParser.java:87)\n\tat io.crate.rest.action.SqlHttpHandler.handleSQLRequest(SqlHttpHandler.java:194)\n\tat io.crate.rest.action.SqlHttpHandler.channelRead0(SqlHttpHandler.java:115)\n\tat io.crate.rest.action.SqlHttpHandler.channelRead0(SqlHttpHandler.java:79)\n\tat io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.crate.protocols.http.HttpBlobHandler.channelRead0(HttpBlobHandler.java:166)\n\tat io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.crate.auth.HttpAuthUpstreamHandler.handleHttpChunk(HttpAuthUpstreamHandler.java:136)\n\tat io.crate.auth.HttpAuthUpstreamHandler.channelRead0(HttpAuthUpstreamHandler.java:85)\n\tat io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)\n\tat io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n\tat io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795)\n\tat io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480)\n\tat io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)\n\tat io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)\n\tat io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat java.base/java.lang.Thread.run(Thread.java:831)\nCaused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (']' (code 93)): expected a value\n at [Source: (org.elasticsearch.transport.netty4.ByteBufStreamInput); line: 1, column: 181]\n\tat com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1851)\n\tat com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:707)\n\tat com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:632)\n\tat com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2650)\n\tat com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:865)\n\tat com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:757)\n\tat org.elasticsearch.common.xcontent.json.JsonXContentParser.nextToken(JsonXContentParser.java:53)\n\tat io.crate.action.sql.parser.SQLArgsParseElement.parseSubArray(SQLArgsParseElement.java:43)\n\tat io.crate.action.sql.parser.SQLBulkArgsParseElement.parseSubArrays(SQLBulkArgsParseElement.java:47)\n\tat io.crate.action.sql.parser.SQLBulkArgsParseElement.parse(SQLBulkArgsParseElement.java:39)\n\tat io.crate.action.sql.parser.SQLRequestParser.parse(SQLRequestParser.java:105)\n\tat io.crate.action.sql.parser.SQLRequestParser.parseSource(SQLRequestParser.java:77)\n\t... 45 more\n"}
########################
[root@melbourne-raptor1 results]# curl -sS -H 'Content-Type: application/json' -X POST 'UUU:PPP@209.44.XX.XX:4200/_sql?error_trace=true' -d@- <<- EOF
> {"stmt": "INSERT INTO webservicetests.emre (metric_name,\"timestamp\",metric_value,check,error,error_code,expected_response) VALUES (?,?,?,?,?,?,?)","bulk_args":
> [["vus",1618232816000,1.000000,"","",,"test"]]
> }
> EOF
{"error":{"message":"SQLParseException[Failed to parse source [{\"stmt\": \"INSERT INTO webservicetests.emre (metric_name,\\\"timestamp\\\",metric_value,check,error,error_code,expected_response) VALUES (?,?,?,?,?,?,?)\",\"bulk_args\": [[\"vus\",1618232816000,1.000000,\"\",\"\",,\"test\"]]}]]","code":4000},"error_trace":"io.crate.exceptions.SQLParseException: Failed to parse source [{\"stmt\": \"INSERT INTO webservicetests.emre (metric_name,\\\"timestamp\\\",metric_value,check,error,error_code,expected_response) VALUES (?,?,?,?,?,?,?)\",\"bulk_args\": [[\"vus\",1618232816000,1.000000,\"\",\"\",,\"test\"]]}]\n\tat io.crate.action.sql.parser.SQLRequestParser.parseSource(SQLRequestParser.java:87)\n\tat io.crate.rest.action.SqlHttpHandler.handleSQLRequest(SqlHttpHandler.java:194)\n\tat io.crate.rest.action.SqlHttpHandler.channelRead0(SqlHttpHandler.java:115)\n\tat io.crate.rest.action.SqlHttpHandler.channelRead0(SqlHttpHandler.java:79)\n\tat io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.crate.protocols.http.HttpBlobHandler.channelRead0(HttpBlobHandler.java:166)\n\tat io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.crate.auth.HttpAuthUpstreamHandler.handleHttpChunk(HttpAuthUpstreamHandler.java:136)\n\tat io.crate.auth.HttpAuthUpstreamHandler.channelRead0(HttpAuthUpstreamHandler.java:85)\n\tat io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)\n\tat io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n\tat io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n\tat io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795)\n\tat io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480)\n\tat io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)\n\tat io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)\n\tat io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat java.base/java.lang.Thread.run(Thread.java:831)\nCaused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character (',' (code 44)): expected a value\n at [Source: (org.elasticsearch.transport.netty4.ByteBufStreamInput); line: 1, column: 201]\n\tat com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1851)\n\tat com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:707)\n\tat com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:632)\n\tat com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2650)\n\tat com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:865)\n\tat com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:757)\n\tat org.elasticsearch.common.xcontent.json.JsonXContentParser.nextToken(JsonXContentParser.java:53)\n\tat io.crate.action.sql.parser.SQLArgsParseElement.parseSubArray(SQLArgsParseElement.java:43)\n\tat io.crate.action.sql.parser.SQLBulkArgsParseElement.parseSubArrays(SQLBulkArgsParseElement.java:47)\n\tat io.crate.action.sql.parser.SQLBulkArgsParseElement.parse(SQLBulkArgsParseElement.java:39)\n\tat io.crate.action.sql.parser.SQLRequestParser.parse(SQLRequestParser.java:105)\n\tat io.crate.action.sql.parser.SQLRequestParser.parseSource(SQLRequestParser.java:77)\n\t... 45 more\n"}