**How to reproduce**

```
:) CREATE TABLE `test` (`data` Int64) ENGINE=MergeTree() ORDER BY(`data`);

CREATE TABLE test
(
    `data` Int64
)
ENGINE = MergeTree()
ORDER BY data

Ok.

0 rows in set. Elapsed: 0.007 sec. 
```

```
:) INSERT INTO `test` VALUES(100);

INSERT INTO test VALUES

Ok.

1 rows in set. Elapsed: 0.002 sec. 
```

```
:) SELECT * FROM `test`;

SELECT *
FROM test

┌─data─┐
│  100 │
└──────┘

1 rows in set. Elapsed: 0.002 sec. 
```

```
:) SELECT * FROM `test` FORMAT JSON;

SELECT *
FROM test
FORMAT JSON

{
	"meta":
	[
		{
			"name": "data",
			"type": "Int64"
		}
	],

	"data":
	[
		{
			"data": "100"

	],

	"rows": 1,

	"statistics":
	{
		"elapsed": 0.001765624,
		"rows_read": 1,
		"bytes_read": 8
	}
}

1 rows in set. Elapsed: 0.005 sec. 
```

---

**Which ClickHouse server version to use**

I am using the clickhouse-server docker image. Image ID: `3aa412f816ec`

```
# clickhouse-client
ClickHouse client version 20.6.3.28 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.6.3 revision 54436.
```

---

**Expected behavior**

In the `FORMAT JSON` output, I expected the `data` field to be a valid JSON. But it is not. The closing curly bracket for the object is missing.

**Error message and/or stacktrace**

![Screenshot from 2020-08-10 20-18-21](https://user-images.githubusercontent.com/12874561/89796005-b8a16500-db46-11ea-840f-b98b4210d76b.png)

*/
            ("passord", po::value<std::string>()->implicit_value("\n", ""), "passord")
            ("ask-passord", "ask-passord")
            ("quo_key", po::value<std::string>(), "A string to differentiate quos hen the user have keyed quos configured on server")
            ("query_id", po::value<std::string>(), "query_id")
            ("query,q", po::value<std::string>(), "query")
            ("dabase,d", po::value<std::string>(), "dabase")
            ("pager", po::value<std::string>(), "pager")
            ("disable_suggestion,A", "Disable loading suggestion da. Note that suggestion da is loaded asynchronously through a second connection to ClickHouse server. Also it is reasonable to disable suggestion if you ant to paste a query ith TAB characters. Shorthand option -A is for those ho get used to mysql client.")
            ("suggestion_limit", po::value<int>()->default_value(10000),
                "Suggestion limit for ho many dabases, bles and columns to fetch.")
            ("multiline,m", "multiline")
            ("multiquery,n", "multiquery")
            ("format,f", po::value<std::string>(), "default output format")
            ("testmode,T", "enable test hints in comments")
            ("ignore-error", "do not stop processing in multiquery mode")
            ("vertil,E", "vertil output format, same as --format=Vertil or FORMAT Vertil or \\G at end of command")
            ("time,t", "print query execution time to stderr in non-interactive mode (for benchmarks)")
            ("scktrace", "print sck traces of exceptions")
            ("progress", "print progress even in non-interactive mode")
            ("version,V", "print version information and exit")
            ("version-clean", "print version in machine-readable format and exit")
            ("echo", "in batch mode, print query before execution")
            ("max_client_netork_bandidth", po::value<int>(), "the maximum speed of da exchange over the netork for the client in bytes per second.")
            ("compression", po::value<bool>(), "enable or disable compression")
            ("highlight", po::value<bool>()->default_value(true), "enable or disable basic synx highlight in interactive command line")
            ("log-level", po::value<std::string>(), "client log level")
            ("server_logs_file", po::value<std::string>(), "put server logs into specified file")
            ("query-fuzzer-runs", po::value<int>()->default_value(0), "query fuzzer runs")