[teiid-commits] teiid SVN: r4101 - in branches/7.7.x: engine/src/main/java/org/teiid/dqp/internal/process and 1 other directories.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Mon May 14 00:47:44 EDT 2012
Author: shawkins
Date: 2012-05-14 00:47:44 -0400 (Mon, 14 May 2012)
New Revision: 4101
Modified:
branches/7.7.x/client/src/main/java/org/teiid/jdbc/StatementImpl.java
branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
branches/7.7.x/engine/src/main/java/org/teiid/query/analysis/AnalysisRecord.java
Log:
TEIID-2042 limiting debug plan size
Modified: branches/7.7.x/client/src/main/java/org/teiid/jdbc/StatementImpl.java
===================================================================
--- branches/7.7.x/client/src/main/java/org/teiid/jdbc/StatementImpl.java 2012-05-14 04:47:40 UTC (rev 4100)
+++ branches/7.7.x/client/src/main/java/org/teiid/jdbc/StatementImpl.java 2012-05-14 04:47:44 UTC (rev 4101)
@@ -487,11 +487,17 @@
if (show.equalsIgnoreCase("PLAN")) { //$NON-NLS-1$
List<ArrayList<Object>> records = new ArrayList<ArrayList<Object>>(1);
PlanNode plan = driverConnection.getCurrentPlanDescription();
- if (plan != null) {
+ String connDebugLog = driverConnection.getDebugLog();
+ if (plan != null || connDebugLog != null) {
ArrayList<Object> row = new ArrayList<Object>(3);
- row.add(DataTypeTransformer.getClob(plan.toString()));
- row.add(new SQLXMLImpl(plan.toXml()));
- row.add(DataTypeTransformer.getClob(driverConnection.getDebugLog()));
+ if (plan != null) {
+ row.add(DataTypeTransformer.getClob(plan.toString()));
+ row.add(new SQLXMLImpl(plan.toXml()));
+ } else {
+ row.add(null);
+ row.add(null);
+ }
+ row.add(DataTypeTransformer.getClob(connDebugLog));
records.add(row);
}
createResultSet(records, new String[] {"PLAN_TEXT", "PLAN_XML", "DEBUG_LOG"}, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
Modified: branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
===================================================================
--- branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java 2012-05-14 04:47:40 UTC (rev 4100)
+++ branches/7.7.x/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java 2012-05-14 04:47:44 UTC (rev 4101)
@@ -516,7 +516,11 @@
}
}
}
- request.processRequest();
+ try {
+ request.processRequest();
+ } finally {
+ analysisRecord = request.analysisRecord;
+ }
originalCommand = request.userCommand;
if (cachable && (requestMsg.useResultSetCache() || originalCommand.getCacheHint() != null) && rsCache != null && originalCommand.areResultsCachable()) {
this.cid = cacheId;
@@ -566,7 +570,6 @@
//This is just a dummy result it will get replaced by collector source
resultsBuffer = this.processor.getBufferManager().createTupleBuffer(this.originalCommand.getProjectedSymbols(), this.request.context.getConnectionID(), TupleSourceType.FINAL);
}
- analysisRecord = request.analysisRecord;
transactionContext = request.transactionContext;
if (this.transactionContext != null && this.transactionContext.getTransactionType() != Scope.NONE) {
this.transactionState = TransactionState.ACTIVE;
Modified: branches/7.7.x/engine/src/main/java/org/teiid/query/analysis/AnalysisRecord.java
===================================================================
--- branches/7.7.x/engine/src/main/java/org/teiid/query/analysis/AnalysisRecord.java 2012-05-14 04:47:40 UTC (rev 4100)
+++ branches/7.7.x/engine/src/main/java/org/teiid/query/analysis/AnalysisRecord.java 2012-05-14 04:47:44 UTC (rev 4101)
@@ -33,6 +33,7 @@
import org.teiid.client.plan.Annotation;
import org.teiid.client.plan.PlanNode;
import org.teiid.core.types.DataTypeManager;
+import org.teiid.core.util.PropertiesUtils;
import org.teiid.logging.LogConstants;
import org.teiid.logging.LogManager;
import org.teiid.logging.MessageLevel;
@@ -54,7 +55,9 @@
*/
public class AnalysisRecord {
- // Common
+ private static final int MAX_PLAN_LENGTH = PropertiesUtils.getIntProperty(System.getProperties(), "org.teiid.maxPlanLength", 1<<25); //$NON-NLS-1$
+
+ // Common
public static final String PROP_OUTPUT_COLS = "Output Columns"; //$NON-NLS-1$
// Relational
@@ -178,6 +181,9 @@
* @param debugLine Text to add to debug writer
*/
public void println(String debugLine) {
+ if (this.stringWriter.getBuffer().length() > MAX_PLAN_LENGTH) {
+ this.stringWriter.getBuffer().delete(0, this.stringWriter.getBuffer().length() - (MAX_PLAN_LENGTH*3/4));
+ }
this.debugWriter.println(debugLine);
}
More information about the teiid-commits
mailing list