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);