{"push_id":1311194484,"size":1,"distinct_size":1,"ref":"refs/heads/Drill-1328-r2","head":"bb03df4c66fa3fcfb9b09e47185226b742c93861","before":"cdc5a7b0ddde8dbacdc7e40b4e9f9520c4d84390","commits":[{"sha":"bb03df4c66fa3fcfb9b09e47185226b742c93861","author":{"name":"Cliff Buchanan","email":"d531c6f8ba9b90c7450732bb4e900e6bbf0af9b9@maprtech.com"},"message":"DRILL-1328: Support table statistics\n\nPRE: Add \"append\" concept to directory write.\n\n* This is so stats can be stored in [table].stats.drill and be appended to be writing a new file into the directory.\n\nFUNCS: Statistics functions as UDFs:\nCurrently using FieldReader to ensure consistent output type so that Unpivot doesn't get confused. All stats columns should be Nullable, so that stats functions can return NULL when N/A.\n* custom versions of \"count\" that always return BigInt\n* HyperLogLog based NDV that returns BigInt that works only on VarChars\n* HyperLogLog with binary output that only works on VarChars\n\nOPS: Updated protobufs for new ops\n\nOPS: Implemented StatisticsAggregate\n\nOPS: Implemented StatisticsUnpivot\n\nANALYZE: AnalyzeTable functionality\n* JavaCC syntax more-or-less copied from LucidDB.\n* (Basic) AnalyzePrule: DrillAnalyzeRel -> UnpivotPrel and StatsAggPrel\n\nANALYZE: Add getMetadataTable() to AbstractSchema\n\nUSAGE: Change field access in QueryWrapper\n\nUSAGE: Add getDrillTable() to DrillScanRelBase and ScanPrel\n* since ScanPrel does not inherit from DrillScanRelBase, this requires adding a DrillTable to the constructor\n* This is done so that a custom ReflectiveRelMetadataProvider can access the DrillTable associated with Logical/Physical scans.\n\nUSAGE: Attach DrillTableMetadata to DrillTable.\n* DrillTableMetadata represents the data scanned from a corresponding \".stats.drill\" table\n* In order to avoid doing query execution right after the \".stats.drill\" table is found, metadata is not actually collected until the MaterializationVisitor is used.\n** Currently, the metadata source must be a string (so that a SQL query can be created). Doing this with a table is probably more complicated.\n** Query is set up to extract only the most recent statistics results for each column.\n\nUSAGE: Configure DrillJoinRelBase to use NDV metadata when available.\n\nUSAGE: attach metadata to table\n\nUSAGE: implement optiq provider","distinct":true,"url":"https://api.github.com/repos/gparai/drill/commits/bb03df4c66fa3fcfb9b09e47185226b742c93861"}]}
{"actor":{"display_login":"gparai"}}