[teiid-commits] teiid SVN: r4100 - in trunk: 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:40 EDT 2012


Author: shawkins
Date: 2012-05-14 00:47:40 -0400 (Mon, 14 May 2012)
New Revision: 4100

Modified:
   trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
   trunk/engine/src/main/java/org/teiid/query/analysis/AnalysisRecord.java
Log:
TEIID-2042 limiting debug plan size

Modified: trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java	2012-05-14 03:46:04 UTC (rev 4099)
+++ trunk/client/src/main/java/org/teiid/jdbc/StatementImpl.java	2012-05-14 04:47:40 UTC (rev 4100)
@@ -554,11 +554,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: trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java	2012-05-14 03:46:04 UTC (rev 4099)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/RequestWorkItem.java	2012-05-14 04:47:40 UTC (rev 4100)
@@ -531,7 +531,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;
@@ -581,7 +585,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) {
 			if (this.requestMsg.getRequestOptions().isContinuous()) {

Modified: trunk/engine/src/main/java/org/teiid/query/analysis/AnalysisRecord.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/analysis/AnalysisRecord.java	2012-05-14 03:46:04 UTC (rev 4099)
+++ trunk/engine/src/main/java/org/teiid/query/analysis/AnalysisRecord.java	2012-05-14 04:47:40 UTC (rev 4100)
@@ -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;
@@ -55,7 +56,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
@@ -179,6 +182,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