fe/src/main/java/org/apache/impala/service/CatalogOpExecutor.java (24 lines): - line 331: * TODO: Refactor the CatalogOpExecutor and CatalogServiceCatalog classes and consolidate - line 334: * TODO: Improve catalog's consistency guarantees by using a hierarchical locking scheme. - line 340: * TODO: Create a Hive Metastore utility class to move code that interacts with the - line 1172: * TODO: Try implement AutoCloseable interface and make the close() method call - line 1913: // TODO: Transaction committing / aborting seems weird for stat update, but I don't - line 1978: // TODO: IMPALA-10203: avoid reloading modified partitions when updating stats. - line 2731: // TODO: Report the number of updated partitions/columns to the user? - line 2732: // TODO: bulk alter the partitions. - line 3181: // TODO: Remove params.isSetIs_table() check once catalog api compatibility is - line 3354: * TODO truncate specified partitions. - line 3442: //TODO: if possible, set DataOperationType to something better than NO_TXN. - line 3449: // TODO: revisit this in-flight event registration for scenario where - line 3552: // TODO: The following methods could already generate events. Investigate if - line 3618: // TODO: revisit this in-flight event registration. - line 3800: * TODO: Extract metastore object creation utility functions into a separate - line 4024: // TODO (HIVE-21807): Creating a table and retrieving the table information is - line 5594: //TODO batch drop the partitions instead of one-by-one. - line 5626: //TODO we add partitions one by one above and hence we expect each event to contain - line 5775: // TODO: call addVersionsForInflightEvents using InProgressTableModification object - line 7120: // TODO if the partition was not really refreshed because the partSpec - line 7125: // TODO IMPALA-8809: Optimisation for partitioned tables: - line 7480: // TODO: Could be optimized to possibly save some RPCs, as these parameters are - line 7844: // TODO IMPALA-10254: load data files via Iceberg API. Currently we load - line 7867: * TODO: Track object IDs to fe/src/main/java/org/apache/impala/analysis/StmtRewriter.java (23 lines): - line 44: * TODO: IMPALA-9948: Now that we have a nested-loop join supporting all join modes we - line 470: * TODO: Correlated NOT IN subqueries require that column resolution be extended to - line 641: // TODO: IMPALA-5098: we could easily support this if DISTINCT and aggregates - line 686: // TODO Handle other aggregate functions and UDAs that return a non-NULL value - line 688: // TODO Handle count aggregate functions in an expression in subqueries - line 713: // TODO This is very expensive if uncorrelated. Remove it when we implement - line 782: // TODO: IMPALA-9948: we could support non-equi joins here - line 783: // TODO: Remove this when independent subquery evaluation is implemented. - line 784: // TODO: IMPALA-5100 to cover all cases, we do let through runtime scalars with - line 797: // TODO: Requires support for null-aware anti-join mode in nested-loop joins - line 883: // TODO: add support for [NOT] EXISTS. We could implement [NOT] EXISTS - line 895: // TODO: IMPALA-5226: handle a broader spectrum of expressions in where clause - line 967: * TODO Handle correlated predicates in a HAVING clause. - line 1037: * TODO: Merge all the rewrite eligibility tests into a single function. - line 1054: // TODO: instead of this check, implement IMPALA-6315 - line 1092: // TODO Handle binary predicates with IS NOT DISTINCT op - line 1291: // TODO: Add support for multiple agg functions that return non-null on an - line 1304: // TODO Generalize this by making the aggregate functions aware of the - line 1511: * function with no group by columns unless a LIMIT 1 is given. TODO: IMPALA-1285 - line 1515: * TODO: IMPALA-8955 - line 1525: * TODO: IMPALA-6315 - line 1534: * TODO: IMPALA-5100 - line 1576: // TODO: Handle correlated subqueries IMPALA-8955 fe/src/main/java/org/apache/impala/analysis/Analyzer.java (21 lines): - line 176: * TODO: We often use the terms stmt/block/analyzer interchangeably, although they may - line 411: // TODO: remove following kudu check when these issues are fixed - line 435: // TODO: After Hive provides API calls to send back hints on why - line 450: // TODO: Many maps here contain properties about tuples, e.g., whether - line 563: // TODO: This can be inferred from privilegeReqs. They should be coalesced. - line 1217: // TODO: Support this in IMPALA-10484 by rewriting it to relative ref, e.g. - line 1873: // TODO: IMPALA-12160: When we enable structs containing collections in sorting - line 1984: // TODO: RANGER-3525: Clarify handling of column masks on nested types - line 2106: // IMPALA-13302 TODO: review whether markConstantConjunct can be skipped once - line 2609: * TODO: exclude UDFs from predicate propagation? their overloaded variants could - line 2646: // TODO: Make the check precise by considering the blocks (analyzers) where the - line 2824: * TODO: Consider optimizing for the cheapest minimum set of predicates. - line 2825: * TODO: Consider caching the DisjointSet during plan generation instead of - line 2870: // TODO: Consider better fixes for outer-joined slots: (1) Create IS NOT NULL - line 2923: * TODO: Consider optimizing for the cheapest minimum set of predicates. - line 3066: // TODO: If srcTid == destTid we could limit the mapping to partition - line 3087: // TODO: This approach is not guaranteed to find the best slot mapping - line 3338: // TODO: We could propagate predicates into anti-joined plan subtrees by - line 3383: // TODO: Investigate the call sites and remove this sort. - line 3486: // TODO IMPALA-13365: switch to - line 4552: * TODO: Use value transfer graph to get the base table tuple id of the slot is not null be/src/exec/grouping-aggregator.h (16 lines): - line 94: /// TODO: make this less of a heuristic by factoring in the cost of the exchange vs the - line 104: /// TODO: Buffer rows before probing into the hash table? - line 105: /// TODO: After spilling, we can still maintain a very small hash table just to remove - line 107: /// TODO: Consider allowing to spill the hash table structure in addition to the rows. - line 108: /// TODO: Do we want to insert a buffer before probing into the partition's hash table? - line 109: /// TODO: Use a prefetch/batched probe interface. - line 110: /// TODO: Return rows from the aggregated_row_stream rather than the HT. - line 111: /// TODO: Think about spilling heuristic. - line 112: /// TODO: When processing a spilled partition, we have a lot more information and can - line 114: /// TODO: Start with unpartitioned (single partition) and switch to partitioning and - line 116: /// TODO: Simplify or cleanup the various uses of agg_fn_ctx, agg_fn_ctx_, and ctx. - line 119: /// TODO: support an Init() method with an initial value in the UDAF interface. - line 230: /// TODO: different hash functions here too? We don't need that many bits to pick - line 240: /// TODO: we can revisit and try harder to explicitly detect skew. - line 244: /// TODO: rethink this ? - line 251: /// TODO: fix IMPALA-1948 and remove this. fe/src/main/java/org/apache/impala/planner/SingleNodePlanner.java (16 lines): - line 165: // TODO: instead of materializing everything produced by the plan root, derive - line 168: // TODO 2: should the materialization decision be cost-based? - line 493: // TODO: Allow the rhs of any cross join as the leftmost table. This needs careful - line 500: // TODO: Consider raw size of scanned partitions in the absence of stats. - line 648: // TODO: Once we have stats on nested collections, we should consider the join - line 767: // TODO: Re-enable this check here and/or elswehere. - line 882: // TODO: Think about when we can allow re-ordering across semi/outer joins - line 1216: // TODO: unify this with createConstantSelectPlan(), this is basically the - line 1251: // TODO: we should compute the "physical layout" of the view's descriptor, so that - line 1287: // TODO: This check is also repeated in migrateConjunctsToInlineView() because we - line 1619: // TODO: Remove this section, once DATE type is supported across all fileformats. - line 1793: //TODO: ACID join conjuncts currently contain predicates for all partitioning columns - line 2071: // TODO This doesn't handle predicates specified in the On clause which are not - line 2316: * TODO: optimize this by still pushing predicates into the union operands - line 2319: * TODO: Simplify the plan of unions with empty operands using an empty set node. - line 2320: * TODO: Simplify the plan of unions with only a single non-empty operand to not fe/src/main/java/org/apache/impala/planner/DistributedPlanner.java (16 lines): - line 65: * TODO: take data partition of the plan fragments into account; in particular, - line 213: // Do nothing if the input fragment is already appropriately partitioned. TODO: handle - line 296: // TODO: make a more sophisticated decision here for partitioned tables and when - line 322: // TODO: If input fragment has ScanNode leave(s), its inputPartitions can be - line 335: // TODO: We want to repartition if the resulting files would otherwise - line 396: * TODO: take bucketing into account to produce a naturally hash-partitioned - line 398: * TODO: hbase scans are range-partitioned on the row key - line 453: // TODO: Relax the isCompatPartition() check below. The check is conservative and - line 561: * TODO: don't create a broadcast join if we already anticipate that this will - line 583: // TODO: IMPALA-9176: this is inaccurate for NAAJ until IMPALA-9176 is fixed - line 596: // TODO: more analysis is needed to establish an accurate correlation. - line 597: // TODO: revisit this calculation if COMPUTE_PROCESSING_COST=true. - line 766: * TODO: Move parts of this function into DataPartition as appropriate. - line 807: * TODO: Move parts of this function into DataPartition as appropriate. - line 808: * TODO: Make comment less operational and more semantic. - line 959: * TODO: the output partition of a child isn't necessarily the same as the data be/src/service/impala-server.cc (13 lines): - line 322: // TODO: can we automatically choose a startup grace period based on the max admission - line 501: // TODO: Make consistent "Invalid or unknown query handle: $0" template used elsewhere. - line 502: // TODO: this should be turned into a proper error code and used throughout ImpalaServer. - line 575: // TODO: Set OpenSSL callbacks to provide locking to make the library thread-safe. - line 1056: // TODO: does this not need to be synchronized? - line 1452: // TODO: as cleanup we should consolidate this with uuid_generator_ - there's no reason - line 1909: // TODO: deal with an error status - line 1930: // TODO: consider factoring out the lookup and secret validation into a separate method. - line 2297: // TODO: deal with an error status - line 2372: // TODO: Set a timeout to eventually break out of this loop if something goes - line 2466: // TODO: handle the first case in IMPALA-10875. - line 2787: // TODO: If holding session_state_map_lock_ for the duration of this loop is too - line 3593: // TODO: consider replacing with CRYPTO_memcmp() once our minimum supported OpenSSL fe/src/main/java/org/apache/impala/planner/HdfsScanNode.java (13 lines): - line 139: * TODO: pass in range restrictions. - line 147: // TODO: it's unclear how this was chosen - this seems like a very high number - line 164: // TODO: is it worth making this a tunable query option? - line 498: // TODO: do we need this? - line 755: // TODO: this could be optimized for boolean columns. - line 1078: * TODO: The logic for gathering conjuncts and deciding which ones should be - line 1181: // TODO: Should there be a limit on the cost/structure of the conjunct? - line 1275: // file descriptors. TODO: IMPALA-13267 - line 1546: // TODO: do something meaningful with that - line 1889: // TODO: Have a separate scan node implementation that mocks an HDFS scan - line 2473: // TODO: IMPALA-6875 - ORC should compute total reservation across columns once the - line 2662: // TODO: Size of strings seems to be underestimated, as avg size returns the - line 2699: * TODO: this doesn't accurately describe how the backend works, but it is useful to fe/src/main/java/org/apache/impala/catalog/CatalogServiceCatalog.java (12 lines): - line 254: * TODO: Consider removing on-demand loading and have everything go through the table - line 295: // TODO: Handle overflow of catalogVersion_ and nextTableId_. - line 296: // TODO: The name of this variable is misleading and can be interpreted as a property - line 662: * TODO: Refactor the code so that both table and db can be "lockable" using a single - line 921: // TODO: TSerializer.serialize() returns a copy of the internal byte array, which - line 1246: // TODO: Could be a Precondition? If partitionKeyValues != null, this should be - line 1253: // TODO: add more fine grained locking to protect partitions without taking - line 3691: // TODO: This may be too verbose. Remove this after IMPALA-9135 is fixed. - line 3930: // TODO: Figure out if such a race is possible. - line 4226: * TODO: Make use of TTableUsage.num_usages. - line 4271: // TODO: count the lock waiting time into the request's timeout? - line 4322: // TODO: gets a list of known tables from the coordinator and only sends be/src/exec/hash-table.h (12 lines): - line 103: /// TODO: Compare linear and quadratic probing and remove the loser. - line 104: /// TODO: We currently use 32-bit hashes. There is room in the bucket structure for at - line 106: /// TODO: Consider capping the probes with a threshold value. If an insert reaches - line 108: /// TODO: Smarter resizes, and perhaps avoid using powers of 2 as the hash table size. - line 109: /// TODO: this is not a fancy hash table in terms of memory access patterns - line 112: /// TODO: hash-join and aggregation have very different access patterns. Joins insert all - line 116: /// TODO: Batched interface for inserts and finds. - line 117: /// TODO: as an optimization, compute variable-length data size for the agg node. - line 194: /// TODO: this is an awkward abstraction but aggregation node can take advantage of - line 360: /// TODO: is there actually a valid reason why this is necessary for codegen? - line 465: /// TODO: stores_nulls is too coarse: for a hash table in which some columns are joined - line 469: /// TODO: remove this constructor once all client classes switch to using fe/src/main/java/org/apache/impala/service/Frontend.java (11 lines): - line 273: // TODO: Make the reload interval configurable. - line 1152: * TODO: this class is typically used in a loop at the call-site. replace with lambdas - line 1166: * TODO: record these retries in the profile as done for query retries. - line 1611: // TODO: could check config for Ranger and return true if deny rules are disabled - line 1620: // TODO: handle InconsistentMetadataException for data sources. - line 2329: // TODO: share 'timeline' to BE so we know when the updates are applied - line 2377: // TODO: Need a fallback flag for various modes. In production, we will most - line 2896: //TODO (IMPALA-8788): should load table write ids in transaction context. - line 3272: // TODO: Currently this flag only controls the removal of the query-level staging - line 3473: // TODO (IMPALA-8571): can we make use of the futures to implement better - line 3512: * TODO: maybe we should make it async. fe/src/main/java/org/apache/impala/analysis/FunctionCallExpr.java (10 lines): - line 398: // TODO: Provide a way to mark UDFs as deterministic over time - line 401: // TODO: rand()/random() is actually deterministic in scan nodes, because it resets - line 457: // TODO: we can't correctly determine const-ness before analyzing 'fn_'. We should - line 479: // TODO: should we bother to do this? We could also improve the general - line 517: * TODO: this prevents UDFs from using wildcard decimals and is in general not scalable. - line 670: // TODO: fix how we rewrite count distinct. - line 692: // TODO: We allow implicit cast from string->timestamp but only - line 779: // TODO: can this be handled more cleanly. It does seem like a special case since - line 786: // TODO: the distinct rewrite does not handle this but why? - line 830: // TODO add support for CHAR(N) and VARCHAR(N) return values in post 2.0, be/src/exec/parquet/hdfs-parquet-scanner.cc (9 lines): - line 1721: // TODO: The values should be converted during dictionary construction and stored - line 1728: // TODO: This should be pushed into dictionary construction. - line 2303: /// TODO: Since the scratch batch is populated in a column-wise fashion, it is - line 2390: /// TODO: Since the scratch batch is populated in a column-wise fashion, it is - line 2636: // TODO: It's a really bad idea to propagate UDF error via the global RuntimeState. - line 2841: // TODO: this takes ~7ms for a 1000-column table, figure out how to reduce this. - line 3006: // TODO: can we do anything else here? - line 3028: // TODO: use different heuristic than least-nested? Fewest values? - line 3082: // TODO: improve this error message by saying which columns are different, be/src/codegen/llvm-codegen.h (9 lines): - line 136: /// TODO: we should be able to do this once per process and let llvm compile - line 142: /// TODO: look into diagnostic output and debuggability - line 143: /// TODO: confirm that the multi-threaded usage is correct - line 169: /// TODO: this can probably be removed after impalad refactor where the java - line 419: /// TODO: implement a loop unroller (or use LLVM's) so we can use - line 482: /// TODO: Return Status instead. - line 493: /// TODO: Return Status instead. - line 903: /// TODO: we could consider just removing the offending function and attempting to - line 1016: /// TODO: IMPALA-6038: use this to check and handle errors wherever needed. be/src/codegen/llvm-codegen.cc (9 lines): - line 367: // TODO: Create separate counters/timers (file size, load time) for each module linked - line 763: // TODO: this should return a Status - line 790: // TODO: doesn't seem there is much traction in getting this fixed but we'll see - line 879: // TODO: fix these built-in functions so we don't need 'broken_builtin' below. - line 1414: /// TODO: In asynchronous mode, return early if the query is cancelled or finished. - line 1425: // TODO: we can likely muck with this to get better compile speeds or write - line 1620: // TODO: cache this function (e.g. all min(int, int) are identical). - line 1697: // TODO: is there a better way to do this? - line 1710: // TODO: where is the best place to put this? be/src/service/impala-beeswax-server.cc (9 lines): - line 72: // TODO: that may not be true; fix this - line 123: // TODO: that may not be true; fix this - line 223: // TODO (IMPALA-11041): consider returning the real type - line 231: // TODO: Handle struct types. - line 292: // TODO: do we need to raise an exception if the query state is EXCEPTION? - line 293: // TODO: use timeout to get rid of unwanted query_handle. - line 662: // TODO: remove the block of code when ODBC-190 is resolved. - line 666: // TODO: As of today, the ODBC driver does not support boolean and timestamp data - line 669: // TODO: Handle complex types. be/src/exec/analytic-eval-node.cc (8 lines): - line 244: // TODO: zeroing out curr_tuple_ shouldn't be strictly necessary. - line 268: // TODO: Return debug string when range offsets are supported - line 367: // TODO: Consider re-pinning later if the output stream is fully consumed. - line 567: // TODO: zeroing out curr_tuple_ shouldn't be strictly necessary. - line 631: // TODO: DCHECK that the size of result_tuples_ is bounded. It shouldn't be larger - line 639: // TODO: DCHECK input is sorted (even just first row vs prev_input_tuple_) - line 794: // TODO: This transfer is simple and correct, but not necessarily efficient. We - line 815: // TODO: This transfer is simple and correct, but not necessarily efficient. We be/src/exec/parquet/hdfs-parquet-table-writer.cc (8 lines): - line 88: // TODO: For codegen, we would codegen the AppendRow() function for each column. - line 92: // TODO: we need to pass in the compression from the FE/metadata - line 159: // TODO: this needs to be batch based, instead of row based for better performance. - line 374: // TODO: Consider removing and only creating a single large page as necessary. - line 550: // TODO: support other encodings here - line 606: // TODO: is there a better way? - line 1169: // TODO: copy repetition data when we support nested types. - line 1567: // TODO: this should be made dynamic based on the size of rows seen so far. be/src/exec/grouping-aggregator.cc (8 lines): - line 80: // TODO: experimentally tune these values and also programmatically get the cache size - line 372: // TODO: workaround for IMPALA-2490: subplan node rows_returned counter may be - line 381: // TODO: consider collecting more statistics to better estimate reduction. - line 576: // TODO: The hash table could compute this as it hashes. - line 585: // TODO: codegen this function. - line 822: // TODO: in some cases when the partition probably won't fit in memory it could - line 859: // TODO: if the partition spills again but the aggregation reduces the input - line 1059: // TODO: update counters to support doubles. common/thrift/JniCatalog.thrift (8 lines): - line 81: // TODO: Need to cleanup:IMPALA-7553 - line 142: // TODO: Need to cleanup:IMPALA-7553 - line 360: // TODO: Need to cleanup:IMPALA-7553 - line 552: // TODO: Need to cleanup:IMPALA-7553 - line 613: // TODO: Need to cleanup:IMPALA-7553 - line 659: // TODO: Need to cleanup:IMPALA-7553 - line 764: // TODO: Need to cleanup:IMPALA-7553 - line 783: // TODO: Need to cleanup:IMPALA-7553 fe/src/main/java/org/apache/impala/catalog/metastore/CatalogMetastoreServer.java (8 lines): - line 93: // clients. // TODO make this configurable - line 96: // clients. // TODO make this configurable. A connection which is beyond this limit - line 256: * TODO Remove this and expose the metrics in the catalogd's debug UI. - line 275: * only support NOSASL mode. TODO Add SASL and ssl support (IMPALA-10638) - line 295: //TODO Add Sasl support (IMPALA-10638) - line 298: //TODO add config for this (IMPALA-10639) - line 319: //TODO add SSL support - line 474: * // TODO currently this method is not used anywhere. We should hook this method to the fe/src/main/java/org/apache/impala/catalog/CatalogHmsAPIHelper.java (8 lines): - line 95: //TODO change this to per directory level value based on empirical average value - line 99: //TODO Make this individually configurable - line 149: //TODO add table id in the request when client passes it. Also, looks like - line 255: // TODO we are currently fetching all the partitions metadata here since catalog - line 294: // TODO add file-metadata to Partitions. This would requires changes to HMS API - line 365: // TODO this needs to be fixed in HMS APIs so that we have explicit catalog field. - line 377: //TODO partition granularity column statistics are not supported in catalogd currently - line 392: //TODO add table id in the request when client passes it. Also, looks like be/src/runtime/krpc-data-stream-sender.cc (8 lines): - line 244: // TODO: replace this with a queue. Schedule another RPC callback in the - line 290: // TODO: Fix IMPALA-3990 - line 392: // TODO: take into account of var-len data at runtime. - line 496: // TODO: IMPALA-6159. Handle 'connection reset by peer' due to stale connections. - line 606: // TODO: Needs better solution for IMPALA-3990 in the long run. - line 846: // TODO: check that sender was either already closed() or there was an error - line 1105: // TODO: fix crc hash/GetHashValue() - line 1120: // process. TODO: could be optimized to send the uncompressed buffer to the local be/src/exec/hash-table.cc (7 lines): - line 71: // TODO find a better approach, since primitives like CHAR(N) can be up - line 124: // Populate the seeds to use for all the levels. TODO: revisit how we generate these. - line 155: // Populate the seeds to use for all the levels. TODO: revisit how we generate these. - line 304: // TODO: when using CRC hash on empty string, this only swaps bytes. - line 372: // TODO: Find the optimal prefetch batch size. This may be something - line 380: // TODO: Add 'mem_usage' into minimum reservation of PlanNode that use HashTableCtx? - line 913: // TODO: refactor this to somewhere else? This is not hash table specific except for be/src/runtime/io/disk-io-mgr.cc (7 lines): - line 136: // The maximum number of ABFS I/O threads. TODO: choose the default empirically. - line 139: // The maximum number of OSS/JindoFS I/O threads. TODO: choose the default empirically. - line 148: // The maximum number of GCS I/O threads. TODO: choose the default empirically. - line 151: // The maximum number of GCS I/O threads. TODO: choose the default empirically. - line 154: // The maximum number of Ozone I/O threads. TODO: choose the default empirically. - line 192: // TODO: Test different number of partitions to determine an appropriate default - line 962: // TODO: we need to parse the config for the number of dirs configured for this fe/src/main/java/org/apache/impala/analysis/Expr.java (7 lines): - line 502: // TODO: Analyze for expressions should return a possibly-rewritten - line 548: // also have the same hint (note that there's a TODO in the parser - line 569: * TODO: This function could be used in many more places to clean up. Consider - line 1067: * TODO: come up with something better than O(n^2)? - line 1102: // TODO: we have to convert CompoundPredicate.AND to two expr trees for - line 1527: * TODO: isAnalyzed_ should be a precondition for isConstant(), since it is not always - line 1797: * TODO: Support predicates with more that one subqueries when we implement be/src/udf/udf.h (7 lines): - line 142: /// TODO: Move FRAGMENT_LOCAL states to query_state for multi-threading. - line 193: /// TODO: 'byte_size' should be 64-bit. See IMPALA-2756. - line 209: /// TODO: 'byte_size' should be 64-bit. See IMPALA-2756. - line 260: /// TODO: Do we need to add arbitrary key/value metadata. This would be plumbed - line 264: /// TODO: Add mechanism for UDAs to update stats similar to runtime profile counters - line 266: /// TODO: Add mechanism to query for table/column stats - line 404: /// TODO: add an Init() variant that takes the initial input value to avoid initializing common/thrift/CatalogObjects.thrift (7 lines): - line 70: // TODO: Separate the storage engines (e.g. Kudu) from the file formats. - line 71: // TODO: Make the names consistent with the file format keywords specified in - line 96: // TODO: Since compression is also enabled for Kudu columns, we should - line 286: // TODO: This can probably be removed in favour of the intermediate_col_stats, but doing - line 339: // TODO: Put this in a KRPC sidecar to avoid serialization cost. - line 343: // TODO: Put this in a KRPC sidecar to avoid serialization cost. - line 792: // TODO: Keep a list of grant groups globally (in TCatalog?) and reference by ID since be/src/runtime/client-cache.h (7 lines): - line 76: /// TODO: shut down clients in the background if they don't get used for a period of time - line 77: /// TODO: More graceful handling of clients that have failed (maybe better - line 79: /// TODO: limits on total number of clients, and clients per-backend - line 80: /// TODO: move this to a separate header file, so that the public interface is more - line 224: // TODO: Inject fault here to exercise IMPALA-5576. - line 389: // TODO: ThriftClient should return proper error codes. - line 401: // TODO: Revisit this logic later. It's possible that the new connection fe/src/main/java/org/apache/impala/analysis/SelectStmt.java (7 lines): - line 303: // TODO: IMPALA-11712: We should sort out column masking and complex types. The - line 791: * TODO: In some cases, it is possible to generate !empty() predicates for - line 797: * TODO: Evaluating !empty() predicates at non-scan nodes interacts poorly with - line 1065: * TODO: Modify alias substitution to work like column resolution so that aliases - line 1182: // TODO: Avoid evaluating aggs in ignored order-bys - line 1828: * TODO: IMPALA-1285 to cover more cases that can be determinded at plan time such has a - line 1846: * TODO: IMPALA-1285 to cover more cases that can be determinded at plan time such has a shell/impala_client.py (7 lines): - line 137: TODO: when beeswax support is removed, merge this with ImpalaHS2Client.""" - line 286: # TODO: does this do the right thing for a cancelled query? - line 320: # TODO: when we remove Beeswax, we could merge close_dml() and close_query() - line 402: # TODO: Investigate connection reuse in ImpalaHttpClient and revisit this. - line 619: # TODO: ensure it's closed if needed - line 1238: TODO: remove once we've phased out beeswax.""" - line 1433: # TODO: In the future more advanced error detection/handling can be done based on be/src/util/runtime-profile.cc (7 lines): - line 338: // TODO: IMPALA-9846: move to RuntimeProfile::InitFromThrift() once 'info_strings_' is - line 568: // TODO: do we need any special handling of the computed timers? Like local/total time. - line 849: // TODO: Is nodes.info_strings always a superset of - line 1357: // TODO: IMPALA-9846: move to subclass once 'info_strings_' is also moved - line 1499: // TODO: IMPALA-9846: move to RuntimeProfile::PrettyPrintInfoStrings() once we move - line 1754: // Use a reference to reduce code churn. TODO: clean this up to use a pointer later. - line 1779: // TODO: IMPALA-9846: move to RuntimeProfile::ToThriftSubclass() once 'info_strings_' fe/src/main/java/org/apache/impala/catalog/Table.java (6 lines): - line 238: // TODO: Get rid of get and createEventId - line 244: // TODO: Add a preconditions check for eventId < lastSycnedEventId - line 247: // TODO: Should we reset lastSyncedEvent Id if it is less than event Id? - line 260: // TODO: Add a preconditions check for eventId >= createEventId_ - line 509: // TODO: Catching all exceptions and ignoring it makes it harder to detect errors. - line 1108: // TODO: Should we reset lastSyncedEvent Id if it is less than event Id? fe/src/main/java/org/apache/impala/catalog/metastore/MetastoreServiceHandler.java (6 lines): - line 332: // TODO handle session configuration - line 368: //TODO: Instead of passing individual configs in MetastoreServiceHandler, - line 510: // TODO: We should add TException to method signature in hive and we can remove - line 749: // TODO: Handle NoSuchObjectException - line 1402: // TODO Remove the usage of old API here once this API is ported to cdpd-master - line 1545: // TODO: may be we could assume that if ValidWriteIdList is not set, the table is fe/src/main/java/org/apache/impala/planner/AggregationNode.java (6 lines): - line 70: // TODO: Come up with a more useful heuristic. - line 137: // TODO: IMPALA-13542 - line 242: // TODO: If this is the transposition phase, then we can push conjuncts that - line 292: // TODO: IMPALA-13542 - line 505: // TODO: IMPALA-13542 - line 551: // TODO: Use producerNode.getCardinality() directly if predicate selectivity be/src/runtime/descriptors.h (6 lines): - line 127: /// TODO: This function should eventually be replaced by col_path(). It is currently - line 236: // TODO for 2.3: rename to materialized_path_ - line 422: // TODO: use the same representation as the Catalog does, in which common prefixes are - line 436: /// TODO: replace this with vector instead. - line 799: /// TODO: this needs to differentiate between tuples contained in row - line 826: /// TODO: also take avg string lengths into account, ie, change this be/src/runtime/coordinator.cc (6 lines): - line 238: // TODO: special-case the coordinator fragment? - line 432: // TODO: IMPALA-9333: having a shared RuntimeFilterBank between all fragments on - line 871: // TODO: IMPALA-6984: cancel all backends in this case too. - line 884: // TODO: should move this off of the query execution path? - line 1344: // TODO: add histogram/percentile - line 1360: // TODO: output the split info string and detailed stats to VLOG_FILE again? java/calcite-planner/src/main/java/org/apache/impala/calcite/service/ExecRequestCreator.java (6 lines): - line 79: * TODO: This class is very similar to the Frontend.createExecRequest method and - line 234: // TODO: only query statements are currently supported - line 271: // TODO: Need to populate these 3 fields - line 278: // TODO: only query currently supported - line 294: // TODO: Refactor and share Impala's getExplainString() - line 351: * TODO: This should be replaced once we conclude the changes contained in this method be/src/exec/exec-node.h (6 lines): - line 62: /// TODO: IMPALA-9216: Move all the static state of ExecNode into PlanNode. - line 105: /// TODO: IMPALA-9216: Add accessor methods for these members instead of making - line 111: /// conjunct_evals_ are not created for Aggregation nodes. TODO: move conjuncts to - line 321: /// TODO: The thread safe versions can be removed if we remove the legacy multi-threaded - line 401: /// TODO: Store a specialized reference directly in the child classes when all static - line 479: /// TODO: IMPALA-2399: replace QueryMaintenance() - see JIRA for more details. be/src/exec/partitioned-hash-join-builder.cc (6 lines): - line 553: // TODO: can we do better with a different spilling heuristic? - line 607: // TODO: implement the knapsack solution. - line 623: // TODO: the below logic could be improved calculating upfront how much memory is needed - line 765: // TODO: IMPALA-9411: consider reworking to attach buffers to all output batches. - line 837: // TODO: IMPALA-9411: consider reworking to attach buffers to all output batches. - line 1244: // TODO: Try to allocate the hash table before pinning the stream to avoid needlessly fe/src/main/java/org/apache/impala/planner/PlanNode.java (6 lines): - line 133: // TODO for 2.3: Save this state in the PlannerContext instead. - line 143: // TODO: merge this with cardinality_. - line 656: * TODO: change this to assign the unassigned conjuncts to root itself, if that is - line 789: * TODO: Fix the third issue with more general solution when there are multiple range - line 1295: // TODO: merge this with getCardinality(). - line 1324: * must explicitly support tuple caching. TODO: The computation of eligibility will be/src/udf/udf.cc (6 lines): - line 286: // TODO: we need to modify the memtrackers to allow leaked user-allocated memory. - line 293: // TODO: revisit abort_on_error case. Setting the error won't do anything in close. - line 462: // TODO: is there a way to tell the user the expr in a reasonable way? - line 464: // TODO: de-dup warnings - line 475: // TODO: somehow print the full error log in the shell? This is a problem for any - line 605: // TODO: why doesn't libudasample.so build if this in udf-ir.cc? fe/src/main/java/org/apache/impala/analysis/ComputeStatsStmt.java (6 lines): - line 111: * TODO: Allow more coarse (db) - line 112: * TODO: Compute stats on complex types. - line 140: // TODO: We can probably do better than this, e.g. running several queries, each of - line 180: // TODO: Consider using partition IDs (and adding them to the child queries with a - line 513: // TODO: need a better way to invalidate stats for all partitions, so that we can - line 600: // TODO: Consider simply running for MAX_INCREMENTAL_PARTITIONS partitions, and then be/src/util/runtime-profile.h (6 lines): - line 193: /// TODO: IMPALA-9846: this can be moved to RuntimeProfile once we remove callsites for - line 279: /// TODO: IMPALA-9846: info strings can be moved to RuntimeProfile once we remove - line 420: /// TODO: IMPALA-9846: this can be moved to RuntimeProfile once we remove callsites for - line 578: /// TODO: EventSequences are not merged by Update() - line 579: /// TODO: is this comment out of date? - line 653: /// TODO: make this interface more consistent and sane. be/src/exec/avro/hdfs-avro-scanner.cc (6 lines): - line 224: // TODO: test unresolvable schemas - line 225: // TODO: improve error messages - line 244: // TODO: add path to error message (and elsewhere) - line 382: // TODO: update if/when we have TYPE_STRUCT primitive type - line 405: // TODO: make this work for nested fields - line 413: // TODO: update if/when we have TYPE_STRUCT primitive type common/thrift/ImpalaInternalService.thrift (6 lines): - line 44: // TODO: find a better name - line 79: // TODO: convert the rest of this struct to protobuf - line 100: // TODO for per-query exec rpc: move these to PlanFragmentCtxPB - line 132: // TODO: investigate if it's worth converting this fully to protobuf - line 141: // TODO: why is this here? - line 166: // TODO: why is this here? be/src/service/client-request-state.cc (5 lines): - line 1194: // TODO: IMPALA-7396: thread creation fault inject is disabled because it is not - line 1475: // TODO: Simplify this. - line 1609: // TODO: We track partitions written to, not created, which means - line 2158: // TODO: deal with an error status - line 2164: // TODO: deal with an error status be/src/exec/aggregator.cc (5 lines): - line 143: // TODO: codegen this function. - line 206: // TODO: Codegen this. - line 376: // TODO: consider moving the following codegen logic to AggFn. - line 588: // TODO: get rid of this by using right type in function signature - line 598: // TODO: we should be able to hoist this up to the loop over the batch and just be/src/exprs/string-functions-ir.cc (5 lines): - line 202: // TODO: Hive seems to go into an infinite loop if pad.len == 0, - line 233: // TODO: Hive seems to go into an infinite loop if pad->len == 0, - line 678: // TODO: if we know src and dst are constant, we can prebuild a conversion - line 1035: // TODO: include the memory requirement for re2 in the memory planner estimates - line 1117: // TODO: fix this be/src/exec/hdfs-scan-node.cc (5 lines): - line 90: // TODO: This is probably not worth splitting the organisational cost of splitting - line 275: // TODO: It would be good to have a test case for that. - line 292: // TODO: This still leans heavily on starvation-free locks, come up with a more - line 513: // TODO: make sure the parquet reader is outputting as much diagnostic - line 542: // TODO: Cancelling the RequestContext will wait on in-flight IO. We should be/src/exec/parquet/parquet-column-readers.cc (5 lines): - line 324: //TODO: use constexpr ifs when we switch to C++17. - line 341: // TODO: consider performing filter selectivity checks in this function. - line 1087: // TODO: maybe avoid malloc on every page? - line 1144: // TODO: should we check for stream_->eosr()? - line 1182: // TODO: should we check for stream_->eosr()? be/src/runtime/row-batch.h (5 lines): - line 63: /// TODO: IMPALA-4179: simplify the ownership transfer model. - line 254: /// TODO: IMPALA-4179: simplify the ownership transfer model. - line 264: /// TODO: IMPALA-4179: blocking operators should acquire all memory resources including - line 291: /// TODO: IMPALA-4179: always attach backing resources and remove this flag. - line 344: /// TODO: the current implementation of deep copy can produce an oversized be/src/util/rle-encoding.h (5 lines): - line 67: /// TODO: For 1 bit-width values it can be optimal to use 16 or 24 values, but more - line 69: /// TODO: think about how to use this for strings. The bit packing isn't quite the same. - line 226: /// TODO: consider adding a min_repeated_run_length so the caller can control - line 229: /// TODO: allow 0 bit_width (and have dict encoder use it) - line 316: /// TODO: generalize this to other bit widths common/thrift/Frontend.thrift (5 lines): - line 39: // TODO: this could be the UdfID, collapsing the first 3 arguments but synchronizing - line 472: // TODO: Combine SHOW requests with a single struct that contains a field - line 626: // TODO: Create an enum for this? - line 1039: // TODO: Add the EXPLAIN string from the source cluster on which the testcase was - line 1055: // TODO: How to deal with version incompatibilities? E.g: A testcase collected on fe/src/main/java/org/apache/impala/planner/HBaseScanNode.java (5 lines): - line 205: // TODO: do we need copies here? - line 248: // TODO: Make this a Preconditions.checkState(). If we get here, - line 331: // TODO: What do do if neither HBase nor HMS provide a row count estimate? - line 398: // TODO: expand this to generate nested filter lists for arbitrary conjunctions - line 649: // TODO: Add support for pushing LIKE/REGEX down to HBase with a different Filter. be/src/exec/partitioned-hash-join-node.cc (5 lines): - line 87: // TODO: IMPALA-12265: create the config only if it is necessary - line 611: // TODO: IMPALA-9411: implement shared ownership of buffers to avoid this. - line 1388: // TODO: this should be replaced with memset() but I can't get the llvm intrinsic - line 1508: // TODO: switch statement - line 1539: // TODO: switch statement be/src/scheduling/scheduler.cc (5 lines): - line 583: // TODO: implement more accurate logic for Kudu and Hbase - line 740: // TODO TODO: the TODO below seems partially stale - line 741: // TODO: we'll need to revisit this strategy once we can partition joins - line 1022: // TODO: Either get this from the ExecutorConfig or modify the AssignmentCtx interface - line 1663: // TODO: KUDU-1133 Use the tablet size instead. be/src/benchmarks/overflow-benchmark.cc (5 lines): - line 180: // TODO: faster to return here? We don't care at all about the perf on - line 205: // TODO: faster to return here? We don't care at all about the perf on - line 276: // TODO: we could also return NULL. - line 312: // TODO: we could also return NULL. - line 345: // TODO: we could also return NULL. be/src/runtime/bufferpool/reservation-tracker.h (5 lines): - line 71: /// TODO: we will remove MemTracker and this integration once all memory is accounted via - line 113: /// TODO: decide on and implement policy for how far to release the reservation up - line 223: /// TODO: remove once we account all memory via ReservationTrackers. - line 228: /// TODO: remove once we account all memory via ReservationTrackers. - line 303: /// TODO: remove once all memory is accounted via ReservationTrackers. be/src/util/thread.cc (5 lines): - line 148: // TODO: Add start-time. - line 149: // TODO: Track fragment ID. - line 168: // TODO: unordered_map is incompatible with boost::thread::id, but would be more - line 238: // TODO: URLEncode() name? - line 322: // TODO: This slows down thread creation although not enormously. To make this faster, be/src/exec/analytic-eval-node.h (5 lines): - line 228: /// TODO: fn_scope_ and window_ are candidates to be removed during codegen - line 253: /// TODO: Consider adding additional state to capture whether different kinds of window - line 289: /// TODO: Remove when agg fns implement a separate Close() method to release resources. - line 316: /// TODO: Remove and use BufferedTupleStream (needs support for multiple readers). - line 368: /// TODO: Consider re-pinning unpinned streams when possible. fe/src/main/java/org/apache/impala/catalog/HdfsTable.java (5 lines): - line 740: //TODO: maybe it'd be better to load the valid txn list in the context of a - line 845: // TODO: Revisit if the S3A connector is updated to be able to manage S3 object - line 953: // TODO: READ_ONLY isn't exactly correct because the it's possible the - line 2046: // TODO: why is there a single synchronized function? - line 2199: // TODO: synchronize the access on the partition map by using a finer-grained lock fe/src/main/java/org/apache/impala/catalog/AggregateFunction.java (5 lines): - line 37: * TODO: Create separate AnalyticFunction class - line 55: // TODO: currently it is not possible for user functions to specify this. We should - line 60: // TODO: Instead of manually setting this flag for all builtin aggregate functions - line 71: // TODO: Instead of manually setting this flag, we should identify this - line 238: * TODO: Deal with constant exprs more generally, instead of special-casing common/function-registry/impala_functions.py (5 lines): - line 34: # TODO: this is a stopgap. ComputeFunctions are being removed and we can use the - line 475: # TODO: oracle has decimal support for transcendental functions (e.g. sin()) to very - line 938: # TODO: implement this after HIVE-24641 is resolved. - line 970: # TODO: implement this after HIVE-24641 is resolved. - line 1002: # TODO: implement this after HIVE-24641 is resolved. fe/src/main/java/org/apache/impala/planner/JoinNode.java (5 lines): - line 63: // TODO: Come up with a more useful heuristic (e.g., based on scanned partitions). - line 338: * TODO: Revisit this pessimistic adjustment that tends to overestimate. - line 533: * TODO: check if applicable for anti and semi joins - line 743: * TODO: In order to take into account additional conjuncts in the child child subtrees - line 953: // TODO: IMPALA-4179: remove this workaround be/src/service/client-request-state.h (5 lines): - line 75: /// TODO: Compute stats is the only stmt that requires child queries. Once the - line 120: /// TODO: This is likely a superset of GetTableNames/GetDbs. Coalesce these different - line 197: /// FINISHED state. Otherwise, sets state to ERROR (TODO: IMPALA-1262: use CANCELLED). - line 906: /// TODO: Have the FE return list so that this isn't necessary - line 924: /// TODO: Unify the various ways that the Metastore is updated for DDL/DML. fe/src/main/java/org/apache/impala/planner/AnalyticPlanner.java (5 lines): - line 99: * TODO: when generating sort orders for the sort groups, optimize the ordering - line 102: * TODO: when merging sort groups, recognize equivalent exprs - line 271: // TODO: also look at l2 and take the max? - line 479: // TODO: IMPALA-10015: we should instead generate an empty set plan that - line 728: // TODO: compare equiv classes by comparing each equiv class's placeholder be/src/util/metrics.h (4 lines): - line 53: /// TODO: Support multiple arguments. - line 80: /// TODO: Add ToThrift() for conversion to an RPC-friendly format. - line 125: /// TODO: share one copy amongst metrics with the same description. - line 350: /// TODO: Hierarchical naming: that is, resolve "group1.group2.metric-name" to a path be/src/rpc/thrift-util.cc (4 lines): - line 40: // TODO: is there a better include to use? - line 49: // TODO: get thrift to fix this. - line 179: // TODO: OpenSSL 1.0.1 is old. Centos 7.4 and above use 1.0.2. This probably can - line 342: // TODO: Find way to assign TConfiguration through TTransportFactory instead. fe/src/main/java/org/apache/impala/analysis/TableRef.java (4 lines): - line 66: * TODO for 2.3: The current TableRef class hierarchy and the related two-phase analysis - line 71: * TODO for 2.3: Rename this class to CollectionRef and re-consider the naming and - line 111: // TODO: Move join-specific members out of TableRef. - line 567: * TODO: Add other table hints for kudu table. be/src/exec/orc/hdfs-orc-scanner.cc (4 lines): - line 301: memcpy(buf, stream_buf, length); // TODO: ORC-262: extend ORC interface to avoid copy. - line 1374: // TODO: push down stats predicates on CHAR/VARCHAR(IMPALA-10882) and - line 1388: // TODO: push down stats predicates on CHAR/VARCHAR(IMPALA-10882) and - line 1527: memcpy(buf, stream_buf, length); // TODO: ORC-262: extend ORC interface to avoid copy. be/src/exec/avro/hdfs-avro-scanner-test.cc (4 lines): - line 32: // TODO: IMPALA-3658: complete CHAR unit tests. - line 33: // TODO: IMPALA-3658: complete VARCHAR unit tests. - line 279: // TODO: we don't handle invalid values (e.g. overflow) (IMPALA-3659) - line 363: // TODO: we don't handle invalid values (e.g. overflow) (IMPALA-3659) be/src/statestore/statestore.cc (4 lines): - line 182: // TODO: Replace 'backend' with 'subscriber' when we can coordinate a change with CM - line 1431: // TODO: Consider if a metric to track the number of failures would be useful. - line 2019: // TODO: break this function to 3 functions for each branch: recovery-mode, active state, - line 2101: // TODO: IMPALA-12507 Need better approach to handle split-brain in network. be/src/runtime/bufferpool/reservation-util.h (4 lines): - line 45: /// TODO: remove once all operators use buffer reservations. - line 50: /// TODO: remove once all operators use buffer reservations. - line 58: /// TODO: remove once all operators use buffer reservations. - line 68: /// TODO: remove once all operators use buffer reservations. be/src/runtime/buffered-tuple-stream.cc (4 lines): - line 898: // TODO: always flushing for pinned streams is overkill since we may not need - line 1055: // TODO: consider codegening this. - line 1056: // TODO: in case of duplicate tuples, this can redundantly serialize data. - line 1090: // TODO: Once IMPALA-1306 (Avoid passing empty tuples of non-materialized slots) be/src/runtime/query-state.cc (4 lines): - line 418: // TODO: this over-reserves memory a bit in a couple of cases: - line 721: // TODO: --backend_client_rpc_timeout_ms was originally intended as a socket timeout for - line 757: // TODO: should we try to keep rpc_status for the final report? (but the final - line 759: // TODO: not keeping an error status here means that all instances might fe/src/main/java/org/apache/impala/catalog/Db.java (4 lines): - line 79: // TODO: We should have a consistent synchronization model for Db and Table - line 141: // TODO: Add a preconditions check for eventId < lastSycnedEventId - line 154: // TODO: Add a preconditions check for eventId >= createEventId_ - line 412: * TODO: Move away from using signature strings and instead use Function IDs. shell/impala_shell.py (4 lines): - line 708: # TODO: this isn't thread-safe with respect to the main thread executing the - line 776: # TODO: This may have to be changed to a super() call once we move to Python 3 - line 906: # TODO: Expand set to allow for setting more than just query options. - line 1415: # TODO: Clean up this try block and refactor it (IMPALA-3814) fe/src/main/java/org/apache/impala/catalog/events/MetastoreEventsProcessor.java (4 lines): - line 236: * TODO: - line 708: //TODO create a separate singleton class which wraps around this so that we don't - line 1326: // TODO: Need to redefine the lag in the hierarchical processing mode. - line 1560: // TODO: eventProcessingTime here is more relevant in sequential processing mode. But, be/src/service/impala-hs2-server.cc (4 lines): - line 132: // TODO: (here and elsewhere) - differentiate between invalid session ID and timeout - line 333: // TODO: Fix duplication of code between here and ConnectionStart(). - line 484: // FIXME C++20: use contains(). - line 998: // TODO: use timeout to get rid of unwanted query_handle. be/src/service/hs2-util.cc (4 lines): - line 71: // TODO: This is very inefficient, since we could conceivably go one byte at a time - line 456: // TODO: instead of relying on stamped out implementations, we could codegen this loop - line 555: // TODO: Handle complex types. - line 617: // TODO: Handle complex types. be/src/exec/hash-table.inline.h (4 lines): - line 149: // TODO: Reconsider the locality level with smaller prefetch batch size. - line 167: // TODO: support lazy evaluation like HashTable::Insert(). - line 269: // TODO: GetTupleRow() has interpreted code that iterates over the row's descriptor. - line 309: // TODO: To avoid the has_duplicates check, store the HtData* in the Iterator. be/src/runtime/buffered-tuple-stream.h (4 lines): - line 206: /// TODO: IMPALA-5007: try to remove AddRowCustom*() by unifying with AddRow(). - line 208: /// TODO: prefetching for pages could speed up iteration over unpinned streams. - line 344: /// TODO: always flushing for pinned streams is overkill since we may not need - line 601: // TODO: remove when we switch to GCC5+, where list.size() is O(1). See GCC bug #49561. fe/src/main/java/org/apache/impala/analysis/BinaryPredicate.java (4 lines): - line 225: // TODO Remove that restriction when we add support for independent subquery - line 255: // TODO: Compute selectivity for nested predicates. - line 256: // TODO: Improve estimation using histograms. - line 337: * TODO: revisit CAST handling at the caller fe/src/main/java/org/apache/impala/catalog/FeHBaseTable.java (4 lines): - line 178: // TODO: Change this to an ArrayList once we support composite row keys. - line 326: // TODO: Hive/HBase does not raise an exception, but should we? - line 459: // TODO: Put this into the per query log. - line 479: // TODO: Consider fancier stats maintenance techniques for speeding up this process. fe/src/main/java/org/apache/impala/analysis/TypesUtil.java (4 lines): - line 32: // TODO: how did they pick this? - line 39: * TODO: Support 12 byte decimal? - line 143: * TODO: IMPALA-4924: remove DECIMAL V1 code. - line 273: // TODO: better way? be/src/exprs/scalar-expr.cc (4 lines): - line 89: // TODO: fix this - reducing the number of entry points would reduce codegen overhead - line 179: // TODO: is there a better way to do this? - line 248: // TODO: why put var-len at end? - line 308: // TODO: implement partial debug string for member vars be/src/runtime/tuple.cc (4 lines): - line 92: // TODO: the logic is very similar to the other DeepCopy implementation aside from how - line 276: // TODO: revisit this logic in the FE - line 404: // TODO IMPALA-12068: implement it for 'collect_varlen_vals' == true too. - line 497: // TODO: if pool != NULL, OptimizeFunctionWithExprs() is inlining the Allocate() fe/src/main/java/org/apache/impala/planner/RuntimeFilterGenerator.java (4 lines): - line 106: * TODO: Consider combining multiple filters, that are applied to the same scan node, - line 1022: // TODO: FK/PK alone may not be enough to justify eliminating the - line 1302: // TODO: Support Kudu VARCHAR Bloom Filter - line 1333: // TODO: IMPALA-9580: Support Kudu VARCHAR Min/Max Filters fe/src/main/java/org/apache/impala/planner/DataSourceScanNode.java (4 lines): - line 164: * TODO: Retry using JNI & Thrift TDeserializer.deserialize for decimal saved as - line 226: // TODO: Include DB (i.e. getFullName())? - line 262: * TODO: Move this to Expr. - line 392: // TODO: Does the port matter? be/src/runtime/decimal-test.cc (3 lines): - line 747: // TODO: Implement V2 result types - line 821: // TODO: what's the best way to author a bunch of tests like this? - line 944: // TODO: double is too imprecise so we can't test with high scales. fe/src/main/java/org/apache/impala/catalog/events/DeleteEventLog.java (3 lines): - line 42: //TODO add catalogName in this key when we support metastore catalogs - line 45: //TODO add catalogName in this key when we support metastore catalogs - line 48: // TODO Add catalog name here. be/src/exec/parquet/parquet-common.h (3 lines): - line 140: /// TODO: we are using templates to provide a generic interface (over the - line 207: // TODO: use closed form for this? - line 855: // TODO: It would be more efficient to do the timezone conversion in the same step be/src/exec/parquet/parquet-column-chunk-reader.cc (3 lines): - line 93: // TODO: is this really needed? The read in ReadPageHeader() will release these - line 359: // TODO: can't we call stream_->ReleaseCompletedResources(false); at this point? - line 385: // TODO: could skip copying when the data page is dict encoded as strings be/src/scheduling/cluster-membership-mgr-test.cc (3 lines): - line 57: /// 4) TODO: Make random, potentially invalid changes to the membership of a whole - line 579: // TODO: Parameterize this test and run with several parameter sets - line 888: /// TODO: Write a test that makes a number of random changes to cluster membership while be/src/kudu/rpc/serialization.cc (3 lines): - line 183: buf[kHeaderPosServiceClass] = 0; // TODO: implement - line 184: buf[kHeaderPosAuthProto] = 0; // TODO: implement - line 213: // TODO: validate additional header flags: be/src/rpc/impala-service-pool.cc (3 lines): - line 76: // TODO: Retrieve these from KRPC once KUDU-2313 has been implemented. - line 104: // TODO (from KRPC): Use a proper thread pool implementation. - line 302: // TODO: Switch to structured JSON (IMPALA-6545). common/thrift/PlanNodes.thrift (3 lines): - line 246: // TODO: does 'binary' have an advantage over string? strings can - line 324: // TODO: Remove this option when the MT scan node supports all file formats. - line 389: // TODO: remove this, we already have THBaseTable.tableName fe/src/main/java/org/apache/impala/planner/AnalyticEvalNode.java (3 lines): - line 67: // TODO: Remove when the BE uses partitionByLessThan rather than the exprs - line 298: // TODO: Window boundaries should have range_offset_predicate set - line 376: // TODO: come up with estimate based on window be/src/runtime/tmp-file-mgr.h (3 lines): - line 125: /// TODO: IMPALA-4683: we could implement smarter handling of failures, e.g. to - line 587: /// TODO: IMPALA-4249: remove once lifetime of ScanRange objects is better defined. - line 841: /// TODO: ScopedBuffer is a suboptimal memory allocation approach. We would be better common/thrift/ImpalaService.thrift (3 lines): - line 168: // TODO: IMPALA-4306: retire at compatibility-breaking version - line 245: // TODO: Find a way to get this working for INSERT OVERWRITEs too. - line 1050: // TODO: Provide a detailed breakdown of these counts by error. IMPALA-4416. be/src/kudu/util/rle-encoding.h (3 lines): - line 61: // TODO: think about how to use this for strings. The bit packing isn't quite the same. - line 147: // TODO: consider adding a min_repeated_run_length so the caller can control - line 203: // TODO: generalize this to other bit widths fe/src/main/java/org/apache/impala/service/KuduCatalogOpExecutor.java (3 lines): - line 132: // TODO: The IF NOT EXISTS case should be handled by Kudu to ensure atomicity. - line 335: // TODO: The IF EXISTS case should be handled by Kudu to ensure atomicity. - line 423: // TODO: This is misleading when there are other errors, e.g. timeouts. be/src/rpc/thrift-client.h (3 lines): - line 84: /// TODO: Remove this when Thrift supports ssl_minimum_version=tlsv1.3. - line 107: /// TODO: Consider a builder class to make constructing this class easier. - line 150: // TODO: Move initialization code that can fail into a separate Init() method. fe/src/main/java/org/apache/impala/analysis/ColumnDef.java (3 lines): - line 101: // TODO: Remove when Impala supports a 64-bit TIMESTAMP type. - line 267: // TODO: Similar checks are applied for range partition values in - line 322: // TODO: Remove when Impala supports a 64-bit TIMESTAMP type. be/src/scheduling/scheduler.h (3 lines): - line 53: /// TODO: Track assignments (assignment_ctx in ComputeScanRangeAssignment) per query - line 55: /// TODO: Inject global dependencies into the class (for example ExecEnv::GetInstance(), - line 58: /// TODO: Extend the benchmarks of the scheduler. The tests need to include setups with: be/src/exprs/slot-ref.cc (3 lines): - line 93: // TODO: create macro MAKE_ERROR() that returns a stream - line 200: // TODO: We could generate a typed struct (and not a char*) for Tuple for llvm. We know - line 208: // TODO: can we do something better. common/protobuf/kudu/rpc/serialization.cc (3 lines): - line 183: buf[kHeaderPosServiceClass] = 0; // TODO: implement - line 184: buf[kHeaderPosAuthProto] = 0; // TODO: implement - line 213: // TODO: validate additional header flags: fe/src/compat-apache-hive-3/java/org/apache/impala/compat/MetastoreShim.java (3 lines): - line 279: // TODO: will remove this capability when Hive can provide - line 429: //TODO: IMPALA-8632: Add support for self-event detection for insert events - line 1005: // TODO: IMPALA-11815: hive metastore doesn't privide api to judge whether the fe/src/main/java/org/apache/impala/analysis/CollectionTableRef.java (3 lines): - line 29: * TODO: We currently create a new slot in the root tuple descriptor for every - line 137: // TODO: currently we cannot use the same array twice (e.g. self join) in this - line 200: // TODO: For joins on nested collections some join ops can be simplified common/thrift/CatalogService.thrift (3 lines): - line 52: // TODO: The CatalogServiceVersion/protocol version should be part of the header. - line 268: // TODO: Rename this struct to something more descriptive. - line 617: // TODO: Fix partition lookup logic to not do it with IDs. fe/src/main/java/org/apache/impala/catalog/Hive3MetastoreShimBase.java (3 lines): - line 339: * TODO : In order to avoid this copy, we move move this code from hive's ql module - line 470: // The following 2 lines are exactly what MySQL does TODO: why do we do this? - line 693: //TODO: add profile counter for lock waits. be/src/runtime/lib-cache.h (3 lines): - line 54: /// TODO: - line 117: /// TODO: api is error-prone. upgrade to LibCacheEntryHandle (see IMPALA-6439). - line 189: /// TODO: cleanup this method's interface and how the outputs are used. be/src/runtime/decimal-value.inline.h (3 lines): - line 49: // TODO: IMPALA-4924: remove DECIMAL V1 code - line 186: // TODO: We are doing a lot of these abs() operations on int128_t in many places in our - line 639: /// TODO: is there a more efficient way to do this? fe/src/main/java/org/apache/impala/planner/SortNode.java (3 lines): - line 62: // Memory limit for partial sorts, specified in bytes. TODO: determine the value for - line 473: // TODO: Benchmark partial sort cost separately. - line 474: // TODO: Improve this for larger spilling sorts. be/src/exec/nested-loop-join-builder.cc (3 lines): - line 203: // from whoever created the Block/Buffer. TODO: remove workaround when IMPALA-4179 - line 250: // TODO: Remove const-cast. - line 262: // TODO: it would be more efficient to do the deep copy within the same batch, rather fe/src/main/java/org/apache/impala/analysis/StatementBase.java (3 lines): - line 175: * TODO for 2.3: Consider also cloning table and slot descriptors for clarity, - line 202: * TODO: Introduce this same convention for Exprs, possibly by moving clone()/reset() - line 228: // TODO: Can we avoid casting CHAR -> VARCHAR -> CHAR for CHAR dst columns? be/src/exec/rcfile/hdfs-rcfile-scanner.cc (3 lines): - line 112: // TODO: Initialize codegen fn here - line 461: // TODO: Wrap this in an iterator and prevent people from alternating - line 488: // TODO: Stream through these column buffers instead of reading everything be/src/rpc/thrift-server.h (3 lines): - line 59: /// TODO: shutdown is buggy (which only harms tests) - line 367: /// TODO: Remove this when it is possible to set ssl_minimum_version=TLSv1.3. - line 516: /// TODO: Remove this when ssl_minimum_version=tlsv1.3 is supported. fe/src/main/java/org/apache/impala/catalog/DefaultCompatibility.java (3 lines): - line 81: // TODO: arguably we should promote INT + FLOAT to DOUBLE to avoid loss of precision, - line 95: // TODO: arguably we should always promote BIGINT + FLOAT to double here to keep as - line 99: // TODO: we're breaking the definition of strict compatibility for BIGINT + DOUBLE, common/thrift/Query.thrift (3 lines): - line 838: // TODO: Separate into FE/BE initialized vars. - line 857: // TODO: determine whether we can get this somehow via the Thrift rpc mechanism. - line 1083: // TODO: Remove when AC doesn't rely on this any more. fe/src/main/java/org/apache/impala/planner/PlanFragment.java (3 lines): - line 108: // TODO: improve this comment, "input" is a bit misleading - line 605: * TODO: Come up with a better prediction here of the instance count we're likely to - line 1128: // TODO: This code assume that probe side of the join always have higher per-instance be/src/runtime/coordinator-backend-state.cc (3 lines): - line 312: // TODO: eliminate the extra copy here by using a Slice - line 454: // TODO: revisit ComputeQuerySummary() - line 591: // TODO: keep backend-wide stopwatch? common/protobuf/kudu/gutil/thread_annotations.h (3 lines): - line 135: #define NO_THREAD_SAFETY_ANALYSIS_FIXME \ - line 154: // TS_FIXME is used to mark lock expressions that are not valid C++ syntax. - line 225: #define NO_THREAD_SAFETY_ANALYSIS_FIXME \ be/src/util/webserver.cc (3 lines): - line 704: // TODO: cookies are not added, but are not needed right now - line 712: // TODO: cookies are not added, but are not needed right now - line 897: // TODO: for this and other HTTP requests, we should log the be/src/exec/text/hdfs-text-scanner.cc (3 lines): - line 111: // TODO: Lz4 is splittable, should be treated similarly. - line 303: // TODO: calling FillByteBuffer() at eof() can cause - line 664: // TODO: This should probably be based on L2/L3 cache sizes (as should the batch size) fe/src/main/java/org/apache/impala/analysis/SortInfo.java (3 lines): - line 47: * TODO: reorganize this completely, this doesn't really encapsulate anything; this - line 57: // TODO: rethink this when we have a better cost model. - line 366: // TODO IMPALA-12160: Once we allow sorting collections in structs, test that fe/src/main/java/org/apache/impala/planner/HashJoinNode.java (3 lines): - line 313: // TODO: IMPALA-9416: be less conservative here - line 314: // TODO: In case of compute_processing_cost=false, it is probably OK to stil use - line 374: // TODO: For broadcast join builds we're underestimating cost here because we're using be/src/exec/avro/hdfs-avro-scanner.h (3 lines): - line 65: /// TODO: - line 106: /// TODO: check that file schema matches metadata schema - line 223: /// TODO: Codegen a function for each unique file schema. be/src/exec/parquet/hdfs-parquet-table-writer.h (3 lines): - line 45: /// TODO: (parts of the format that are not implemented) - line 49: /// TODO: we need a mechanism to pass the equivalent of serde params to this class - line 92: /// TODO: May need to be increased after addressing IMPALA-1619. be/src/kudu/gutil/thread_annotations.h (3 lines): - line 135: #define NO_THREAD_SAFETY_ANALYSIS_FIXME \ - line 154: // TS_FIXME is used to mark lock expressions that are not valid C++ syntax. - line 225: #define NO_THREAD_SAFETY_ANALYSIS_FIXME \ be/src/exec/topn-node.cc (3 lines): - line 224: // TODO: IMPALA-10228: replace comparisons in std::map. - line 412: // TODO: To improve performance for small inputs when this node is run multiple times - line 593: // TODO: it's possible that we could free up memory without evicting any heaps be/src/exec/delimited-text-parser.cc (3 lines): - line 253: // TODO: can we parallelize this as well? Are there multiple sse execution units? - line 295: // TODO: If scan range is split between escape character and tuple delimiter, - line 306: // TODO: This sucks. All the preceding characters before the tuple delim were be/src/exec/parquet/parquet-column-readers.h (3 lines): - line 124: /// TODO: this is the function that needs to be codegen'd (e.g. CodegenReadValue()) - line 127: /// TODO: another option is to materialize col by col for the entire row batch in - line 382: // TODO: Some encodings might benefit a lot from a SkipValues(int num_rows) if be/src/gutil/thread_annotations.h (3 lines): - line 135: #define NO_THREAD_SAFETY_ANALYSIS_FIXME \ - line 154: // TS_FIXME is used to mark lock expressions that are not valid C++ syntax. - line 225: #define NO_THREAD_SAFETY_ANALYSIS_FIXME \ be/src/runtime/descriptors.cc (3 lines): - line 555: // TODO: RowDescriptor should arguably be optional in Prepare for known literals. - line 920: // TODO: Maybe separate null handling and non-null-handling so that it is easier to insert - line 1481: // TODO IMPALA-12775: Check whether the struct itself is NULL. fe/src/main/java/org/apache/impala/catalog/Type.java (3 lines): - line 225: // TODO: Handle complex types properly. Some instances may be fixed length. - line 380: * TODO: Support casting of non-scalar types. - line 397: * TODO: Support struct types. fe/src/main/java/org/apache/impala/planner/KuduScanNode.java (3 lines): - line 531: // TODO KUDU-931 look into handling implicit/explicit casts on the SlotRef. - line 590: // TODO: Simplify when Impala supports a 64-bit TIMESTAMP type. - line 766: // TODO: Simplify when Impala supports a 64-bit TIMESTAMP type. fe/src/main/java/org/apache/impala/planner/ExchangeNode.java (3 lines): - line 65: // TODO: The per-row sizes calculated from profile counters suggest we - line 278: // TODO: Add specific costing for DIRECTED exchange based on benchmarks. - line 343: // TODO: Should we set a better default size here? This might be alot for be/src/exec/aggregator.h (3 lines): - line 269: /// TODO: Fix the arguments order. Need to update AggregatorConfig::CodegenUpdateTuple() - line 281: /// TODO: Coordinate the allocation of new tuples with the release of memory - line 289: /// TODO: IMPALA-2399: replace QueryMaintenance() - see JIRA for more details. fe/src/main/java/org/apache/impala/planner/ParallelPlanner.java (3 lines): - line 37: * TODO: if the input to the JoinBuildSink is the result of a grouping aggregation - line 42: * TODO: instead of cohort ids, create a Plan class that is a subclass of TreeNode? - line 63: * TODO: create class DistributedPlan with a PlanFragment member, so we don't fe/src/main/java/org/apache/impala/analysis/NumericLiteral.java (3 lines): - line 51: * attempts to "fold" the cast into the literal directly. TODO: Revisit this - line 77: * TODO: The above problem would disappear if the analyzer is modified to make - line 404: * TODO: Revisit this: either leave the cast to float in place be/src/transport/TSasl.cpp (3 lines): - line 97: // TODO: The right fix is probably to use UserGroupInformation in the frontend which - line 121: // TODO: setup security property - line 204: // TODO: Need to return a value based on the mechanism. be/src/util/compress.cc (3 lines): - line 170: // TODO: is it possible to get a bound with bzip. - line 241: // TODO: is it possible to get a bound on this? - line 284: // TODO: should this be a while or a do-while loop? Check what Hadoop does. common/protobuf/kudu/util/rle-encoding.h (3 lines): - line 61: // TODO: think about how to use this for strings. The bit packing isn't quite the same. - line 147: // TODO: consider adding a min_repeated_run_length so the caller can control - line 203: // TODO: generalize this to other bit widths fe/src/main/java/org/apache/impala/analysis/IsNullPredicate.java (3 lines): - line 118: // TODO: Add support for InPredicates and BinaryPredicates with - line 120: // TODO: Handle arbitrary UDA/Udfs - line 153: // TODO: increase this to make sure we don't end up favoring broadcast joins be/src/util/dict-encoding.h (3 lines): - line 43: /// TODO: if the dictionary was made to be ordered, the dictionary would compress better. - line 50: /// TODO: once we can easily remove virtual calls with codegen, this interface can - line 160: // TODO: TryConsume() can be called to check if memory limit has been exceeded. be/src/statestore/statestore.h (3 lines): - line 316: /// current version() TODO: Consider enforcing version monotonicity here. - line 431: /// TODO: Looking up a TopicEntry from the topic_update_log_ requires two reads - one - line 977: /// TODO: Update the min subscriber version only when a topic is updated, rather than be/src/runtime/hbase-table-factory.h (3 lines): - line 35: /// TODO: Consider writing factory in Java to save JNI logic (and to avoid - line 37: /// TODO: Implement a cache to avoid creating more HTables than necessary - line 38: /// TODO: Add metrics to track the number of tables outstanding be/src/runtime/coordinator-backend-state.h (3 lines): - line 525: /// TODO: IMPALA-9846: can remove when we switch to the transposed profile. - line 529: /// TODO: IMPALA-9846: can remove when we switch to the transposed profile. - line 533: /// TODO: IMPALA-9846: can remove when we switch to the transposed profile. fe/src/main/java/org/apache/impala/authentication/saml/WrappedWebContext.java (3 lines): - line 45: // TODO: if real session management seems necessary then this should be replaced, - line 70: // TODO recreate params or store original URL? - line 117: // TODO Do we need to support http too? fe/src/main/java/org/apache/impala/catalog/KuduTable.java (3 lines): - line 87: // TODO: Rename kudu.master_addresses to kudu.master_host will break compatibility - line 109: // avoid conficts. TODO: Remove this when Kudu supports databases. - line 307: // TODO: Change this to reflect the number of pk columns and modify all the be/src/util/hdr-histogram.h (3 lines): - line 159: // TODO: implement - line 164: // TODO: implement - line 326: // TODO: Explain percentile_ticks_per_half_distance. fe/src/main/java/org/apache/impala/catalog/events/MetastoreEvents.java (3 lines): - line 1470: // TODO: Need to check db event failure in future - line 2215: * TODO: IMPALA-12646, to track average process time for drop operations. - line 3122: // TODO: Have an init method to set fields that cannot be initialized in the be/src/util/backend-gflag-util.cc (3 lines): - line 249: // TODO: Tune the individual expression cost from IMPALA-2805. - line 255: // TODO: Benchmark and tune this config with an optimal value. - line 266: // TODO: Benchmark and tune this config with an optimal value. be/src/exec/scanner-context.h (3 lines): - line 81: /// TODO: Some of the synchronization mechanisms such as cancelled() can be removed - line 418: /// TODO: when we remove the multi-threaded scan node, we may be able to just use - line 439: /// TODO: IMPALA-6015: it should be possible to simplify the lifecycle of this pool and fe/src/main/java/org/apache/impala/catalog/Catalog.java (3 lines): - line 92: // TODO: Update this to use a CatalogObjectCache? - line 193: * TODO: Clean up the inconsistent error behavior (throwing vs. returning null). - line 328: * TODO: allow adding a function to a global scope. We probably want this to resolve be/src/scheduling/request-pool-service.cc (3 lines): - line 48: // TODO: Rename / cleanup now that Llama is removed (see IMPALA-4159). - line 56: // TODO: Remove? - line 74: // TODO: Remove? be/src/exprs/scalar-expr-evaluator.h (3 lines): - line 126: /// TODO: IMPALA-4743: Evaluate input arguments in ScalarExpr::Init() and store them - line 202: /// TODO: remove this (IMPALA-4720). - line 278: /// TODO: move this to Expr initialization after IMPALA-4743 is fixed. be/src/exec/text-converter.cc (3 lines): - line 108: // TODO: convert this function to use cross-compilation + constant substitution in whole - line 190: // TODO codegen memory allocation for CHAR - line 355: // TODO: implement codegen for binary (IMPALA-11475) fe/src/main/java/org/apache/impala/catalog/HdfsStorageDescriptor.java (3 lines): - line 78: // TODO: Verify the following Parquet SerDe works with Impala and add - line 200: * TODO: Get rid of this class. - line 237: // TODO: IMPALA-13748, also consider table properties and table level serde properties be/src/exec/hdfs-scanner.h (3 lines): - line 113: /// TODO: Have a pass over all members and move them out of the base class if sensible - line 576: /// TODO: revisit this - line 634: /// TODO: we could do better here if we inlined the tuple and null indicator byte be/src/benchmarks/process-wide-locks-benchmark.cc (3 lines): - line 49: /// TODO: query_driver_map_lock_ (Sharded) - line 76: // TODO: Add a similar funciton for ClientRequestStates. - line 172: // TODO: Benchmark lock of ClientRequestStates too. common/thrift/generate_metrics.py (3 lines): - line 49: # TODO: get default version value from bin/save-version.sh - line 132: # TODO: Stamp out metrics with arguments, e.g. output each rpc call_duration metric. - line 137: # TODO: Stamp out individual metrics for other metric types. be/src/runtime/timestamp-value.h (3 lines): - line 64: /// TODO: Document what situation leads to #2 at the top. Cases #1 and 3 can be created - line 246: /// TODO: Rounding towards nearest microsecond should be replaced with rounding - line 420: /// TODO: This could be also checked in release, but I am a bit afraid that it would be/src/runtime/sorter.h (3 lines): - line 89: /// TODO: Not necessary to actually copy var-len data - instead take ownership of the - line 91: /// TODO: When the first run is constructed, create a sequence of pointers to materialized - line 189: /// TODO: delete pages that are consumed during merge asap. be/src/rpc/authentication.cc (3 lines): - line 803: // TODO: cookies are not added, but are not needed right now - line 842: // TODO: cookies are not added, but are not needed right now - line 1014: // We return some html in case of auth error. TODO: Should handle other fe/src/main/java/org/apache/impala/catalog/HdfsPartition.java (3 lines): - line 97: // TODO: Cache this descriptor in HdfsTable so that identical descriptors are shared - line 99: // TODO: sdInputFormat and sdOutputFormat can be mutated by Impala when the file format - line 1250: * TODO: merge this with HdfsPartition.addToVersionsForInflightEvents() fe/src/main/java/org/apache/impala/authentication/saml/ImpalaSamlClient.java (3 lines): - line 49: * HTTP-Redirect binding. //TODO: Add support for HTTP-Post binding for SAML request. - line 69: //TODO handle the replayCache as described in http://www.pac4j.org/docs/clients/saml.html - line 73: // TODO: validate the URL, e.g. it must use the hs2-http port be/src/util/runtime-profile-counters.h (3 lines): - line 225: /// TODO: As an alternative to this approach we could just have a single class - line 399: /// TODO: IMPALA-9846: rename counter. CounterVector? AggregatedCounter? - line 665: // TODO: IMPALA-4631: Occasionally we see MonotonicStopWatch::Now() return be/src/kudu/rpc/connection.cc (2 lines): - line 436: // TODO: would be better to cancel the transfer while it is still on the queue if we - line 698: // TODO: shutdown? probably, since any future stuff on this socket will be common/protobuf/kudu/util/thread.cc (2 lines): - line 210: // TODO: Add start-time. - line 211: // TODO: Track fragment ID. be/src/testutil/impalad-query-executor.cc (2 lines): - line 81: // TODO: catch exception and return error code - line 164: // TODO: make query profile part of TFetchResultsResult so that we can fe/src/main/java/org/apache/impala/analysis/CreateUdaStmt.java (2 lines): - line 73: // TODO: this is doable in the BE with more symbol parsing. - line 101: // TODO: these are temporarily restrictions since the BE cannot yet be/src/runtime/sorter.cc (2 lines): - line 1366: // TODO: we could keep it in memory in some circumstances as an optimisation, once - line 1567: // TODO: 'deep_copy_input' is set to true, which forces the merger to copy all rows be/src/runtime/io/request-context.cc (2 lines): - line 152: /// TODO: this could be combined with 'num_threads_in_op_' to be a single refcount. - line 205: // TODO: IMPALA-4249: it is safe to touch 'range' until DecrementDiskThread() is be/src/exec/hdfs-scan-node-base.h (2 lines): - line 426: /// TODO: Once the legacy scan node has been removed, several functions can be made - line 867: /// TODO: Remove this function once the TODOs in UnnestNode regarding projection be/src/exec/blocking-join-node.h (2 lines): - line 79: /// TODO: Remove the restriction that the tuples in the join's output row have to - line 162: // TODO: IMPALA-4179: this should always be true once resource transfer has been fixed. be/src/exprs/aggregate-functions-test.cc (2 lines): - line 67: // TODO: Add other datatypes - line 98: // TODO: Add more deterministic test cases be/src/exec/unnest-node.h (2 lines): - line 90: /// TODO: Setting the collection-typed slots to NULL should be replaced by a proper - line 152: /// TODO: replace with stats or histogram counter be/src/kudu/gutil/int128.h (2 lines): - line 32: // TODO: division, etc. - line 89: // TODO: perhaps it would be nice to have int128, a signed 128-bit type? be/src/exec/kudu/kudu-table-sink.cc (2 lines): - line 140: // TODO: Handle DML w/ small or known resource requirements (e.g. VALUES specified or - line 229: // TODO: simplify/remove this logic when Kudu simplifies the API (KUDU-1808). be/src/rpc/rpc-trace.cc (2 lines): - line 233: // TODO: Consider pooling these - line 257: // TODO: bytes is always 0 since TTransport does not track write count. be/src/service/session-expiry-test.cc (2 lines): - line 42: // TODO: When sleep(..) queries can be cancelled, write a test that confirms long-running - line 44: // TODO: Come up with a short-running test that confirms a session will keep itself alive be/src/kudu/util/compression/compression_codec.cc (2 lines): - line 201: * TODO: use a instance-local Arena and pass alloc/free into zlib - line 223: // TODO: use z_stream be/src/rpc/rpc-mgr-test.cc (2 lines): - line 41: // TODO: We're starting a separate RpcMgr here instead of configuring - line 308: // TODO: Inject random cancellation here. be/src/exec/hdfs-scan-node-base.cc (2 lines): - line 282: // TODO: this should be a DCHECK but we sometimes hit it. It's likely IMPALA-1702. - line 345: // IMPALA-11541 TODO: Ozone returns a list of null volume IDs. So we know the be/src/service/internal-server.cc (2 lines): - line 244: // TODO: As of today, the ODBC driver does not support boolean and timestamp data - line 247: // TODO: Handle complex types. be/src/gutil/linux_syscall_support.h (2 lines): - line 3966: * TODO: Test whether ARM needs a restorer - line 4481: // TODO: define this in an arch-independant way instead of inlining the clone common/protobuf/kudu/rpc/rpcz_store.cc (2 lines): - line 237: // TODO: use the actual RPC name instead of the request type name. - line 251: // TODO: consider pushing this onto another thread since it may be slow. be/src/exec/kudu/kudu-scanner.cc (2 lines): - line 395: // TODO: avoid mem copies with a Kudu mem 'release' mechanism, attaching mem to the - line 397: // TODO: consider codegen for this per-timestamp col fixup fe/src/main/java/org/apache/impala/hooks/QueryEventHookManager.java (2 lines): - line 71: // TODO: figure out a way to source these from the defn so - line 167: // TODO (IMPALA-8571): we may want to await termination (up to a timeout) fe/src/main/java/org/apache/impala/analysis/ColumnLineageGraph.java (2 lines): - line 691: * TODO Handle conditional exprs (e.g. CASE, IF). - line 708: * TODO Handle conditional exprs (e.g. CASE, IF). be/src/gutil/int128.h (2 lines): - line 32: // TODO: division, etc. - line 89: // TODO: perhaps it would be nice to have int128, a signed 128-bit type? be/src/runtime/exec-env.h (2 lines): - line 94: /// TODO: Split out common logic into base class and eliminate null pointers. - line 125: /// TODO: Should ExecEnv own the ImpalaServer as well? be/src/runtime/fragment-instance-state.h (2 lines): - line 79: /// TODO: - line 130: /// TODO: this doesn't look like it belongs here be/src/exprs/agg-fn-evaluator.cc (2 lines): - line 50: // TODO: these typedefs exists as wrappers to go from (TupleRow, Tuple) to the - line 322: // TODO: this part is not so good and not scalable. It can be replaced with be/src/runtime/raw-value.inline.h (2 lines): - line 223: // TODO: this is a bit wonky since it's not really a StringValue*. Handle CHAR(n) - line 348: // TODO: this is a bit wonky since it's not really a StringValue*. Handle CHAR(n) be/src/runtime/data-stream-test.cc (2 lines): - line 778: // TODO: also test that all client connections have been returned - line 970: // TODO: more tests: be/src/kudu/util/debug/trace_event_impl.cc (2 lines): - line 402: // TODO: it would be even faster to avoid the memory barrier here entirely, - line 706: // FIXME: base/json/json_writer.cc is using the same code, be/src/kudu/util/inline_slice.h (2 lines): - line 42: // TODO: we could store a prefix of the indirect data in this unused space - line 118: // TODO: if already indirect and the current storage has enough space, just reuse that. be/src/exec/hash-table-test.cc (2 lines): - line 156: // TODO: understand google testing, there must be a more natural way to do this - line 731: // TODO: level 0 uses CRC hash, which only swaps bytes around on empty input. fe/src/main/java/org/apache/impala/analysis/CaseExpr.java (2 lines): - line 180: // TODO: case is special and the signature cannot be represented. - line 261: // TODO: This casting is not always correct and needs to be fixed, see IMPALA-1652. common/protobuf/kudu/util/inline_slice.h (2 lines): - line 42: // TODO: we could store a prefix of the indirect data in this unused space - line 118: // TODO: if already indirect and the current storage has enough space, just reuse that. be/src/testutil/in-process-servers.h (2 lines): - line 38: /// TODO: Static StartCluster method which runs one or more - line 40: /// TODO: Fix occasional abort when object is destroyed. be/src/exprs/math-functions-ir.cc (2 lines): - line 181: // TODO: should we support non-constant seed? - line 238: // TODO: this is probably unreasonably slow common/protobuf/kudu/gutil/linux_syscall_support.h (2 lines): - line 3966: * TODO: Test whether ARM needs a restorer - line 4481: // TODO: define this in an arch-independant way instead of inlining the clone common/thrift/generate_error_codes.py (2 lines): - line 26: # TODO Add support for SQL Error Codes - line 309: # TODO: IMPALA-4697: the merged errors do not show up in the query error log, fe/src/main/java/org/apache/impala/authorization/ranger/RangerCatalogdAuthorizationManager.java (2 lines): - line 117: // TODO: Remove the call to validateRangerAdmin() after the bug is fixed in Ranger. - line 158: // TODO: Remove the call to revokeRole() after the bug of Ranger is fixed. fe/src/main/java/org/apache/impala/planner/ScanNode.java (2 lines): - line 76: // TODO: merge this with inputCardinality_. - line 359: // TODO: merge this with getInputCardinality(). fe/src/main/java/org/apache/impala/util/AcidUtils.java (2 lines): - line 479: * @throws CatalogException on ACID error. TODO: Remove throws clause once IMPALA-9042 - line 728: * //TODO source this directly from hive-exec so that future changes to this are fe/src/main/java/org/apache/impala/analysis/QueryStmt.java (2 lines): - line 401: // TODO: Seems an odd state of affairs. Consider revisiting by putting - line 444: * TODO: The name of this function has become outdated due to analytics be/src/runtime/krpc-data-stream-mgr.h (2 lines): - line 159: /// TODO: Fix IMPALA-3990: use non-timed based approach for removing the closed stream - line 269: /// TODO: enforce per-sender quotas (something like 200% of buffer_size/#senders), be/src/service/child-query.h (2 lines): - line 46: /// TODO: Compute stats is the only stmt that requires child queries. Once the - line 112: /// TODO: Consider moving this function into a more appropriate place. be/src/runtime/io/data-cache.cc (2 lines): - line 1208: // TODO: Switch to using CRC32 once we fix the TODO in hash-util.h - line 1466: // TODO: Should we use buffer pool instead of piecemeal memory allocate? fe/src/main/java/org/apache/impala/planner/IcebergScanPlanner.java (2 lines): - line 101: // TODO: This class is available in the Iceberg library from release 1.4.0. We could - line 537: // TODO IMPALA-12608: As an optimization we can populate the conjuncts below that be/src/exec/delimited-text-parser-test.cc (2 lines): - line 96: // // TODO: update test when it is fixed - line 218: // TODO: expand test for other delimited text parser functions/cases. be/src/service/control-service.cc (2 lines): - line 132: // StartQuery(). TODO: can we avoid this extra copy? - line 196: // TODO: Fix IMPALA-7232 to indicate incomplete profile in this case. be/src/transport/THttpServer.cpp (2 lines): - line 590: // TODO: response type is not added - line 591: // TODO: cookies are not added, but are not needed right now common/protobuf/control_service.proto (2 lines): - line 45: // TODO: this should include the table stats that we update the metastore with. - line 63: // TODO: this could be merged with final_path by storing only the suffix common/thrift/Types.thrift (2 lines): - line 34: // TODO: Consider moving unrelated enums to better locations. - line 76: // TODO: Model column stats for struct fields. java/datagenerator/src/main/java/org/apache/impala/datagenerator/RandomNestedDataGenerator.java (2 lines): - line 249: // TODO: Decimal - line 250: // TODO: Timestamp be/src/catalog/catalog-server.cc (2 lines): - line 1220: // TODO: switch to use cpp implementation of SimpleJsonProtocol after THRIFT-2476 - line 1371: // TODO: Enable json view of table metrics be/src/runtime/io/scan-range.cc (2 lines): - line 430: // TODO: IMPALA-4249 - this Close() call makes it unsafe to reuse a cancelled scan - line 646: // TODO: If HDFS ever supports partially cached blocks, we'll have to distinguish fe/src/main/java/org/apache/impala/hive/executor/HiveUdfExecutorLegacy.java (2 lines): - line 33: // TODO: should we cache loaded jars and classes? - line 36: // TODO UDF is deprecated in Hive and newer implementation of built-in functions using java/calcite-planner/src/main/java/org/apache/impala/calcite/operators/ImpalaOperatorTable.java (2 lines): - line 58: * TODO: IMPALA-13095: Handle UDFs - line 136: // Check Impala Builtins for existence: TODO: IMPALA-13095: handle UDFs common/protobuf/admission_control_service.proto (2 lines): - line 302: /// submitted previously, returns OK without doing anything. TODO: there are some - line 320: /// this will be called a max of log(# of backends) times per query. TODO: we can save be/src/exec/partitioned-hash-join-node-ir.cc (2 lines): - line 35: // TODO: explicitly set the calling convention? - line 36: // TODO: investigate using fastcc for all codegen internal functions? be/src/exec/parquet/parquet-column-stats.h (2 lines): - line 64: /// TODO: Populate null_count and distinct_count. - line 85: //TODO: Should be aligned with PARQUET-1222, once resolved be/src/scheduling/admission-controller.cc (2 lines): - line 674: // TODO: do we need host_id_ to come from host_addr or can it just take the same id - line 1979: // TODO: handle removing queued queries when their coordinator goes down. fe/src/main/java/org/apache/impala/catalog/HdfsFileFormat.java (2 lines): - line 40: * TODO: Kudu doesn't belong in this list. Either rename this enum or create a separate - line 100: // TODO: Remove this once we support complex types for all file formats. be/src/runtime/string-value.h (2 lines): - line 39: /// TODO: rename this to be less confusing with impala_udf::StringVal. - line 157: /// TODO: len should never be extended. This is not a trivial fix because UrlParser be/src/util/bit-util.cc (2 lines): - line 33: //TODO: improve the performance of following code further using BSWAP intrinsic - line 225: // TODO: improve the performance of following code further using pshufb intrinsic be/src/runtime/dml-exec-state.cc (2 lines): - line 263: // TODO: There's a potential race here between checking for the directory - line 268: // TODO: Try to mimic inheriting permissions for S3. be/src/common/status.h (2 lines): - line 161: /// TODO: deprecate - line 404: /// TODO: when we upgrade gcc from 4.9.2, we may be able to apply this to the Status be/src/exec/topn-node-ir.cc (2 lines): - line 29: // TODO: after inlining the comparator calls with codegen - IMPALA-4065 - we could - line 134: // TODO: IMPALA-10228: the comparator won't get inlined by codegen here. be/src/service/fe-support.cc (2 lines): - line 357: // TODO: we can demangle the user symbol here and validate it against - line 544: // TODO: remove the wrapping; DoRPC's wrapping is sufficient. fe/src/main/java/org/apache/impala/analysis/InPredicate.java (2 lines): - line 52: // TODO we do not support codegen for CHAR and the In predicate must be codegened - line 179: // TODO: Fix selectivity_ for nested predicate be/src/kudu/gutil/linux_syscall_support.h (2 lines): - line 3966: * TODO: Test whether ARM needs a restorer - line 4481: // TODO: define this in an arch-independant way instead of inlining the clone be/src/runtime/query-state.h (2 lines): - line 120: /// TODO: - line 412: /// Set in Init(). TODO: find a way not to have to copy this be/src/runtime/tuple-row.h (2 lines): - line 66: // TODO: this is wasteful. If we have 'reuse_tuple_mem', we should be able to - line 73: /// TODO: make a macro for doing this be/src/util/codec.h (2 lines): - line 39: /// TODO: make this pure virtual (no members) so that external codecs (e.g. Lzo) - line 41: /// TODO: this interface is clunky. There should be one class that implements both the fe/src/main/java/org/apache/impala/analysis/AnalysisContext.java (2 lines): - line 483: // TODO: Clean up the creation/setting of the analysis result. - line 732: // TODO: IMPALA-13840: Code would be cleaner if we had an enum for StatementType be/src/udf/udf-test.cc (2 lines): - line 162: // TODO: NYI - line 262: // TODO: replace these manual comparisons with a DecimalVal equality function be/src/util/mem-info.h (2 lines): - line 61: /// TODO: Allow retrieving of cgroup memory limits, - line 63: /// TODO: Combine mem-info, cpu-info and disk-info into hardware-info? be/src/kudu/util/thread.cc (2 lines): - line 210: // TODO: Add start-time. - line 211: // TODO: Track fragment ID. fe/src/compat-hive-3/java/org/apache/impala/compat/MetastoreShim.java (2 lines): - line 330: // TODO: will remove this capability when Hive can provide - line 1152: // TODO: IMPALA-11815: hive metastore doesn't privide api to judge whether the be/src/experiments/data-provider.h (2 lines): - line 43: /// TODO: provide a way to have better control over the pool strings are allocated to - line 44: /// TODO: provide a way to control data skew. This is pretty easy with the boost rand be/src/exprs/decimal-operators-ir.cc (2 lines): - line 234: // TODO: > or greater than or equal. i.e. should .500 round up? - line 301: /* TODO: IMPALA-4929: remove DECIMAL V1 code */ \ be/src/util/bit-util.h (2 lines): - line 42: /// TODO: is this in boost or something else like that? - line 175: /// TODO: we don't use this in any perf sensitive code paths currently. There fe/src/main/java/org/apache/impala/analysis/SetOperationStmt.java (2 lines): - line 41: * TODO: This class contains many methods and members that should be pushed down to - line 357: // TODO (IMPALA-11018): Currently only UNION ALL is supported for collection types be/src/exprs/scalar-fn-call.cc (2 lines): - line 170: // TODO: Move this to Expr initialization when IMPALA-4743 is fixed. - line 205: // TODO: once we can annotate UDFs as non-deterministic (IMPALA-4606), we should be/src/runtime/raw-value-ir.cc (2 lines): - line 65: // TODO: can this be faster? (just returning the difference has underflow problems) - line 73: // TODO: can this be faster? fe/src/main/java/org/apache/impala/planner/UnionNode.java (2 lines): - line 228: // TODO: Remove this as part of IMPALA-4179. - line 283: // TODO IMPALA-12160: Add tests for collection-in-struct. fe/src/main/java/org/apache/impala/analysis/TableDef.java (2 lines): - line 667: // TODO: Check column types of parent table and child tables match. Currently HMS - line 720: * TODO: Collisions possible? HMS doesn't have an API to query existing constraint be/src/exec/table-sink-base.cc (2 lines): - line 180: //TODO: implement LocationProviders. - line 334: // TODO: IMPALA-9437: Ozone does not support stat'ing a file until after it's closed, be/src/runtime/lib-cache.cc (2 lines): - line 81: // TODO: it would be nice to be able to do this for .so's as well but it's - line 234: // TODO: figure out how to inspect contents of jars common/protobuf/kudu/gutil/int128.h (2 lines): - line 32: // TODO: division, etc. - line 89: // TODO: perhaps it would be nice to have int128, a signed 128-bit type? be/src/runtime/exec-env.cc (2 lines): - line 320: // TODO: Consider removing AdmissionController from executor only impalads. - line 742: // TODO: get BackendId of admissiond in global admission control mode. be/src/scheduling/admission-controller.h (2 lines): - line 615: /// TODO: Avoid duplication: replace the int64_t fields on PoolStats with these. - line 623: /// TODO: As above, consolidate the metrics and local_stats_. fe/src/main/java/org/apache/impala/planner/UnnestNode.java (2 lines): - line 138: // TODO: Continue recursively (for collections and probably also - line 166: // TODO: add an estimate fe/src/main/java/org/apache/impala/catalog/BuiltinsDb.java (2 lines): - line 977: // An empty symbol indicates a TODO for the BE to implement the function. - line 978: // TODO: We could also generate this in python but I'm not sure that is easier. be/src/runtime/row-batch.cc (2 lines): - line 59: // TODO: switch to Init() pattern so we can check memory limit and return Status. - line 445: // TODO: consider computing size of batches as they are built up fe/src/main/java/org/apache/impala/analysis/ToSqlUtils.java (2 lines): - line 304: // TODO: Pass the correct compression, if applicable. - line 341: // TODO: Pass the correct compression, if applicable. fe/src/main/java/org/apache/impala/catalog/HdfsPartitionLocationCompressor.java (2 lines): - line 34: * TODO: Generalize this to compress other sets of Strings that are likely to share common - line 90: // TODO: Since each partition stores the literal values for the partitioning columns, be/src/benchmarks/int-hash-benchmark.cc (2 lines): - line 105: // TODO: Add the Intel intrinsics used in this function and the other functions in this - line 298: // TODO: We could also test the costs of running on non-contiguous uint32_t's. For java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaJoinRel.java (2 lines): - line 105: // IMPALA-13176: TODO: Impala allows forcing hints for the distribution mode - line 317: * However, this has not been coded in Impala yet, making this a TODO: common/thrift/RuntimeProfile.thrift (2 lines): - line 284: // TODO: IMPALA-9382 - update when non-experimental - line 295: // TODO: IMPALA-9846: document which versions of Impala generate which version. be/src/scheduling/remote-admission-control-client.cc (2 lines): - line 217: // TODO: we need to be sure that the resources do in fact get cleaned up in situation - line 250: // TODO: we need to be sure that the resources do in fact get cleaned up in situation be/src/kudu/util/hdr_histogram.cc (2 lines): - line 224: // portion, which gives us a direct index into the sub-bucket. TODO: Right?? - line 530: // TODO: Can this expression be simplified? be/src/exec/hbase/hbase-table-scanner.h (2 lines): - line 72: /// TODO: Related to filtering, there is a special filter that allows only selecting the - line 76: /// TODO: Enable time travel. common/protobuf/kudu/rpc/connection.cc (2 lines): - line 436: // TODO: would be better to cancel the transfer while it is still on the queue if we - line 698: // TODO: shutdown? probably, since any future stuff on this socket will be java/calcite-planner/src/main/java/org/apache/impala/calcite/schema/CalciteTable.java (2 lines): - line 141: * TODO: Currently all partitions are returned since filters aren't yet supported. - line 146: // TODO: pass in the conjuncts needed. An empty conjunct will return all partitions. be/src/util/hdr-histogram.cc (2 lines): - line 212: // portion, which gives us a direct index into the sub-bucket. TODO: Right?? - line 489: // TODO: Can this expression be simplified? be/src/kudu/util/env_posix.cc (2 lines): - line 1055: // TODO (perf) investigate zeroing a pre-allocated allocated area in - line 1677: // TODO: lint: Consider using readdir_r(...) instead of readdir(...) for improved thread safety. be/src/exec/hdfs-scanner.cc (2 lines): - line 484: // TODO: CodegenWriteSlot() currently does not handle text that requres unescaping. - line 806: // TODO: Once the writers are in, add tests with very large compressed files (4GB) be/src/util/hash-util.h (2 lines): - line 37: /// TODO: crc32 hashes with different seeds do not result in different hash functions. - line 39: /// TODO: update this to also use SSE4_crc32_u64 and SSE4_crc32_u16 where appropriate. common/protobuf/kudu/util/debug/trace_event_impl.cc (2 lines): - line 402: // TODO: it would be even faster to avoid the memory barrier here entirely, - line 706: // FIXME: base/json/json_writer.cc is using the same code, be/src/runtime/io/request-context.h (2 lines): - line 384: /// TODO: we can only support up to 64 disks with this bitmap but it lets us use a - line 472: /// TODO: think about this some more. fe/src/main/java/org/apache/impala/analysis/AnalyticWindow.java (2 lines): - line 158: // TODO: range windows need range_offset_predicate - line 378: // TODO: Remove when RANGE windows with offset boundaries are supported. be/src/experiments/string-search-sse.h (2 lines): - line 31: /// TODO: this is still 25% slower than just calling strstr. Look into why - line 32: /// TODO: this cannot be used with data containing nulls (I think) be/src/kudu/rpc/rpcz_store.cc (2 lines): - line 237: // TODO: use the actual RPC name instead of the request type name. - line 251: // TODO: consider pushing this onto another thread since it may be slow. be/src/exprs/timestamp-functions.h (2 lines): - line 48: /// TODO: Reconsider whether this class needs to exist. - line 283: /// TODO: eventually return format converted from Java to Boost. be/src/exec/json/hdfs-json-scanner.cc (2 lines): - line 179: // TODO: find a better way. - line 363: // TODO: Support Invoke CodeGend WriteSlot fe/src/main/java/org/apache/impala/analysis/InlineViewRef.java (2 lines): - line 270: // TODO: relax this a bit by allowing propagation out of the inline view (but - line 374: // TODO: Revisit for IMPALA-12160. be/src/runtime/io/disk-io-mgr.h (2 lines): - line 214: /// TODO: We should implement more sophisticated resource management. Currently readers - line 217: /// TODO: IoMgr should be able to request additional scan ranges from the coordinator be/src/util/decompress.cc (2 lines): - line 190: // TODO: IMPALA-3073 Verify if compressed block could be multistream. If yes, we need - line 297: // TODO: IMPALA-3073 Verify if compressed block could be multistream. If yes, we need common/protobuf/kudu/util/compression/compression_codec.cc (2 lines): - line 201: * TODO: use a instance-local Arena and pass alloc/free into zlib - line 223: // TODO: use z_stream be/src/runtime/fragment-instance-state.cc (2 lines): - line 501: // TODO: we might be able to remove this with mt_dop, since we only need to worry - line 531: // TODO: IMPALA-4631: Occasionally we see other_time = total_time + ε where ε is 1, common/protobuf/kudu/util/env_posix.cc (2 lines): - line 1055: // TODO (perf) investigate zeroing a pre-allocated allocated area in - line 1677: // TODO: lint: Consider using readdir_r(...) instead of readdir(...) for improved thread safety. fe/src/main/java/org/apache/impala/analysis/CreateDataSrcStmt.java (2 lines): - line 76: // TODO: Check class exists and implements API version - line 77: // TODO: authorization check fe/src/main/java/org/apache/impala/authorization/TableMask.java (2 lines): - line 96: // TODO: RANGER-3525: Clarify handling of column masks on nested types - line 105: // TODO (IMPALA-11019): is it ok to throw this exception during table loading, be/src/exec/json/json-parser.cc (2 lines): - line 198: // TODO: support complex type. - line 222: // TODO: support complex type. fe/src/main/java/org/apache/impala/util/ExprUtil.java (2 lines): - line 148: // TODO: Implement the cost for conjunts once the implemetation for - line 169: // TODO Implement a function that can take into consideration of data types, be/src/util/pprof-path-handlers.cc (2 lines): - line 127: // TODO: This part is not implemented: - line 138: // TODO: Implement symbol resolution. Without this, the binary needs to be passed fe/src/main/java/org/apache/impala/analysis/LiteralExpr.java (2 lines): - line 99: // TODO: we support TIMESTAMP but no way to specify it in SQL. - line 204: * TODO: Support non-scalar types. be/src/exec/parquet/parquet-collection-column-reader.cc (2 lines): - line 29: // TODO: verify somewhere that all column readers are at end - line 139: // TODO: consider capping def_level_ at max_def_level() fe/src/main/java/org/apache/impala/util/TopNCache.java (2 lines): - line 43: * TODO: Replace these two policies with an LFU cache with dynamic aging. - line 54: // TODO: Convert to enum? be/src/runtime/smallable-string.h (2 lines): - line 37: /// TODO: On big endian architectures this will be the least significant bit (LSB) of - line 207: /// TODO: change ptr to an offset relative to a contiguous memory block, be/src/runtime/io/request-ranges.h (2 lines): - line 309: /// TODO: IMPALA-4249: clarify if a ScanRange can be reused after Reset(). Currently - line 537: /// TODO: we can do more with this be/src/exprs/aggregate-functions.h (2 lines): - line 139: /// TODO: Change this to use a fixed-sized BufferVal as intermediate type. - line 447: /// TODO: Implement DENSE_RANK with a single BigIntVal. Requires src can be modified, be/src/runtime/string-search.h (2 lines): - line 30: /// TODO: This can be sped up with SIDD_CMP_EQUAL_ORDERED or at the very least rewritten - line 105: // TODO: the original code seems to have an off by one error. It is possible fe/src/main/java/org/apache/impala/analysis/AnalyticExpr.java (2 lines): - line 485: // TODO: remove this check when the backend can handle non-constants - line 495: // TODO: IMPALA-2171:Remove this when ntile() can handle a non-constant argument. be/src/runtime/types.h (2 lines): - line 35: // TODO for 2.3: move into ColumnType, rename to Type, and remove TYPE_ prefix - line 69: // TODO for 2.3: rename to TypeDescriptor be/src/exec/partitioned-hash-join-node.h (2 lines): - line 592: /// TODO: IMPALA-9411: this could be removed if we attached the buffers. - line 656: /// TODO: ideally we would store the bits inside the tuple data of 'null_probe_rows_' be/src/exec/grouping-aggregator-partition.cc (2 lines): - line 88: // TODO: we could switch to 64 bit hashes and then we don't need a max size. - line 113: // TODO: if it happens to not be a string, we could serialize in place. This is be/src/util/disk-info.h (2 lines): - line 33: /// TODO: datanode information not implemented - line 62: // TODO: temporarily removed DCHECK due to an issue tracked in IMPALA-5574, put it common/protobuf/kudu/util/hdr_histogram.cc (2 lines): - line 224: // portion, which gives us a direct index into the sub-bucket. TODO: Right?? - line 530: // TODO: Can this expression be simplified? be/src/common/logging.cc (2 lines): - line 181: // TODO: how to handle these errors? Maybe abort the process? - line 393: // TODO: This is likely pretty expensive with the string copies. We don't be/src/runtime/io/disk-io-mgr-test.cc (2 lines): - line 251: // TODO: Disentagle the offsets/expected results properly so this doesn't need to - line 1376: // TODO: the stress app should be expanded to include sync reads and adding scan fe/src/main/java/org/apache/impala/authorization/ranger/RangerAuthorizationChecker.java (2 lines): - line 364: * TODO: Revisit RangerBufferAuditHandler and compare it to - line 367: * TODO: Do we really need this for row-filtering? be/src/service/impala-server.h (2 lines): - line 206: /// TODO: The same doesn't apply to the execution state of an individual plan - line 287: /// TODO: Migrate existing extra ImpalaServer RPCs to ImpalaHiveServer2Service. fe/src/main/java/org/apache/impala/catalog/Function.java (2 lines): - line 97: // TODO: we don't currently support varargs with no fixed types. i.e. fn(...) - line 375: // TODO: Comment field is missing? be/src/statestore/statestore-subscriber.cc (2 lines): - line 910: // TODO: need to revisit this when supporting statestored HA. - line 999: // TODO: Consider returning an error in this case so that the statestore will eventually fe/src/main/java/org/apache/impala/planner/HdfsTableSink.java (2 lines): - line 177: // TODO: Improve estimates for other formats - line 209: // TODO: Estimate the memory requirements more accurately by partition type. be/src/exec/text/hdfs-text-scanner.h (2 lines): - line 165: /// TODO: IMPALA-6146: this is a workaround that could be removed if FillByteBuffer() - line 181: /// TODO: IMPALA-6146: rethink this interface - having subclasses modify member be/src/runtime/free-pool.h (2 lines): - line 46: /// TODO: consider integrating this with MemPool. - line 47: /// TODO: consider changing to something more granular than doubling. fe/src/main/java/org/apache/impala/catalog/metastore/CatalogMetastoreServiceHandler.java (2 lines): - line 249: // TODO: The complete logic can be moved to - line 299: // TODO: We should add TException to method signature in hive and we can remove be/src/exec/parquet/hdfs-parquet-scanner.h (2 lines): - line 193: /// TODO: fix this (IMPALA-2272) - line 319: /// TODO: Populating CollectionValues in a column-wise fashion seems different enough common/thrift/Partitions.thrift (1 line): - line 39: // TODO: this is a special case now because Kudu supports multilevel partition be/src/rpc/auth-provider.h (1 line): - line 55: /// TODO: Return the correct clients for HTTP base transport. At this point, no clients be/src/util/internal-queue-test.cc (1 line): - line 302: // TODO: investigate why the multithreaded ones fail in boost:thread_local_data. common/protobuf/kudu/util/pb_util.cc (1 line): - line 763: // TODO: Flush just the dirty bytes. be/src/exprs/decimal-operators.h (1 line): - line 132: /// TODO: can this code be reorganized to combine the two version of RoundDecimal()? be/src/kudu/util/kernel_stack_watchdog.h (1 line): - line 251: // TODO: technically this barrier is stronger than we need: we are the only writer fe/src/main/java/org/apache/impala/catalog/local/CatalogdMetaProvider.java (1 line): - line 836: // TODO: consider removing this after IMPALA-9670. be/src/util/pretty-printer.h (1 line): - line 156: /// TODO: There's no good is_string equivalent, so there's a needless copy for strings fe/src/main/java/org/apache/impala/analysis/AlterTableDropColStmt.java (1 line): - line 61: // TODO: Support column-level DDL on HBase tables. Requires updating the column be/src/kudu/util/group_varint-inl.h (1 line): - line 155: // TODO: remove this and just automatically pick the right implementation at runtime. be/src/exprs/tuple-is-null-predicate.cc (1 line): - line 58: // TODO: remove this code and replace with DCHECK. fe/src/main/java/org/apache/impala/analysis/AlterTableUnSetTblProperties.java (1 line): - line 125: // TODO IMPALA-6375: Allow setting kudu.table_name for synchronized Kudu tables fe/src/main/java/org/apache/impala/planner/ResourceProfile.java (1 line): - line 140: // TODO: output maxReservation_ here if the planner becomes more sophisticated in be/src/common/hdfs.h (1 line): - line 25: /// TODO: is this the cleanest way? be/src/exec/grouping-aggregator-ir.cc (1 line): - line 39: // TODO: Once we have a histogram with the number of rows per partition, we will have common/protobuf/kudu/gutil/sysinfo.cc (1 line): - line 413: cpuinfo_cycles_per_second = EstimateCyclesPerSecond(500); // TODO <500? be/src/exec/parquet/parquet-bool-decoder.h (1 line): - line 44: ///TODO: add e2e tests when page filtering is implemented (IMPALA-5843). fe/src/main/java/org/apache/impala/catalog/ImpaladCatalog.java (1 line): - line 533: // TODO: remove this after IMPALA-9937. It's only illegal in statestore updates, fe/src/main/java/org/apache/impala/analysis/StringLiteral.java (1 line): - line 43: // TODO: Add enum to distinguish the sources, e.g. double/single quoted SQL, HMS view, be/src/scheduling/hash-ring.h (1 line): - line 48: /// TODO: This can be modified to use any type for the node (rather than IpAddr) be/src/kudu/util/subprocess.cc (1 line): - line 395: // TODO: prctl(PR_SET_PDEATHSIG) is Linux-specific, look into portable ways fe/src/main/java/org/apache/impala/analysis/CreateTableAsSelectStmt.java (1 line): - line 138: // TODO: Add support for CTAS on external Kudu tables (see IMPALA-4318) be/src/codegen/mcjit-mem-mgr.h (1 line): - line 33: /// TODO: get rid of this by purging the cross-compiled IR of references to __dso_handle, be/src/exec/parquet/parquet-delta-decoder.cc (1 line): - line 269: /// TODO: We only need the sum of the deltas, not the intermediate values, so we could fe/src/main/java/org/apache/impala/analysis/GroupByClause.java (1 line): - line 151: // TODO: it would probably be more efficient to omit these slots and handle it be/src/common/init.cc (1 line): - line 76: // TODO: rename this to be more generic when we have a good CM release to do so. be/src/runtime/krpc-data-stream-mgr.cc (1 line): - line 55: /// TODO: We don't need millisecond precision here. be/src/runtime/query-exec-mgr.cc (1 line): - line 50: // TODO: this logging should go into a per query log. be/src/common/daemon-env.h (1 line): - line 36: /// Currently used by the catalogd and statestored. TODO: apply this to impalads. fe/src/main/java/org/apache/impala/analysis/AlterTableSetStmt.java (1 line): - line 43: // TODO: Support ALTER TABLE SET on HBase tables. Requires validating changes be/src/runtime/outbound-row-batch.inline.h (1 line): - line 52: // TODO: Based on experience the below logic doubles the buffer size instead of common/protobuf/kudu/util/env.cc (1 line): - line 53: // TODO: move these utils into env_util be/src/kudu/rpc/rpc-test.cc (1 line): - line 1226: // TODO: Implement an incoming queue latency test. be/src/runtime/sorter-internal.h (1 line): - line 401: /// TODO: in case of in-memory runs, this could be deleted earlier to free up memory. be/src/kudu/util/thread.h (1 line): - line 52: // TODO: would be nice to offer a way to use ptrace() or signals to be/src/runtime/io/hdfs-file-reader.h (1 line): - line 109: /// TODO: we can do more with this fe/src/main/java/org/apache/impala/catalog/CatalogObjectCache.java (1 line): - line 57: // TODO: For simplicity, consider using a (non-concurrent) HashMap and marking be/src/runtime/bufferpool/system-allocator.cc (1 line): - line 29: // TODO: IMPALA-5073: this should eventually become the default once we are confident be/src/exec/partitioned-hash-join-builder.h (1 line): - line 363: /// TODO: we can revisit and try harder to explicitly detect skew. common/protobuf/kudu/rpc/outbound_call.cc (1 line): - line 332: // TODO: here we're deserializing the call response within the reactor thread, be/src/util/thread.h (1 line): - line 49: /// TODO: Consider allowing fragment IDs as category parameters. fe/src/main/java/org/apache/impala/catalog/CatalogdTableInvalidator.java (1 line): - line 208: // TODO: use quick select be/src/runtime/mem-tracker.h (1 line): - line 333: /// TODO: once all memory is accounted in ReservationTracker hierarchy, move be/src/util/jwt-util.cc (1 line): - line 666: // TODO support CurlAuthType by calling kudu::EasyCurl::set_auth(). be/src/util/fixed-size-hash-table.h (1 line): - line 41: /// TODO: could generalize to support specifying null value as template arg. fe/src/main/java/org/apache/impala/analysis/AlterTableSetTblProperties.java (1 line): - line 141: // TODO IMPALA-6375: Allow setting kudu.table_name for synchronized Kudu tables be/src/kudu/util/pb_util.cc (1 line): - line 763: // TODO: Flush just the dirty bytes. be/src/exec/scanner-context.cc (1 line): - line 332: // TODO: consider adding support to skip ahead in a ScanRange so we can avoid doing be/src/codegen/codegen-anyval.cc (1 line): - line 626: // TODO: if the original value was unlowered, this generates roundabout code that common/protobuf/kudu/rpc/service_if.cc (1 line): - line 43: // TODO remove this once we have fully cluster-tested this. be/src/exec/kudu/kudu-util-ir.cc (1 line): - line 54: // TODO: codegen this to eliminate branching on type. fe/src/main/java/org/apache/impala/common/TransactionKeepalive.java (1 line): - line 145: * TODO: we can be more clever than that and should also take into consideration be/src/kudu/util/os-util.h (1 line): - line 35: // TODO: Get stats for parent process. be/src/util/internal-queue.h (1 line): - line 45: /// TODO: this is an ideal candidate to be made lock free. be/src/scheduling/admission-control-service.h (1 line): - line 146: /// TODO: Leverage IMPALA-9155 to add coord_id the first time a coord sends a heartbeat be/src/util/sse-util.h (1 line): - line 302: // TODO: Untangle this file and fold back the two definitions. fe/src/main/java/org/apache/impala/planner/SpillableOperator.java (1 line): - line 24: * TODO: It is probably better to merge this functionality into PlanNode itself, common/protobuf/kudu/rpc/rpc-test.cc (1 line): - line 1226: // TODO: Implement an incoming queue latency test. fe/src/main/java/org/apache/impala/analysis/CreateTableStmt.java (1 line): - line 409: // TODO: Find out what is creating a directory in HDFS and stop doing that. Kudu java/calcite-planner/src/main/java/org/apache/impala/calcite/service/CalcitePhysPlanCreator.java (1 line): - line 53: // TODO: IMPALA-13011: Awkward call for authorization here. Authorization common/thrift/Exprs.thrift (1 line): - line 141: // TODO: Include the partition cols in the KuduTableDesciptor and remove this. fe/src/main/java/org/apache/impala/analysis/IsNotEmptyPredicate.java (1 line): - line 29: * TODO: Pass this Predicate as a TExprNodeType.FUNCTION_CALL fe/src/main/java/org/apache/impala/analysis/RangePartition.java (1 line): - line 233: // TODO: Remove when Impala supports a 64-bit TIMESTAMP type. fe/src/main/java/org/apache/impala/analysis/Subquery.java (1 line): - line 156: * TODO: Switch to a less restrictive implementation. common/protobuf/kudu/util/subprocess.cc (1 line): - line 395: // TODO: prctl(PR_SET_PDEATHSIG) is Linux-specific, look into portable ways be/src/runtime/sorted-run-merger.h (1 line): - line 51: /// TODO: it would be nice to fix this to avoid unnecessary copies. common/protobuf/kudu/util/kernel_stack_watchdog.h (1 line): - line 251: // TODO: technically this barrier is stronger than we need: we are the only writer be/src/exec/sequence/hdfs-sequence-scanner.h (1 line): - line 25: /// TODO: Make the various sequence file formats behave more similarly. They should fe/src/main/java/org/apache/impala/common/TreeNode.java (1 line): - line 120: // TODO: the semantics of this function are very strange. contains() be/src/util/benchmark.cc (1 line): - line 231: // TODO: maybe add other things like amount of RAM, etc fe/src/main/java/org/apache/impala/analysis/ParseNode.java (1 line): - line 47: * TODO use an interface default method to implement this when we fully move to Java8. common/protobuf/kudu/rpc/service_pool.cc (1 line): - line 108: // TODO: Use a proper thread pool implementation. fe/src/main/java/org/apache/impala/planner/BaseProcessingCost.java (1 line): - line 34: // TODO: materializationCost accommodates ProcessingCost where row width should fe/src/main/java/org/apache/impala/authorization/ranger/RangerBufferAuditHandler.java (1 line): - line 139: // TODO: Whether we should use lowercase or uppercase accessType? fe/src/main/java/org/apache/impala/rewrite/FoldConstantsRule.java (1 line): - line 30: * TODO: Expressions fed into this rule are currently not required to be analyzed fe/src/main/java/org/apache/impala/catalog/TableLoadingMgr.java (1 line): - line 315: // TODO: Instead of calling "getOrLoad" here we could call "loadAsync". We would be/src/benchmarks/string-benchmark.cc (1 line): - line 66: // TODO: we could try to adapt this to support longer lengths if STORAGE_SIZE is fe/src/main/java/org/apache/impala/analysis/IcebergDeleteImpl.java (1 line): - line 49: // TODO (IMPALA-12136): rewrite DELETE FROM t; statements to TRUNCATE TABLE t; be/src/runtime/mem-tracker.cc (1 line): - line 251: // TODO: Consider a total amount of bytes freed counter be/src/util/streaming-sampler.h (1 line): - line 65: /// TODO: we can make this more complex by taking a weighted average of samples fe/src/main/java/org/apache/impala/analysis/LoadDataStmt.java (1 line): - line 186: // TODO: Disable permission checking for S3A as well (HADOOP-13892) common/protobuf/kudu/util/random.h (1 line): - line 50: // FIXME: This currently only generates 31 bits of randomness. be/src/util/promise-test.cc (1 line): - line 86: // TODO: This test does not log into the logs/be_tests directory, but using the be/src/kudu/rpc/service_if.cc (1 line): - line 43: // TODO remove this once we have fully cluster-tested this. fe/src/main/java/org/apache/impala/util/GlogAppender.java (1 line): - line 63: // TODO: Level does not work well in a HashMap or switch statement due to some fe/src/main/java/org/apache/impala/catalog/DiskIdMapper.java (1 line): - line 59: * TODO: It is quite possible that there will be lock contention in this method during fe/src/main/java/org/apache/impala/rewrite/ExtractCommonConjunctRule.java (1 line): - line 45: // TODO: Implement Expr.hashCode() and move to a hash-based solution for the core be/src/exprs/aggregate-functions-ir.cc (1 line): - line 1656: // TODO: Expose as constant argument parameters to the UDA. be/src/service/frontend.cc (1 line): - line 332: // TODO: check OS setting shell/cookie_util.py (1 line): - line 49: # TODO: implement support for 'expires' cookie attribute as well. be/src/runtime/buffered-tuple-stream-test.cc (1 line): - line 374: // TODO: test that AddRow succeeds after freeing memory. be/src/runtime/multi-precision.h (1 line): - line 67: /// TODO: look into the perf of this. I think the boost library is very slow with bitwise be/src/kudu/rpc/outbound_call.cc (1 line): - line 332: // TODO: here we're deserializing the call response within the reactor thread, common/protobuf/kudu/util/group_varint-inl.h (1 line): - line 155: // TODO: remove this and just automatically pick the right implementation at runtime. be/src/runtime/tuple.h (1 line): - line 85: /// TODO: Our projection of collection-typed slots breaks/augments the conventional fe/src/main/java/org/apache/impala/analysis/ParquetSchemaExtractor.java (1 line): - line 305: // TODO for 2.3: If a field is not annotated with LIST, it can still be sometimes be/src/kudu/util/atomic-test.cc (1 line): - line 33: // TODO Add some multi-threaded tests; currently AtomicInt is just a fe/src/main/java/org/apache/impala/planner/IcebergScanNode.java (1 line): - line 267: //TODO IMPALA-11577: optimize file format counting java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaAggRel.java (1 line): - line 131: // TODO: IMPALA-12959 need to code Parquet CountStar Optimization fe/src/main/java/org/apache/impala/planner/CostingSegment.java (1 line): - line 207: // TODO: The ratio based adjustment can be further improved by considering the plan be/src/runtime/io/handle-cache.h (1 line): - line 107: /// TODO: The cache should also evict file handles more aggressively if the file handle's be/src/common/global-flags.cc (1 line): - line 270: // TODO: this flag and others, since it requires multiple daemons to be set the be/src/service/frontend.h (1 line): - line 35: /// TODO: Consider changing all methods to accept and return only Thrift structures so that fe/src/main/java/org/apache/impala/catalog/FileMetadataLoader.java (1 line): - line 171: * @throws CatalogException on ACID errors. TODO: remove this once IMPALA-9042 is be/src/exec/kudu/kudu-util.cc (1 line): - line 47: // TODO: choose the default empirically fe/src/main/java/org/apache/impala/catalog/StructField.java (1 line): - line 29: * TODO: Support comments for struct fields. The Metastore does not properly store be/src/runtime/tmp-file-mgr.cc (1 line): - line 2124: // TODO: in future, if DiskIoMgr supported write cancellation, we could cancel it be/src/util/periodic-counter-updater.h (1 line): - line 109: /// TODO: customize bucketing be/src/runtime/runtime-filter-bank.cc (1 line): - line 482: // TODO: we would ideally update the coordinator logic to avoid creating duplicates be/src/exec/parquet/parquet-column-stats.cc (1 line): - line 280: //TODO (IMPALA-10793): set timestamp decoder to correctly convert timestamps. be/src/util/parquet-reader.cc (1 line): - line 26: // TODO: is there a better include to use? be/src/exec/hdfs-text-table-writer.cc (1 line): - line 105: // TODO: try to find a more efficient implementation fe/src/main/java/org/apache/impala/catalog/CatalogDeltaLog.java (1 line): - line 54: * queried to check if an object was added. TODO: Also track object additions from async be/src/runtime/bufferpool/buffer-pool.cc (1 line): - line 778: // TODO: if we add cancellation support to TmpFileMgr, consider cancellation path. common/protobuf/kudu/util/hdr_histogram.h (1 line): - line 339: // TODO: Explain percentile_ticks_per_half_distance. be/src/runtime/scanner-mem-limiter.h (1 line): - line 35: /// TODO: this can be removed once all scan nodes are switched to the MT versions. fe/src/main/java/org/apache/impala/analysis/KuduPartitionParam.java (1 line): - line 190: // TODO: Add a validate() function to ensure the validity of distribute params. be/src/exec/kudu/kudu-scan-node-mt.h (1 line): - line 45: /// TODO: The KuduScanner should be merged into this class when we get rid of the be/src/rpc/rpc-mgr-kerberized-test.cc (1 line): - line 72: // TODO: We're starting a seperate RpcMgr here instead of configuring be/src/rpc/rpc-mgr.h (1 line): - line 193: /// TODO: Clean up this interface. Replace the debug action with fault injection in RPC be/src/exec/hbase/hbase-scan-node.cc (1 line): - line 75: // TODO: make sure we print all available diagnostic output to our error log be/src/exprs/agg-fn.h (1 line): - line 135: /// TODO: implement codegen path for init, finalize, serialize functions etc. java/datagenerator/src/main/java/org/apache/impala/datagenerator/JsonToParquetConverter.java (1 line): - line 76: // TODO: this ctor is deprecated, figure out how to create AvroWriteSupport be/src/testutil/test-udfs.cc (1 line): - line 119: // TODO: have this return a StringVal (make sure not to use functions defined in other fe/src/main/java/org/apache/impala/catalog/ScalarFunction.java (1 line): - line 111: * TODO: this needs to be kept in sync with what generates the be operator fe/src/main/java/org/apache/impala/analysis/ConvertTableToIcebergStmt.java (1 line): - line 87: // TODO: Until IMPALA-12190 is fixed, user needs ALL privileges on the DB to migrate a fe/src/main/java/org/apache/impala/catalog/ColumnStats.java (1 line): - line 416: * TODO: handle DECIMAL. fe/src/main/java/org/apache/impala/service/FrontendProfile.java (1 line): - line 257: // TODO: remove when allowing nested scopes. be/src/benchmarks/bit-packing-benchmark.cc (1 line): - line 348: // TODO: revisit this limit if necessary be/src/util/symbols-util.h (1 line): - line 55: /// TODO: this is not a general mangling function and that is more difficult to fe/src/main/java/org/apache/impala/util/MetaStoreUtil.java (1 line): - line 172: // TODO: Sleep for a bit? be/src/exec/external-data-source-executor.cc (1 line): - line 174: // TODO: Understand what's happening, remove, and use JniUtil::CallJniMethod be/src/util/compress.h (1 line): - line 39: /// TODO: reconsider the abstracted API fe/src/main/java/org/apache/impala/analysis/TupleDescriptor.java (1 line): - line 488: // TODO: for computed slots, try to come up with stats estimates be/src/exec/sequence/hdfs-sequence-scanner.cc (1 line): - line 124: // TODO: This should probably be based on L2/L3 cache sizes (as should the batch size) fe/src/main/java/org/apache/impala/rewrite/NormalizeExprsRule.java (1 line): - line 39: // TODO: add normalization for other expr types. be/src/runtime/raw-value.cc (1 line): - line 280: // TODO IMPALA-12160: Handle collections in structs. be/src/runtime/timestamp-value.inline.h (1 line): - line 177: // TODO: consider optimizing this (IMPALA-8268) be/src/runtime/runtime-state.h (1 line): - line 375: /// TODO: rename this counter and account for the 3 components above. IMPALA-6705. fe/src/main/java/org/apache/impala/planner/SubplanNode.java (1 line): - line 106: // TODO: add an estimate be/src/util/impala-profile-tool.cc (1 line): - line 100: // TODO: try using a fake MemPool that invokes malloc/free directly. be/src/exec/kudu/kudu-scan-node-base.h (1 line): - line 34: /// TODO: This class can be removed when the old single threaded implementation is fe/src/main/java/org/apache/impala/planner/Planner.java (1 line): - line 661: // TODO: IMPALA-9255: take into account parallel plan dependencies. be/src/kudu/util/env.cc (1 line): - line 53: // TODO: move these utils into env_util fe/src/main/java/org/apache/impala/planner/PlannerContext.java (1 line): - line 57: // TODO: Compute stats for nested types and pick them up here. common/protobuf/kudu/util/knapsack_solver.h (1 line): - line 142: std::vector item_taken_; // TODO: record difference vectors? be/src/exec/data-sink.cc (1 line): - line 83: // TODO: figure out good buffer size based on size of output row fe/src/main/java/org/apache/impala/authorization/BaseAuthorizationChecker.java (1 line): - line 394: * TODO: Remove this method when Impala supports row filtering and column masking. fe/src/main/java/org/apache/impala/authorization/ranger/RangerImpaladAuthorizationManager.java (1 line): - line 402: // TODO: To support displaying privileges on UDF's later. fe/src/main/java/org/apache/impala/util/AvroSchemaUtils.java (1 line): - line 83: // TODO: Add support for https:// here. be/src/exec/parquet/parquet-data-converter.h (1 line): - line 138: // TODO: IMPALA-7862: converting timestamps after validating them can move them out of fe/src/main/java/org/apache/impala/extdatasource/jdbc/dao/GenericJdbcDatabaseAccessor.java (1 line): - line 83: // TODO: If a target database cannot flatten this view query, try to text be/src/exprs/is-not-empty-predicate.h (1 line): - line 29: /// TODO: Implement this predicate via the UDF interface once the fe/src/main/java/org/apache/impala/catalog/local/LocalFsTable.java (1 line): - line 212: // TODO: Currently we load all partitions including their file metadata in order to be/src/util/dynamic-util.cc (1 line): - line 49: // TODO: this is to work around some build breaks. We need to fix this better. fe/src/main/java/org/apache/impala/planner/TupleCachePlanner.java (1 line): - line 92: // TODO: Make this more complicated (e.g. cost calculations) be/src/exprs/agg-fn.cc (1 line): - line 167: // TODO: IMPALA-4785: we should also replace references to GetIntermediateType() fe/src/main/java/org/apache/impala/common/Metrics.java (1 line): - line 34: * TODO: Expose the metrics in Json format via a toJson() function. be/src/runtime/coordinator.h (1 line): - line 117: /// TODO: move into separate subdirectory and move nested classes into separate files be/src/exec/kudu/kudu-util.h (1 line): - line 21: // TODO: Remove when toolchain callbacks.h properly defines ::tm. be/src/benchmarks/expr-benchmark.cc (1 line): - line 509: // TODO: expand these cases when the parser issues are fixed (see corresponding tests be/src/kudu/util/monotime-test.cc (1 line): - line 137: // TODO: Reliably test MonoDelta::FromSeconds() considering floating-point rounding errors fe/src/main/java/org/apache/impala/analysis/ConstantPredicateHandler.java (1 line): - line 177: // TODO: the original (stricter) op could be kept if the upper bound is a be/src/exec/hdfs-scan-node.h (1 line): - line 69: /// TODO: Remove this class once the fragment-based multi-threaded execution is fe/src/main/java/org/apache/impala/analysis/AdminFnStmt.java (1 line): - line 131: // TODO: this parsing and type checking logic is specific to the command, similar to fe/src/main/java/org/apache/impala/hive/executor/UdfExecutor.java (1 line): - line 37: // TODO: should we cache loaded jars and classes? be/src/util/cpu-info.cc (1 line): - line 143: // TODO: is there a more robust way to do this, such as fe/src/main/java/org/apache/impala/rewrite/BetweenToCompoundRule.java (1 line): - line 91: // TODO: handle slotDesc that is a Union from different table columns. be/src/exec/orc/orc-column-readers.cc (1 line): - line 179: // TODO: IMPALA-9310: Possible improvement is moving the buffer out from orc::DataBuffer be/src/rpc/thrift-util.h (1 line): - line 168: /// TODO: Find the right exception for 0 bytes be/src/exec/union-node.cc (1 line): - line 202: // TODO: Remove this as part of IMPALA-4179. be/src/exec/blocking-join-node.cc (1 line): - line 300: // TODO: Remove this special-case behavior for subplans once we have proper be/src/kudu/util/metrics.h (1 line): - line 199: // TODO: Output to HTML. fe/src/main/java/org/apache/impala/common/JniUtil.java (1 line): - line 139: // TODO: avoid creating deserializer for each query? be/src/util/os-util.h (1 line): - line 27: /// TODO: Get stats for parent process. be/src/kudu/util/random.h (1 line): - line 50: // FIXME: This currently only generates 31 bits of randomness. be/src/runtime/io/disk-io-mgr-stress-test.cc (1 line): - line 35: // TODO: make these configurable once we decide how to run BE tests with args be/src/runtime/bufferpool/buffer-pool.h (1 line): - line 271: /// TODO: once IMPALA-4834 is done and all large allocations are served from the buffer be/src/exprs/scalar-fn-call.h (1 line): - line 62: /// TODO: be/src/kudu/rpc/rpc_introspection.proto (1 line): - line 116: // TODO: swap out for separate fields docker/quickstart_client/load_tpcds_parquet.sql (1 line): - line 679: -- TODO: add sort by hints for better clustering. be/src/exec/base-sequence-scanner.cc (1 line): - line 60: // TODO: add remote disk id and plumb that through to the io mgr. It should have be/src/runtime/bufferpool/buffer-allocator.cc (1 line): - line 338: // TODO: IMPALA-4703: add a stress option where we vary the number of attempts be/src/runtime/fragment-state.h (1 line): - line 99: /// TODO: Now that IMPALA-4233 is fixed, revisit this comment. be/src/exec/nested-loop-join-node.h (1 line): - line 52: /// TODO: Add support for null-aware left-anti join. fe/src/main/java/org/apache/impala/analysis/DropFunctionStmt.java (1 line): - line 31: * TODO: try to consolidate this with the other Drop*Stmt class, perhaps be/src/exprs/mask-functions-ir.cc (1 line): - line 532: // TODO: Implement this after HIVE-24641 is resolved. be/src/exec/iceberg-delete-node.cc (1 line): - line 43: // TODO: IMPALA-12265: create the config only if it is necessary fe/src/main/java/org/apache/impala/analysis/CreateTableLikeStmt.java (1 line): - line 231: // TODO: IMPALA-11912: Add support for cloning a Kudu table with range partitions common/protobuf/kudu/rpc/rpc.h (1 line): - line 86: // TODO Currently this only picks the leader, though it wouldn't be unfeasible to have this be/src/service/data-stream-service.cc (1 line): - line 141: // TODO: Revisit this with more sophisticated deferral mechanism if needed. fe/src/main/java/org/apache/impala/catalog/IncompleteTable.java (1 line): - line 170: // TODO: Provide a mechanism (query option?) to optionally allow returning more be/src/runtime/krpc-data-stream-recvr.h (1 line): - line 95: /// TODO: This is currently only exposed to the non-merging version of the exchange. be/src/scheduling/cluster-membership-mgr.h (1 line): - line 67: /// TODO: Replace the usage of shared_ptr with atomic_shared_ptr once compilers support fe/src/main/java/org/apache/impala/catalog/iceberg/IcebergHadoopTables.java (1 line): - line 117: // TODO: HadoopTables doesn't have dropTable() in the Iceberg version being used. fe/src/main/java/org/apache/impala/planner/TableSink.java (1 line): - line 175: // TODO: consider including materialization cost into the returned cost. common/protobuf/kudu/util/status.h (1 line): - line 468: // TODO: Move error codes into an error_code.proto or something similar. be/src/exec/parquet/parquet-metadata-utils.cc (1 line): - line 392: // TODO: is this validation useful? It is not required at all to read the data and fe/src/main/java/org/apache/impala/analysis/LikePredicate.java (1 line): - line 146: // TODO: this checks that it's a Java-supported regex, but the syntax supported be/src/util/in-list-filter.h (1 line): - line 40: /// TODO: find a better value based on the implementation of ORC lib, or make this fe/src/main/java/org/apache/impala/analysis/AggregateInfoBase.java (1 line): - line 153: // TODO: Consider making nullability a property of types or of builtin agg fns. be/src/scheduling/executor-group.cc (1 line): - line 26: // TODO: This can be tuned further with real world tests be/src/util/runtime-profile-test.cc (1 line): - line 903: // TODO: change the value to double be/src/runtime/debug-options.h (1 line): - line 32: // TODO: move to subdirectory /coordinator fe/src/main/java/org/apache/impala/util/AvroSchemaParser.java (1 line): - line 142: // TODO: Add support for stored Avro UNIONs by exposing them as STRUCTs in Impala. be/src/exec/hdfs-table-sink.h (1 line): - line 101: /// TODO: IMPALA-2988: Move calls to functions that can fail in Close() to FlushFinal() be/src/util/string-parser.h (1 line): - line 58: /// TODO: people went crazy with huge inline functions in this file - most should be fe/src/main/java/org/apache/impala/catalog/FeCatalogUtils.java (1 line): - line 244: * TODO: this could be a default method in FeFsPartition in Java 8. be/src/scheduling/schedule-state.h (1 line): - line 328: /// TODO: move these into QueryState common/protobuf/kudu/util/atomic-test.cc (1 line): - line 33: // TODO Add some multi-threaded tests; currently AtomicInt is just a be/src/common/status.cc (1 line): - line 40: // TODO: is there a more controlled way to do this. be/src/exec/nested-loop-join-node.cc (1 line): - line 103: // TODO: Remove this special-case behavior for subplans once we have proper be/src/exec/parquet/parquet-bool-decoder.cc (1 line): - line 61: // TODO: we could optimise this further if needed by bypassing 'unpacked_values_'. be/src/scheduling/admissiond-env.cc (1 line): - line 107: // TODO: advertise BackendId of admissiond to coordinators via heartbeats. be/src/exec/join-builder.h (1 line): - line 223: /// TODO: IMPALA-9255: reconsider this so that the build-side thread can exit instead fe/src/main/java/org/apache/impala/analysis/AlterTableReplaceColsStmt.java (1 line): - line 56: // TODO: Support column-level DDL on HBase tables. Requires updating the column be/src/kudu/util/knapsack_solver.h (1 line): - line 142: std::vector item_taken_; // TODO: record difference vectors? be/src/runtime/mem-pool.h (1 line): - line 219: /// TODO: make a macro for doing this fe/src/main/java/org/apache/impala/analysis/AlterTableAddColsStmt.java (1 line): - line 66: // TODO: Support column-level DDL on HBase tables. Requires updating the column fe/src/main/java/org/apache/impala/analysis/ShowDataSrcsStmt.java (1 line): - line 29: * TODO: Refactor Show*Stmt to remove code duplication java/calcite-planner/src/main/java/org/apache/impala/calcite/rules/ConvertToCNFRules.java (1 line): - line 132: // TODO: IMPALA-13436: use max_cnf_exprs query option instead of hardcoded 100. be/src/runtime/io/handle-cache.inline.h (1 line): - line 37: hdfsCloseFile(fs_, hdfs_file_); // TODO: check return code shell/shell_output.py (1 line): - line 174: # TODO: Reexamine the contract of the format() function and see if be/src/codegen/gen_ir_descriptions.py (1 line): - line 47: # TODO: should we work out the mangling rules? fe/src/main/java/org/apache/impala/analysis/MultiAggregateInfo.java (1 line): - line 173: // TODO: could generalise this to allow omitting NULL expressions. be/src/runtime/krpc-data-stream-recvr.cc (1 line): - line 433: // TODO: Add timers for time spent in this function and queue time in 'batch_queue_'. be/src/kudu/gutil/sysinfo.cc (1 line): - line 413: cpuinfo_cycles_per_second = EstimateCyclesPerSecond(500); // TODO <500? be/src/kudu/rpc/service_pool.cc (1 line): - line 108: // TODO: Use a proper thread pool implementation. be/src/util/url-parser.h (1 line): - line 27: /// TODO: For now, our parse_url may not behave exactly like Hive be/src/exprs/udf-builtins.cc (1 line): - line 685: // TODO: it would be nice to resolve the branch before codegen so we can optimise be/src/exec/hbase/hbase-table-scanner.cc (1 line): - line 197: // TODO: IMPALA-5584: In HBase 2.0, setStartRow() and setStopRow() are deprecated. be/src/kudu/rpc/rpc_header.proto (1 line): - line 343: // TODO: Make code required? be/src/transport/TSaslTransport.cpp (1 line): - line 124: // TODO : need to set the shouldWrap_ based on QOP be/src/exec/iceberg-metadata/iceberg-row-reader.cc (1 line): - line 229: // TODO IMPALA-13080: Handle DECIMALs without NULLing them out. docker/quickstart_client/load_tpcds_kudu.sql (1 line): - line 19: ---- TODO: Improve partitioning schemes used for tables. java/calcite-planner/src/main/java/org/apache/impala/calcite/functions/AnalyzedFunctionCallExpr.java (1 line): - line 85: // TODO: IMPALA-13098: need to implement be/src/util/symbols-util-test.cc (1 line): - line 125: // TODO: is there a less arduous way to test this? fe/src/main/java/org/apache/impala/catalog/FeKuduTable.java (1 line): - line 133: // TODO: File a Kudu JIRA. common/protobuf/kudu/rpc/result_tracker.h (1 line): - line 381: // TODO consider a per-ClientState lock if we find this too coarse grained. be/src/kudu/rpc/retriable_rpc.h (1 line): - line 152: // TODO Remove this and pass the used replica around. For now we need to keep this as fe/src/main/java/org/apache/impala/analysis/AlterTableStmt.java (1 line): - line 101: // TODO: IMPALA-8831 will enable all ALTER TABLE statements on transactional tables. be/src/util/parquet-bloom-filter.cc (1 line): - line 45: // TODO: Reconcile with legacy AVX support. fe/src/main/java/org/apache/impala/util/KuduUtil.java (1 line): - line 141: // TODO: Do we need to set the bound type? fe/src/main/java/org/apache/impala/analysis/InsertStmt.java (1 line): - line 1026: // TODO: Check that HBase row-key columns are not NULL? See IMPALA-406 be/src/runtime/decimal-value.h (1 line): - line 234: /// TODO: should we support Decimal12Value? We pad it to 16 bytes in the tuple be/src/util/container-util.h (1 line): - line 191: /// TODO: replace with single template which takes a template param be/src/util/bit-packing.inline.h (1 line): - line 341: // TODO: this could be optimised further by using SIMD instructions. be/src/exprs/like-predicate.cc (1 line): - line 61: // TODO: make class StringValue and StringSearch accept a case-sensitive flag and fe/src/main/java/org/apache/impala/planner/DataStreamSink.java (1 line): - line 138: // TODO: Add specific costing for DIRECTED exchange based on benchmarks. be/src/kudu/util/status.h (1 line): - line 468: // TODO: Move error codes into an error_code.proto or something similar. be/src/exec/write-stream.h (1 line): - line 60: /// TODO consider making this like the parquet writer to avoid extra copy be/src/udf/udf-ir.cc (1 line): - line 53: // TODO: signal error somehow common/protobuf/kudu/util/os-util.h (1 line): - line 35: // TODO: Get stats for parent process. common/protobuf/kudu/util/bit-util.h (1 line): - line 27: // TODO: is this in boost or something else like that? be/src/exec/data-source-scan-node.cc (1 line): - line 364: // TODO Timezone depends on flag use_local_tz_for_unix_timestamp_conversions. java/calcite-planner/src/main/java/org/apache/impala/calcite/functions/AnalyzedCastExpr.java (1 line): - line 49: * Calcite casts will not be implicit. TODO: need to fix for the toSql routine. be/src/runtime/client-cache.cc (1 line): - line 87: // TODO: Thrift TBufferedTransport cannot be re-opened after Close() because it does not be/src/rpc/thrift-server.cc (1 line): - line 374: // TODO: Consider warning if private key file is world-readable be/src/codegen/codegen-anyval-read-write-info.cc (1 line): - line 122: // TODO IMPALA-11643: Revisit this. common/protobuf/kudu/rpc/rpc_header.proto (1 line): - line 343: // TODO: Make code required? be/src/exec/exchange-node.cc (1 line): - line 108: // TODO: figure out appropriate buffer size be/src/common/object-pool.h (1 line): - line 38: // TODO: Consider using a lock-free structure. fe/src/main/java/org/apache/impala/catalog/FeIcebergTable.java (1 line): - line 363: * TODO: Now the calculation of V2 Iceberg table is not accurate. After common/protobuf/kudu/rpc/rpc_introspection.proto (1 line): - line 116: // TODO: swap out for separate fields be/src/udf/uda-test.cc (1 line): - line 121: // TODO: revisit BufferVal and design a better way to do this fe/src/main/java/org/apache/impala/planner/EmptySetNode.java (1 line): - line 71: // TODO: add an estimate fe/src/main/java/org/apache/impala/planner/HdfsPartitionPruner.java (1 line): - line 302: // TODO: Note that rewrite rules should have ensured that the slot be/src/kudu/rpc/rpc.h (1 line): - line 86: // TODO Currently this only picks the leader, though it wouldn't be unfeasible to have this java/calcite-planner/src/main/java/org/apache/impala/calcite/functions/AnalyzedBinaryCompExpr.java (1 line): - line 64: // TODO: IMPALA-13098: need to implement be/src/util/sharded-query-map-util.h (1 line): - line 48: // TODO: If necessary, refactor the lambda signature to allow returning Status objects. be/src/scheduling/scheduler-test.cc (1 line): - line 154: /// TODO: This test can be removed once we have the non-random backend round-robin by fe/src/main/java/org/apache/impala/analysis/SlotRef.java (1 line): - line 150: // TODO: derived slot refs (e.g., star-expanded) will not have rawPath set. be/src/runtime/io/disk-io-mgr-internal.h (1 line): - line 39: // TODO: fix things so that counters are always non-NULL. be/src/transport/undef.cpp (1 line): - line 20: // TODO: IMPALA-2764 Remove this file once Impala is dynamically linked against SASL be/src/util/tuple-row-compare.h (1 line): - line 113: /// unsuccessful. TODO: inline this at codegen'd callsites instead of indirectly calling be/src/service/query-result-set.cc (1 line): - line 74: /// TODO: Handle complex types. fe/src/main/java/org/apache/impala/planner/NestedLoopJoinNode.java (1 line): - line 92: // TODO: This seems a bug below that the total data is not divided by numInstances_. be/src/kudu/rpc/result_tracker.h (1 line): - line 381: // TODO consider a per-ClientState lock if we find this too coarse grained. fe/src/main/java/org/apache/impala/catalog/IcebergColumn.java (1 line): - line 31: * TODO: add field ids for the nested fields and use them in schema resolution in the be/src/gutil/sysinfo.cc (1 line): - line 413: cpuinfo_cycles_per_second = EstimateCyclesPerSecond(500); // TODO <500? fe/src/main/java/org/apache/impala/service/FeSupport.java (1 line): - line 297: * TODO: This function is currently used for improving the performance of common/thrift/Planner.thrift (1 line): - line 136: // TODO: rename both this and PlanNodes.TPlan (TPlan should be something like TExecPlan fe/src/main/java/org/apache/impala/catalog/local/LocalHbaseTable.java (1 line): - line 44: // TODO: revisit after caching is implemented for local catalog java/calcite-planner/src/main/java/org/apache/impala/calcite/rel/node/ImpalaAnalyticRel.java (1 line): - line 147: // TODO: IMPALA-12961. strip out null exprs which can exist when the tablescan does be/src/codegen/codegen-anyval.h (1 line): - line 61: /// TODO: java/calcite-planner/src/main/java/org/apache/impala/calcite/operators/CommonOperatorFunctions.java (1 line): - line 91: // TODO: IMPALA-13099 leave blank for now since this might be hard to derive because common/protobuf/kudu/rpc/retriable_rpc.h (1 line): - line 152: // TODO Remove this and pass the used replica around. For now we need to keep this as be/src/kudu/util/crc.cc (1 line): - line 34: // TODO: Is initial = 0 and roll window = 4 appropriate for all cases? be/src/runtime/io/hdfs-monitored-ops.cc (1 line): - line 37: // TODO: is there a better queue size? be/src/exprs/agg-fn-evaluator.h (1 line): - line 90: /// TODO: Move the evaluation of constant input arguments to AggFn setup. be/src/util/decimal-util.h (1 line): - line 74: // TODO: This is not an ideal way to check for overflow because if T is signed, the be/src/catalog/catalog.h (1 line): - line 90: /// TODO: GetDbs() and GetTableNames() can probably be scrapped in favor of java/calcite-planner/src/main/java/org/apache/impala/calcite/util/SimplifiedAnalyzer.java (1 line): - line 140: * TODO: IMPALA-13460: Generating a unique alias is a problem because common/protobuf/kudu/util/monotime-test.cc (1 line): - line 137: // TODO: Reliably test MonoDelta::FromSeconds() considering floating-point rounding errors be/src/util/bitmap.h (1 line): - line 28: /// TODO: investigate perf. be/src/exec/filter-context.cc (1 line): - line 43: // TODO: These only apply to Parquet, so only register them in that case. cmake_modules/FindLlvm.cmake (1 line): - line 72: # TODO: this does not work well. the config file will output -I/ and fe/src/main/java/org/apache/impala/analysis/DescriptorTable.java (1 line): - line 221: // TODO: Ideally, we should call tupleDesc.checkIsExecutable() here, but there be/src/runtime/outbound-row-batch.cc (1 line): - line 74: // TODO: could copy to a smaller buffer if compressed data is much smaller to be/src/exec/blocking-plan-root-sink.h (1 line): - line 53: /// TODO: Currently, this does nothing, it just calls DataSink::Prepare. However, adding java/ext-data-source/api/src/main/java/org/apache/impala/extdatasource/v1/ExternalDataSource.java (1 line): - line 32: * TODO: Add javadocs java/calcite-planner/src/main/java/org/apache/impala/calcite/coercenodes/CoerceOperandShuttle.java (1 line): - line 99: // TODO: this is kinda hacky. It would be better if Impala can handle this common/protobuf/kudu/util/thread.h (1 line): - line 52: // TODO: would be nice to offer a way to use ptrace() or signals to fe/src/main/java/org/apache/impala/authorization/AuthorizationPolicy.java (1 line): - line 252: // TODO: verify they actually exist. fe/src/main/java/org/apache/impala/analysis/CompoundPredicate.java (1 line): - line 174: // TODO: Support selectivity hint for 'AND' compound predicates. fe/src/main/java/org/apache/impala/analysis/CastExpr.java (1 line): - line 84: // TODO: this doesn't seem like the cleanest approach but there are places be/src/util/disk-info.cc (1 line): - line 69: // TODO: is there not something better than this? be/src/exec/scan-node.cc (1 line): - line 297: // TODO: IMPALA-7096: re-evaluate this heuristic to get a tighter bound on memory be/src/runtime/raw-value.h (1 line): - line 54: /// TODO: for string types, we just print the result regardless of whether or not it common/protobuf/kudu/util/metrics.h (1 line): - line 199: // TODO: Output to HTML. be/src/kudu/util/bit-util.h (1 line): - line 27: // TODO: is this in boost or something else like that? be/src/util/symbols-util.cc (1 line): - line 79: // TODO: fix for templates fe/src/main/java/org/apache/impala/catalog/StrictOverrideCompatibility.java (1 line): - line 44: // TODO: it might make sense to promote to double in many cases, but this would fe/src/main/java/org/apache/impala/service/JniFrontend.java (1 line): - line 180: // TODO: avoid creating serializer for each query? be/src/util/memory-metrics.h (1 line): - line 56: /// TODO: IMPALA-691 - consider changing this to include JVM memory. fe/src/main/java/org/apache/impala/extdatasource/jdbc/util/QueryConditionUtil.java (1 line): - line 98: // TODO: Support data types of binary for predicates. be/src/runtime/collection-value-builder.h (1 line): - line 59: // TODO: num_tuples should be 64-bit. Need to update CollectionValue too. be/src/exec/data-sink.h (1 line): - line 138: /// TODO: IMPALA-5832: we could allow sinks to acquire resources of 'batch' if we fe/src/main/java/org/apache/impala/planner/SingularRowSrcNode.java (1 line): - line 79: // TODO: add an estimate be/src/exprs/scalar-expr-evaluator.cc (1 line): - line 151: // TODO: Move FRAGMENT_LOCAL state to ScalarExpr. ScalarExprEvaluator should only be/src/kudu/util/bloom_filter.h (1 line): - line 48: // TODO: an SSE CRC32 hash is probably ~20% faster. Come back to this fe/src/main/java/org/apache/impala/service/DescribeResultFactory.java (1 line): - line 186: // TODO: Retrieve privileges from Catalog be/src/runtime/krpc-data-stream-sender.h (1 line): - line 101: /// TODO: capture stats that describe distribution of rows/data volume fe/src/main/java/org/apache/impala/planner/TupleCacheInfo.java (1 line): - line 279: // TODO: It might be more useful to have the hash trace just for this be/src/util/counting-barrier.h (1 line): - line 38: /// TODO: some callers will decrement this below 0. In those cases only the notification common/protobuf/common.proto (1 line): - line 70: // TODO: if we upgrade to proto3, then we can use the oneof feature in Protobuf 3 in common/protobuf/kudu/util/bloom_filter.h (1 line): - line 48: // TODO: an SSE CRC32 hash is probably ~20% faster. Come back to this fe/src/main/java/org/apache/impala/catalog/local/LocalView.java (1 line): - line 69: // TODO: the org.apache.impala.catalog.View class is still used for local views common/protobuf/kudu/util/crc.cc (1 line): - line 34: // TODO: Is initial = 0 and roll window = 4 appropriate for all cases? be/src/rpc/impala-service-pool.h (1 line): - line 114: /// TODO: This seems implausible given our current usage pattern. be/src/experiments/data-provider.cc (1 line): - line 119: // TODO: generate sequential strings fe/src/main/java/org/apache/impala/catalog/HiveStorageDescriptorFactory.java (1 line): - line 34: * TODO: Add support for HBase be/src/kudu/util/hdr_histogram.h (1 line): - line 339: // TODO: Explain percentile_ticks_per_half_distance. fe/src/main/java/org/apache/impala/catalog/ScalarType.java (1 line): - line 51: // TODO: we could use that to store DECIMAL(8,*), indicating a decimal