--- /dev/null
+/*\r
+\r
+ Derby - Class org.apache.derby.iapi.store.access.ScanInfo\r
+\r
+ Licensed to the Apache Software Foundation (ASF) under one or more\r
+ contributor license agreements. See the NOTICE file distributed with\r
+ this work for additional information regarding copyright ownership.\r
+ The ASF licenses this file to you under the Apache License, Version 2.0\r
+ (the "License"); you may not use this file except in compliance with\r
+ the License. You may obtain a copy of the License at\r
+\r
+ http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+ Unless required by applicable law or agreed to in writing, software\r
+ distributed under the License is distributed on an "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ See the License for the specific language governing permissions and\r
+ limitations under the License.\r
+\r
+ */\r
+\r
+package org.apache.derby.iapi.store.access;\r
+\r
+import org.apache.derby.iapi.error.StandardException;\r
+\r
+import java.util.Properties;\r
+\r
+/**\r
+\r
+ This object provides performance information related to an open scan.\r
+ The information is accumulated during operations on a ScanController() and\r
+ then copied into this object and returned by a call to \r
+ ScanController.getStatistic().\r
+\r
+ @see GenericScanController#getScanInfo()\r
+\r
+**/\r
+\r
+public interface ScanInfo\r
+{\r
+ /**\r
+ * Return all information gathered about the scan.\r
+ * <p>\r
+ * This routine returns a list of properties which contains all information\r
+ * gathered about the scan. If a Property is passed in, then that property\r
+ * list is appeneded to, otherwise a new property object is created and\r
+ * returned.\r
+ * <p>\r
+ * Not all scans may support all properties, if the property is not \r
+ * supported then it will not be returned. The following is a list of\r
+ * properties that may be returned. These names have been internationalized,\r
+ * the names shown here are the old, non-internationalized names:\r
+ *\r
+ * scanType\r
+ * - type of the scan being performed:\r
+ * btree\r
+ * heap\r
+ * sort\r
+ * numPagesVisited\r
+ * - the number of pages visited during the scan. For btree scans\r
+ * this number only includes the leaf pages visited. \r
+ * numDeletedRowsVisited\r
+ * - the number of deleted rows visited during the scan. This\r
+ * number includes only those rows marked deleted.\r
+ * numRowsVisited\r
+ * - the number of rows visited during the scan. This number \r
+ * includes all rows, including: those marked deleted, those\r
+ * that don't meet qualification, ...\r
+ * numRowsQualified\r
+ * - the number of rows which met the qualification.\r
+ * treeHeight (btree's only)\r
+ * - for btree's the height of the tree. A tree with one page\r
+ * has a height of 1. Total number of pages visited in a btree\r
+ * scan is (treeHeight - 1 + numPagesVisited).\r
+ * numColumnsFetched\r
+ * - the number of columns Fetched - partial scans will result\r
+ * in fetching less columns than the total number in the scan.\r
+ * columnsFetchedBitSet\r
+ * - The BitSet.toString() method called on the validColumns arg.\r
+ * to the scan, unless validColumns was set to null, and in that\r
+ * case we will return "all".\r
+ * NOTE - this list will be expanded as more information about the scan\r
+ * is gathered and returned.\r
+ *\r
+ * @param prop Property list to fill in.\r
+ *\r
+ * @exception StandardException Standard exception policy.\r
+ **/\r
+ Properties getAllScanInfo(Properties prop)\r
+ throws StandardException;\r
+}\r