diff --git a/ChangeLog b/ChangeLog
index 87c2e3b546..193854cc8a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -63,6 +63,8 @@ phpMyAdmin - ChangeLog
- bug #4577 Multi row actions cause full page reloads
- bug ReferenceError: targeturl is not defined
- bug Incorrect text/icon display in Tracking report
+- bug #4404 Recordset return from procedure display nothing
+- bug #4584 Edit dialog for routines is too long for smaller displays
4.2.11.0 (2014-10-31)
- bug ReferenceError: Table_onover is not defined
diff --git a/js/rte.js b/js/rte.js
index cdae5414f8..446db02a59 100644
--- a/js/rte.js
+++ b/js/rte.js
@@ -298,13 +298,17 @@ RTE.COMMON = {
/**
* Display the dialog to the user
*/
- that.$ajaxDialog = $('
' + data.message + '
').dialog({
+ that.$ajaxDialog = $('' + data.message + '
').dialog({
width: 700,
minWidth: 500,
+ maxHeight: $(window).height(),
buttons: that.buttonOptions,
title: data.title,
modal: true,
open: function () {
+ if ($('#rteDialog').parents('.ui-dialog').height() > $(window).height()) {
+ $('#rteDialog').dialog("option", "height", $(window).height());
+ }
$(this).find('input[name=item_name]').focus();
$(this).find('input.datefield').each(function () {
PMA_addDatepicker($(this).css('width', '95%'), 'date');
diff --git a/libraries/sql.lib.php b/libraries/sql.lib.php
index 797862ba79..7b0afb22db 100644
--- a/libraries/sql.lib.php
+++ b/libraries/sql.lib.php
@@ -1292,15 +1292,6 @@ function PMA_executeQueryAndStoreResults($full_sql_query)
$GLOBALS['querytime'] = $querytime_after - $querytime_before;
- // If a stored procedure was called, there may be more results that are
- // queued up and waiting to be flushed from the buffer. So let's do that.
- do {
- $GLOBALS['dbi']->storeResult();
- if (! $GLOBALS['dbi']->moreResults()) {
- break;
- }
- } while ($GLOBALS['dbi']->nextResult());
-
return $result;
}
@@ -1893,15 +1884,61 @@ function PMA_getHtmlForSqlQueryResultsTable($sql_data, $displayResultsObject, $d
$analyzed_sql_results
) {
$printview = isset($_REQUEST['printview']) ? $_REQUEST['printview'] : null;
- if (! empty($sql_data) && ($sql_data['valid_queries'] > 1)
- || $analyzed_sql_results['is_procedure']
- ) {
+ $table_html = '';
+ if (! empty($sql_data) && ($sql_data['valid_queries'] > 1)) {
$_SESSION['is_multi_query'] = true;
- $table_html = PMA_getTableHtmlForMultipleQueries(
+ $table_html .= PMA_getTableHtmlForMultipleQueries(
$displayResultsObject, $db, $sql_data, $goto,
$pmaThemeImage, $printview, $url_query,
$disp_mode, $sql_limit_to_append, $editable
);
+ } elseif ($analyzed_sql_results['is_procedure']) {
+
+ do {
+ if (! isset($result)) {
+ $result = $GLOBALS['dbi']->storeResult();
+ }
+ $num_rows = $GLOBALS['dbi']->numRows($result);
+
+ if ($result !== false && $num_rows > 0) {
+
+ $fields_meta = $GLOBALS['dbi']->getFieldsMeta($result);
+ $fields_cnt = count($fields_meta);
+
+ $displayResultsObject->setProperties(
+ $num_rows,
+ $fields_meta,
+ $analyzed_sql_results['is_count'],
+ $analyzed_sql_results['is_export'],
+ $analyzed_sql_results['is_func'],
+ $analyzed_sql_results['is_analyse'],
+ $num_rows,
+ $fields_cnt,
+ $GLOBALS['querytime'],
+ $pmaThemeImage,
+ $GLOBALS['text_dir'],
+ $analyzed_sql_results['is_maint'],
+ $analyzed_sql_results['is_explain'],
+ $analyzed_sql_results['is_show'],
+ $showtable,
+ $printview,
+ $url_query,
+ $editable
+ );
+
+ $disp_mode = 'nnnn110111'; // uneditable
+ $table_html .= $displayResultsObject->getTable(
+ $result,
+ $disp_mode,
+ $analyzed_sql_results['analyzed_sql']
+ );
+ }
+
+ $GLOBALS['dbi']->freeResult($result);
+ unset($result);
+
+ } while ($GLOBALS['dbi']->moreResults() && $GLOBALS['dbi']->nextResult());
+
} else {
if (isset($result) && $result) {
$fields_meta = $GLOBALS['dbi']->getFieldsMeta($result);
@@ -1918,7 +1955,7 @@ function PMA_getHtmlForSqlQueryResultsTable($sql_data, $displayResultsObject, $d
$editable
);
- $table_html = $displayResultsObject->getTable(
+ $table_html .= $displayResultsObject->getTable(
$result, $disp_mode, $analyzed_sql_results['analyzed_sql']
);
$GLOBALS['dbi']->freeResult($result);