PostgreSQL, Oracle: Set schema for EXPLAIN queries in SQL command (bug #706)

This commit is contained in:
Jakub Vrana 2019-11-11 12:10:46 +01:00
parent 0678ce1222
commit a4e997fe60
6 changed files with 19 additions and 6 deletions

View file

@ -986,9 +986,10 @@ if (!defined("DRIVER")) {
/** Set current schema
* @param string
* @param Min_DB
* @return bool
*/
function set_schema($schema) {
function set_schema($schema, $connection2 = null) {
return true;
}

View file

@ -367,9 +367,12 @@ AND c_src.TABLE_NAME = " . q($table);
return $connection->result("SELECT sys_context('USERENV', 'SESSION_USER') FROM dual");
}
function set_schema($scheme) {
function set_schema($scheme, $connection2 = null) {
global $connection;
return $connection->query("ALTER SESSION SET CURRENT_SCHEMA = " . idf_escape($scheme));
if (!$connection2) {
$connection2 = $connection;
}
return $connection2->query("ALTER SESSION SET CURRENT_SCHEMA = " . idf_escape($scheme));
}
function show_variables() {

View file

@ -689,9 +689,12 @@ AND typelem = 0"
return $connection->result("SELECT current_schema()");
}
function set_schema($schema) {
function set_schema($schema, $connection2 = null) {
global $connection, $types, $structured_types;
$return = $connection->query("SET search_path TO " . idf_escape($schema));
if (!$connection2) {
$connection2 = $connection;
}
$return = $connection2->query("SET search_path TO " . idf_escape($schema));
foreach (types() as $type) { //! get types from current_schemas('t')
if (!isset($types[$type])) {
$types[$type] = 0;

View file

@ -1,2 +1,2 @@
<?php
$VERSION = "4.7.4";
$VERSION = "4.7.5-dev";

View file

@ -53,6 +53,9 @@ if (!$error && $_POST) {
$connection2 = connect(); // connection for exploring indexes and EXPLAIN (to not replace FOUND_ROWS()) //! PDO - silent error
if (is_object($connection2) && DB != "") {
$connection2->select_db(DB);
if ($_GET["ns"] != "") {
set_schema($_GET["ns"], $connection2);
}
}
$commands = 0;
$errors = array();

View file

@ -1,3 +1,6 @@
Adminer 4.7.5-dev:
PostgreSQL, Oracle: Set schema for EXPLAIN queries in SQL command (bug #706)
Adminer 4.7.4 (released 2019-10-22):
Fix XSS if Adminer is accessible at URL /data: