From c8e41ee6498f6f4b4a969e740bdfdeec7c8954d9 Mon Sep 17 00:00:00 2001 From: sartor Date: Sat, 20 Oct 2018 19:37:44 +0300 Subject: [PATCH] ClickHouse fix select-like queries format postfix --- adminer/drivers/clickhouse.inc.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/adminer/drivers/clickhouse.inc.php b/adminer/drivers/clickhouse.inc.php index edfa5f37..5f39c8ba 100644 --- a/adminer/drivers/clickhouse.inc.php +++ b/adminer/drivers/clickhouse.inc.php @@ -12,12 +12,12 @@ if (isset($_GET["clickhouse"])) { @ini_set('track_errors', 1); // @ - may be disabled $file = @file_get_contents("$this->_url/?database=$db", false, stream_context_create(array('http' => array( 'method' => 'POST', - 'content' => stripos($query, 'insert') === 0 ? $query : "$query FORMAT JSONCompact", + 'content' => $this->is_query_select_like($query) ? ($query.' FORMAT JSONCompact') : $query, 'header' => 'Content-type: application/x-www-form-urlencoded', 'ignore_errors' => 1, // available since PHP 5.2.10 )))); - if (!$file) { + if ($file === false) { $this->error = $php_errormsg; return $file; } @@ -43,6 +43,10 @@ if (isset($_GET["clickhouse"])) { return new Min_Result($return); } + function is_query_select_like($query) { + return (bool) preg_match('~^(select|show)~i', $query); + } + function query($query) { return $this->rootQuery($this->_db, $query); }