fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/PhysicalPlanTranslator.java (40 lines): - line 285: // TODO: maybe we need to trans nullable directly? and then we could remove call computeMemLayout - line 318: // TODO: why need set streaming here? should remove this. - line 345: // TODO: remove this logic when we split to multi-window in logical window to physical window conversion - line 449: // TODO: after changed ABCD to DCB. check what exchange do here. - line 581: // TODO: should not call legacy planner analyze in Nereids - line 816: // TODO: move all node set cardinality into one place - line 835: // TODO: Do we really need tableName here? - line 847: // TODO: remove this switch? - line 861: // TODO: process collect scan node in one place - line 863: // TODO: process translate runtime filter in one place - line 874: // TODO: use a util function to convert distribution to DataPartition - line 885: // TODO: maybe we could have a better way to create fragment - line 993: // TODO: it is weird update label in this way - line 1093: // TODO: use to set useStreamingAgg, we should remove it by set it in Nereids - line 1106: // TODO: nereids forbid all parallel scan under aggregate temporary, because nereids could generate - line 1507: // TODO: add reason - line 1526: // TODO: revert this after Nereids could ensure the output order is correct. - line 1596: // TODO: temporary code for two phase read, should remove it after refactor - line 1616: // TODO: temporary code for two phase read, should remove it after refactor - line 1635: // TODO: temporary code for two phase read, should remove it after refactor - line 1654: // TODO: temporary code for two phase read, should remove it after refactor - line 1735: // TODO: we should add a helper method to wrap this logic. - line 1768: // TODO: what's this? do we really need to set this? - line 1798: // TODO: revert this after Nereids could ensure the output order is correct. - line 1824: // TODO: because of the limitation of be, the VNestedLoopJoinNode will output column from both children - line 1833: // TODO: temporary code for two phase read, should remove it after refactor - line 1847: // TODO: temporary code for two phase read, should remove it after refactor - line 1982: // TODO: generate expression mapping when be project could do in ExecNode. - line 2008: // TODO FE/BE do not support multi-layer-project on MultiDataSink now. - line 2011: // TODO support for two phase read with project, remove it after refactor - line 2070: // TODO: HashJoinNode's be implementation is not support projection yet, remove this after when supported. - line 2107: // TODO: Remove this code when old planner is deleted and BE changes to be consistent with FE. - line 2123: // TODO support for two phase read with project, remove this if after refactor - line 2227: // TODO: nereids forbid all parallel scan under PhysicalSetOperation temporary - line 2248: * TODO: When the slotRef of sort is currently generated, - line 2514: // TODO: nereids forbid all parallel scan under PhysicalSetOperation temporary - line 2584: // TODO: use smallest slot if do not need any slot in upper node - line 2721: // TODO: refactor this, call it every where is not a good way - line 2727: // TODO: refactor this, call it every where is not a good way - line 2798: // TODO: refactor this, call it every where is not a good way fe/fe-core/src/main/java/org/apache/doris/planner/SingleNodePlanner.java (19 lines): - line 180: // TODO: instead of materializing everything produced by the plan root, derive - line 183: // TODO 2: should the materialization decision be cost-based? - line 317: // TODO: External sort could be used for very large limits - line 337: // TODO chenhao, before merge ValueTransferGraph, force evaluate conjuncts - line 371: * TODO: change this to assign the unassigned conjuncts to root itself, if that is - line 432: // TODO: Support muti table in the future - line 576: // TODO chenhao , right out join ? - line 935: // TODO: Allow the rhs of any cross join as the leftmost table. This needs careful - line 943: // TODO: Consider raw size of scanned partitions in the absence of stats. - line 1349: // TODO: only use topN if the memory footprint is expected to be low; - line 1628: // TODO: we should compute the "physical layout" of the view's descriptor, so that - line 1672: // TODO: This check is also repeated in migrateConjunctsToInlineView() because we - line 1837: // TODO chenhao, remove evaluateOrderBy when SubQuery's default limit is removed. - line 1912: // TODO chenhao, remove evaluateOrderBy when SubQuery's default limit is removed. - line 2318: * TODO: optimize this by still pushing predicates into the union operands - line 2321: * TODO: Simplify the plan of unions with empty operands using an empty set node. - line 2322: * TODO: Simplify the plan of unions with only a single non-empty operand to not - line 2332: // TODO chenhao - line 2622: // TODO chenhao, remove isEvaluateOrderBy when SubQuery's default limit is removed. fe_plugins/trino-converter/src/main/java/org/apache/doris/plugin/dialect/trino/TrinoLogicalPlanBuilder.java (14 lines): - line 89: // TODO: need to handle orderBy and limit - line 103: // TODO: support query values - line 109: // TODO: support predicate, aggregate, having, order by, limit - line 110: // TODO: support distinct - line 201: // TODO: support literal transform - line 212: // TODO: support double literal transform - line 218: // TODO: support decimal literal transform - line 237: // TODO: support generic literal transform - line 243: // TODO: support time literal transform - line 249: // TODO: support char literal transform - line 255: // TODO: add unescapeSQLString. - line 265: // TODO: support interval literal transform - line 271: // TODO: support binary literal transform - line 325: // TODO: support date data type mapping fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java (13 lines): - line 1152: // TODO visit partitionSpecCtx - line 1183: // FIXME: In legacy, the `insert into select 1` is handled as `insert into values`. - line 1414: // TODO support drop sync mv - line 1612: // TODO: now dont support delete auto detect partition. - line 1651: // TODO: replace old class name like ExportStmt, BrokerDesc, Expr with new nereid class name - line 1786: // TODO: multi location - line 2046: // TODO: need to add withQueryResultClauses and withCTE - line 2194: // TODO: multi-colName - line 3058: * TODO remove this function after we refactor type coercion. - line 3253: // TODO: support catalog - line 3774: // TODO: natural join, lateral join, union join - line 3985: // TODO: pivot and lateral view - line 4239: // TODO use function binder to check function exists fe/fe-common/src/main/java/org/apache/doris/common/io/Roaring64Map.java (12 lines): - line 81: // TODO: I would prefer not managing arrays myself - line 279: // TODO .size is too slow - line 324: // TODO: we should handle cardinality fitting in an unsigned int - line 560: // TODO .size on tailMap make an iterator: arg - line 563: // TODO: It should be possible to compute indexOk based on sortedHighs array - line 670: // TODO softer growing factor - line 699: // TODO: The entry comes from a NavigableMap: it may be quite cheap to know the next high - line 727: // TODO Reviewers: is it a good idea to rely on BitmapDataProvider except in methods - line 729: // TODO This code may lead to closing a buffer Bitmap in current Navigable even if current is - line 783: // TODO Reviewers: is it a good idea to rely on BitmapDataProvider except in methods - line 785: // TODO This code may lead to closing a buffer Bitmap in current Navigable even if current is - line 1278: // TODO Is it relevant to calling .flip with a cast? fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ComputeSignatureHelper.java (11 lines): - line 73: // TODO: do not support struct type now - line 93: // TODO: do not support struct type now - line 112: // TODO: do not support struct type now - line 133: // TODO: do not support struct type now - line 151: // TODO: do not support struct type now - line 174: // TODO: do not support struct type now - line 193: // TODO: do not support struct type now - line 213: // TODO: do not support struct type now - line 300: // TODO: should use the same common type method of implicitCast - line 302: // TODO: should we use tinyint when all any data type's expression is null type? - line 514: // TODO: do not support struct type now fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/AggregateStrategies.java (11 lines): - line 758: // TODO: refactor this to process slot reference or expression together - line 935: // TODO: usually bad, disable it until we could do better cost computation. - line 945: // TODO: usually bad, disable it until we could do better cost computation. - line 1058: // TODO: usually bad, disable it until we could do better cost computation. - line 1318: // TODO: usually bad, disable it until we could do better cost computation. - line 1488: // TODO: support one phase aggregate(group by columns + distinct columns) + two phase distinct aggregate - line 1609: // TODO: this plan pattern is not good usually, we remove it temporary. - line 1624: // TODO: this plan pattern is not good usually, we remove it temporary. - line 1676: // TODO: usually bad, disable it until we could do better cost computation. - line 1686: // TODO: usually bad, disable it until we could do better cost computation. - line 1785: // TODO: usually bad, disable it until we could do better cost computation. cloud/src/meta-service/meta_service_txn.cpp (11 lines): - line 79: //TODO: we need move begin/commit etc txn to TxnManager - line 282: // TODO: - line 1049: // TODO: do more check like txn state, 2PC etc. - line 2080: // TODO: do more check like txn state - line 2618: //TODO: split with two function. - line 2744: //TODO: 2pc else need to check TxnStatusPB::TXN_STATUS_PRECOMMITTED - line 2995: // TODO: For auth - line 3335: // TODO should we try to delete txn_label_key if begin_sub_txn failed to delete? - line 3369: // TODO: For auth - line 3482: // TODO: For auth - line 3508: //TODO: use set to replace fe/fe-core/src/main/java/org/apache/doris/nereids/util/TypeCoercionUtils.java (9 lines): - line 225: // TODO: complete the cast logic like FunctionCallExpr.analyzeImpl - line 423: // TODO use nereids matches type to instead catalog datatype matches type - line 686: // TODO: if we have other functions need to add argument after bind and before coercion, - line 718: // TODO: use the find common type to get key and value type after we redefine type coercion in Doris. - line 1284: // TODO: need to rethink how to handle char and varchar to return char or varchar as much as possible. - line 1476: // TODO support decimal - line 1483: // TODO support decimal - line 1521: // TODO: need to rethink how to handle char and varchar to return char or varchar as much as possible. - line 1601: // TODO: support ALL type fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java (8 lines): - line 1217: // TODO: deprecated, removed in 3.1, use token instead. - line 1451: // TODO: deprecated, removed in 3.1, use token instead. - line 1648: // TODO: deprecated, removed in 3.1, use token instead. - line 1789: // TODO: deprecated, removed in 3.1, use token instead. - line 1878: // TODO: deprecated, removed in 3.1, use token instead. - line 2001: // TODO: deprecated, removed in 3.1, use token instead. - line 2165: // TODO: deprecated, removed in 3.1, use token instead. - line 4149: // TODO: check getBackendMeta privilege, which privilege should be checked? fe/fe-core/src/main/java/org/apache/doris/analysis/AggregateInfo.java (7 lines): - line 47: * TODO: get rid of this by transforming - line 71: * TODO: move the merge construction logic from SelectStmt into AggregateInfo - line 72: * TODO: Add query tests for aggregation with intermediate tuples with num_nodes=1. - line 289: // TODO: Deal with constant exprs more generally, instead of special-casing - line 344: * TODO: expand implementation to cover the general case; this will require - line 359: // TODO: Deal with constant exprs more generally, instead of special-casing - line 931: * TODO: this won't work when we start supporting range partitions, fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java (6 lines): - line 388: // TODO: Never use custom data format when deliverying information between two systems. - line 532: * TODO: There are three interface in StatementBase be called when doing audit: - line 1916: // TODO FE not support doris field type conversion to arrow field type. - line 1950: // TODO support arrow flight sql - line 1963: // TODO support arrow flight sql - line 2887: // TODO use real type instead of string, for JDBC client it's ok be/src/common/dwarf.cpp (6 lines): - line 1198: // TODO: Support DW_TAG_entry_point and DW_TAG_common_block that don't - line 1200: // TODO: Support relocated address which requires lookup in relocation map. - line 1235: /// FIXME: actually it's a bug in our DWARF parser. - line 1246: /// FIXME: Currently we just give up parsing DWARF for inlines when we got into this situation. - line 1300: /// FIXME: see comment above - line 1611: // TODO: skip over vendor data as specified by the form instead. fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalJoin.java (6 lines): - line 224: // TODO this function is used by TransposeSemiJoinAgg, we assume it can handle mark join correctly. - line 237: // TODO this function is called by AggScalarSubQueryToWindowFunction and InferPredicates - line 513: // TODO: Use fd in the future - line 544: // TODO disable function dependence calculation for mark join, but need re-think this in future. - line 563: // TODO: consider Null-safe hash condition when left and rigth is not nullable - line 587: // TODO disable function dependence calculation for mark join, but need re-think this in future. fe/fe-core/src/main/java/org/apache/doris/analysis/SelectStmt.java (6 lines): - line 877: // TODO: we only optimize query with select * at present - line 966: * TODO: In some cases, it is possible to generate !empty() predicates for a correlated - line 970: * TODO: Evaluating !empty() predicates at non-scan nodes interacts poorly with our BE - line 1319: * TODO: the a.key should be replaced by a.k1 instead of unknown column 'key' in 'a' - line 1460: // TODO: Avoid evaluating aggs in ignored order-bys - line 1890: // TODO: (minghong) if this a view, even no whereClause, fe/fe-core/src/main/java/org/apache/doris/nereids/stats/ExpressionEstimation.java (6 lines): - line 313: // TODO: stat for multiply and divide produced by below algorithm may have huge deviation with reality. - line 392: // TODO: return a proper estimated stat after supports histogram - line 399: // TODO: return a proper estimated stat after supports histogram - line 447: // TODO: find a proper way to predicate stat of substring - line 486: // TODO: this algorithm is not right, fix it latter - line 499: // TODO: this algorithm is not right, fix it latter fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java (6 lines): - line 77: // TODO: for aggregations, we need to unify the code paths for builtins and UDAs. - line 186: // TODO: how to set scale? - line 832: // TODO: we never serialize this to thrift if it's an aggregate function - line 1281: // TODO: should we bother to do this? We could also improve the general - line 1349: // TODO: fix how we equal count distinct. - line 2370: // TODO: we can't correctly determine const-ness before analyzing 'fn_'. We be/src/util/bit_util.h (6 lines): - line 39: // TODO: is this in boost or something else like that? - line 54: // TODO: Pick a better name, as it is not clear what happens when the input is - line 69: // TODO: we don't use this in any perf sensitive code paths currently. There - line 127: // TODO: this could be faster if we use __builtin_clz. Fix this if this ever shows up - line 306: /// TODO: we don't use this in any perf sensitive code paths currently. There - line 507: //TODO: improve the performance of following code further using BSWAP intrinsic fe/fe-common/src/main/java/org/apache/doris/catalog/Type.java (6 lines): - line 834: * TODO: Support casting of non-scalar types. - line 865: // TODO: current not support cast any non-array type(except null and charFamily) to nested array type. - line 897: * TODO: Support non-scalar types. - line 1492: // TODO: arguably we should promote INT + FLOAT to DOUBLE to avoid loss of precision, - line 1522: // TODO: arguably we should always promote BIGINT + FLOAT to double here to keep as - line 1528: // TODO: we're breaking the definition of strict compatibility for BIGINT + DOUBLE, fe/fe-core/src/main/java/org/apache/doris/analysis/StmtRewriter.java (6 lines): - line 774: // TODO This is very expensive. Remove it when we implement independent - line 974: * TODO Handle correlated predicates in a HAVING clause. - line 1065: * TODO: Merge all the equal eligibility tests into a single function. - line 1098: // TODO Handle binary predicates with IS NOT DISTINCT op - line 1274: // TODO: Add support for multiple agg functions that return non-null on an - line 1287: // TODO Generalize this by making the aggregate functions aware of the be/src/runtime/client_cache.h (6 lines): - line 60: // TODO: shut down clients in the background if they don't get used for a period of time - line 61: // TODO: in order to reduce locking overhead when getting/releasing clients, - line 64: // TODO: reduce locking overhead and by adding per-address client caches, each with its - line 66: // TODO: More graceful handling of clients that have failed (maybe better - line 68: // TODO: limits on total number of clients, and clients per-backend - line 105: // TODO: have more fine-grained locks or use lock-free data structures, fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildrenPropertiesRegulator.java (6 lines): - line 123: // TODO: this is forbid good plan after cte reuse by mistake - line 308: // TODO remove this after we refactor coordinator - line 381: // TODO: maybe we should check if left child is PhysicalDistribute. - line 438: // TODO: we must do shuffle on right because coordinator could not do right be selection in this case, - line 540: // TODO: should use the most common hash spec as basic - line 699: // TODO: why add enforcer according to target and target is from requiredProperties not regular cloud/src/meta-service/meta_service.cpp (5 lines): - line 437: // TODO: validate tablet meta, check existence - line 662: // TODO: validate request - line 1851: // FIXME: Don't expose the implementation details of splitting large value - line 2319: // FIXME: Don't expose the implementation details of splitting large value. - line 2628: // TODO print initiator be/src/util/rle_encoding.h (5 lines): - line 62: // TODO: think about how to use this for strings. The bit packing isn't quite the same. - line 149: // TODO: consider adding a min_repeated_run_length so the caller can control - line 204: // TODO: generalize this to other bit widths - line 614: // TODO: For 1 bit-width values it can be optimal to use 16 or 24 values, but more - line 616: // TODO: think about how to use this for strings. The bit packing isn't quite the same. fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Rewriter.java (5 lines): - line 181: // TODO: we should do expression normalization after plan normalization - line 220: * TODO: group these rules to make sure the result plan is what we expected. - line 313: // TODO: wait InferPredicates to infer more not null. - line 389: // TODO: the logical plan should not contains any phase information, - line 416: // TODO: these rules should be implementation rules, and generate alternative physical plans. fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsCalculator.java (5 lines): - line 1016: // TODO: We should subtract those pruned column, and consider the expression transformations in the node. - line 1390: // TODO: for the filter push down window situation, we will prune the row count twice - line 1446: // TODO: 1. Estimate the output unit size by the type of corresponding AggregateFunction - line 1496: // TODO: compute the literal size - line 1520: // TODO: refactor this for one row relation fe/fe-core/src/main/java/org/apache/doris/planner/AnalyticPlanner.java (5 lines): - line 94: * TODO: when generating sort orders for the sort groups, optimize the ordering - line 97: * TODO: when merging sort groups, recognize equivalent exprs - line 228: // TODO: also look at l2 and take the max? - line 402: // TODO: utilize a direction and nulls/first last that has benefit - line 758: // TODO: compare equiv classes by comparing each equiv class's placeholder fe/fe-core/src/main/java/org/apache/doris/analysis/Analyzer.java (5 lines): - line 334: // TODO: Many maps here contain properties about tuples, e.g., whether - line 424: // TODO chenhao16, to save conjuncts, which children are constant - line 2385: // TODO: `globalState.context` could be null, refactor return value type to - line 2655: * TODO: instead of materializing everything produced by the plan root, derived referenced slots from destination - line 2656: * fragment and add a materialization node if not all output is needed by destination fragment TODO 2: should the be/src/vec/olap/olap_data_convertor.cpp (5 lines): - line 398: // TODO: this may not be necessary, check and remove later - line 477: // TODO: this may not be necessary, check and remove later - line 553: // TODO: this may not be necessary, check and remove later - line 687: // TODO: this may not be necessary, check and remove later - line 785: // TODO: this may not be necessary, check and remove later fe/fe-core/src/main/java/org/apache/doris/planner/DistributedPlanner.java (5 lines): - line 75: * TODO: take data partition of the plan fragments into account; in particular, - line 276: * TODO: take bucketing into account to produce a naturally hash-partitioned - line 278: * TODO: hbase scans are range-partitioned on the row key - line 393: // TODO: create equivalence classes based on equality predicates - line 875: * TODO: the output partition of a child isn't necessarily the same as the data fe/fe-core/src/main/java/com/amazonaws/glue/catalog/metastore/AWSCatalogMetastoreClient.java (5 lines): - line 168: // TODO "hook" into Hive logging (hive or hive.metastore) - line 201: // TODO preserve existing functionality for HiveMetaHook - line 331: * TODO: Grant access to role PUBLIC after role support is added - line 1276: // TODO move this into the service - line 1848: // TODO reset active Hive confs for metastore glueClient gensrc/proto/cloud.proto (5 lines): - line 410: // TODO: There are more fields TBD - line 667: // TODO: There may be more fields TBD - line 681: // TODO: There may be more fields TBD - line 958: // TODO: There are more fields TBD - line 964: // TODO: There are more fields TBD be/src/vec/columns/column_object.cpp (5 lines): - line 232: // TODO doris not support unsigned integers for now - line 1026: // TODO a better way to handle following case: - line 1372: // TODO could cache the result of leaf nodes with it's path info - line 1438: // TODO avoid copy - line 1702: // TODO seperate ambiguous path cloud/src/meta-service/txn_kv.h (4 lines): - line 92: * TODO: add options to create the txn - line 157: // TODO: min max or and xor cmp_and_clear set_ver_value - line 366: * FIXME: may be we can implement it as a sync. function. - line 540: // TODO: min max or and xor cmp_and_clear set_ver_value fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalHashJoin.java (4 lines): - line 128: // TODO this function is only called by addShuffleJoinRequestProperty - line 261: // TODO disable function dependence calculation for mark join, but need re-think this in future. - line 280: // TODO: consider Null-safe hash condition when left and rigth is not nullable - line 304: // TODO disable function dependence calculation for mark join, but need re-think this in future. fe/fe-core/src/main/java/org/apache/doris/service/arrowflight/DorisFlightSqlProducer.java (4 lines): - line 273: // TODO Set in BE callback after query end, Client will not callback. - line 335: // TODO can only execute complete SQL, not support SQL parameters. - line 350: // TODO FE does not have the ability to convert root fragment output expr into arrow schema. - line 394: // TODO support update fe/fe-core/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java (4 lines): - line 1266: // TODO: Fix this - line 1731: // TODO: backward compat for Hive <= 0.12. Can be removed later. - line 1740: // TODO: in these methods, do we really need to deepcopy? - line 3211: // TODO: we could remember if it's unsupported and stop sending calls; although, it might fe/be-java-extensions/preload-extensions/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java (4 lines): - line 1269: // TODO: Fix this - line 1732: // TODO: backward compat for Hive <= 0.12. Can be removed later. - line 1741: // TODO: in these methods, do we really need to deepcopy? - line 3221: // TODO: we could remember if it's unsupported and stop sending calls; although, it might fe/fe-core/src/main/antlr4/org/apache/doris/nereids/PLParser.g4 (4 lines): - line 66: // 2. TODO doris statement add stmt: - line 72: // 3. TODO add plsql stmt: - line 215: ; // TODO declare_temporary_table_item - line 553: ; // TODO NOT? EXISTS LEFT_PAREN query RIGHT_PAREN, bool_expr_single_in, bool_expr_multi_in be/src/vec/functions/function_cast.h (4 lines): - line 1607: //TODO if from is not string, it must be HLL? - line 1627: //TODO if from is not string, it must be BITMAP? - line 1820: // TODO not found root cause, a tmp fix - line 1953: // TODO: need handle another type to cast struct fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java (4 lines): - line 518: // TODO: not implemented yet - line 870: // TODO should use inverted index - line 902: // TODO should use inverted index - line 2960: // TODO: support histogram in the future. fe/fe-core/src/main/java/org/apache/doris/catalog/AggregateFunction.java (4 lines): - line 43: * TODO: Create separate AnalyticFunction class - line 95: // TODO: currently it is not possible for user functions to specify this. We should - line 101: // TODO: Instead of manually setting this flag for all builtin aggregate functions - line 114: // TODO: Instead of manually setting this flag, we should identify this regression-test/suites/statistics_p1/analyze_stats.groovy (4 lines): - line 406: // // TODO incremental analysis currently does not support materialized views and histograms, - line 560: // TODO make automatic analysis stable - line 568: // // TODO fix histogram automatic analysis - line 686: // // TODO add new column or delete column fe/fe-core/src/main/java/org/apache/doris/nereids/stats/FilterEstimation.java (4 lines): - line 65: * TODO: Should consider the distribution of data. - line 339: // TODO: make sure left's stats is RangeScalable whose min/max is trustable. - line 681: // TODO: consider notNullSelectivity - line 709: // TODO: use intersect interface to refine this to avoid this kind of left-dominating style be/src/pipeline/exec/streaming_aggregation_operator.cpp (4 lines): - line 64: // TODO: experimentally tune these values and also programmatically get the cache size - line 255: // TODO chenhao - line 260: // TODO: workaround for IMPALA-2490: subplan node rows_returned counter may be - line 271: // TODO: consider collecting more statistics to better estimate reduction. be/src/vec/core/block.cpp (4 lines): - line 560: // TODO: need more effective function of to string. now the impl is slow - line 828: // FIXME: this is a quickfix. we assume that only partition functions make there some - line 907: // TODO: After support c++23, we should use resize_and_overwrite to replace resize - line 939: // TODO: rethink the logic here may copy again ? fe/fe-core/src/main/java/org/apache/doris/plsql/Stmt.java (4 lines): - line 127: // TODO SELECT BULK COLLECT INTO statement executed - line 155: Object[] row = new Object[cols]; // TODO if there is a large amount of data? - line 219: // TODO support var=col assignment clause - line 232: // TODO support var=col assignment clause be/src/vec/exec/format/orc/vorc_reader.cpp (4 lines): - line 97: // TODO: we need to determine it by test. - line 625: // TODO: ColumnValueRange has lost the precision of microsecond - line 2366: // TODO: The current implementation of dictionary filtering does not take into account - line 2662: // TODO: Possible optimization points. fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java (4 lines): - line 1178: // TODO: we have to convert CompoundPredicate.AND to two expr trees for - line 1361: * TODO: isAnalyzed_ should be a precondition for isConstant(), since it is not always - line 2012: * TODO: Support predicates with more that one subqueries when we implement - line 2302: * TODO: Now only SlotRef and LiteralExpr overwrite the method, each child of Expr should fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterGenerator.java (4 lines): - line 253: // TODO: current support inner join, cross join, right outer join, and will support more join type. - line 445: // TODO: we need to support all type join - line 470: // TODO: same action will be taken for set operation - line 489: // TODO: OneRowRelation will be translated to union. Union node cannot apply runtime filter now be/src/olap/rowset/beta_rowset_writer.cpp (4 lines): - line 87: // TODO write zonemap to meta - line 690: // TODO update zonemap - line 705: // TODO use schema_mapping to transfer zonemap - line 930: // TODO write zonemap to meta be/src/olap/rowset/segment_v2/column_reader.cpp (4 lines): - line 390: // TODO: this work to get min/max value seems should only do once - line 418: // TODO: the work may cause performance problem, opt latter - line 535: // TODO: Both `min_value` and `max_value` should be 0 or neither should be 0. - line 672: // TODO: move has null to inverted_index_reader's query function fe/fe-core/src/main/java/org/apache/doris/job/extensions/insert/InsertJob.java (4 lines): - line 255: // TODO: not support other type yet - line 333: //TODO it's will be refactor, we will storage task info in job inner and query from it - line 622: // TODO: get tvf param from tvf relation - line 651: // TODO: need record cancelled jobs in order to show cancelled job cloud/src/meta-service/meta_service_job.cpp (4 lines): - line 544: // TODO does not check expired time - line 723: // FIXME: Just remove or notify to abort? - line 1176: // FIXME: Just remove or notify to abort? - line 1433: // FIXME: async get be/src/pipeline/exec/distinct_streaming_aggregation_operator.cpp (4 lines): - line 43: // TODO: experimentally tune these values and also programmatically get the cache size - line 129: // TODO chenhao - line 134: // TODO: workaround for IMPALA-2490: subplan node rows_returned counter may be - line 145: // TODO: consider collecting more statistics to better estimate reduction. fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4 (3 lines): - line 43: // FIXME: like should be wildWhere? FRONTEND should not contain FROM backendid - line 939: // TODO: support analyze external table partition spec https://github.com/apache/doris/pull/24154 - line 1794: // TODO: need to stay consistent with the legacy regression-test/suites/postgres/sql/numeric.sql (3 lines): - line 94: -- TODO: sqrt, ln, log currently return double - line 156: -- TODO: stddev and VARIANCE result is same as MySQL but different with Postgres - line 215: -- TODO: strict mode be/src/vec/exec/scan/scanner_context.cpp (3 lines): - line 117: // TODO: Maybe need refactor. - line 317: // TODO: If the scanner status is TooManyTasks, maybe we can retry the scanner after a while. - line 410: // TODO yiguolei, call mark close to scanners be/src/util/thread.cpp (3 lines): - line 115: // TODO: Add start-time. - line 116: // TODO: Track fragment ID. - line 136: // TODO: unordered_map is incompatible with pthread_t, but would be more fe/fe-core/src/main/java/com/amazonaws/glue/catalog/metastore/GlueMetastoreClientDelegate.java (3 lines): - line 175: // TODO - May be validate catalogId confirms to AWS AccountId too. - line 277: // TODO: handle cascade - line 328: // TODO: Set DDL_TIME parameter in Glue service fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/mv/SelectMaterializedIndexWithAggregate.java (3 lines): - line 103: * TODO: optimize queries with aggregate not on top of scan directly, e.g., aggregate -> join -> scan - line 755: // TODO: support all the aggregate function types in storage engine. - line 1651: * TODO: Do not add redundant columns fe/fe-core/src/main/java/org/apache/doris/planner/PlanFragment.java (3 lines): - line 86: * TODO: the tree of PlanNodes is connected across fragment boundaries, which makes - line 141: // TODO: SubstitutionMap outputSmap; - line 342: // TODO chenhao , calculated by cost fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/joinorder/hypergraph/HyperGraph.java (3 lines): - line 246: // TODO: add cardinality to label - line 315: // TODO: consider cascades alias - line 524: // TODO: avoid calling calculateEnds if calNodeMap's results are same fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/RuntimeFilterPruner.java (3 lines): - line 59: * TODO: item 2 is not used since the estimation is not accurate now. - line 269: * TODO: min-max - line 292: //TODO remove these code when we ensure left child if from probe side fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/ExpressionAnalyzer.java (3 lines): - line 137: TODO after remove original planner, always enable exact match mode. - line 270: // TODO: the variant bind element_at(slot, 'name') will return a slot, and we should - line 767: // FIXME: compatible with previous behavior: be/src/olap/rowset/segment_v2/segment_iterator.cpp (3 lines): - line 1443: // TODO To refactor, because we suppose lazy materialization is better performance. - line 1606: // TODO reuse - line 2048: // TODO: skip read the not effective delete column to speed up segment read. fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionSet.java (3 lines): - line 563: // TODO: add this to persistent store - line 657: // An empty symbol indicates a TODO for the BE to implement the function. - line 1621: // TODO: switch to CHAR(sizeof(AvgIntermediateType) when that becomes available fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownAggThroughJoinOneSide.java (3 lines): - line 49: * TODO: distinct - line 123: // TODO: select ... from ... group by A , B, 1.2; 1.2 is constant - line 217: // top agg TODO: AVG fe/fe-core/src/main/java/org/apache/doris/nereids/stats/JoinEstimation.java (3 lines): - line 44: * TODO: Update other props in the ColumnStats properly. - line 129: // TODO: strict pk-fk can use one-side stats instead of crossJoinStats - line 310: // TODO: tuning the new semi/anti estimation method be/src/exec/rowid_fetcher.cpp (3 lines): - line 106: // TODO: When transferring data between machines with different byte orders (endianness), - line 269: // TODO remove this warning code - line 399: // TODO: supoort session variable enable_page_cache and disable_file_cache if necessary. fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalWindow.java (3 lines): - line 339: // TODO: Now, we only support the column on the left side. - line 412: // TODO: if partition by keys are unique, output is uniform - line 413: // TODO: if partition by keys are uniform, output is unique fe/fe-core/src/main/java/org/apache/doris/rewrite/RewriteImplicitCastRule.java (3 lines): - line 36: * TODO: For now, we only handle the implicit cast which cast left child with integer type - line 83: // TODO: Let min, max value of a specific type be a part of definition of Type may - line 92: // TODO: We could do constant folding here. cloud/src/recycler/recycler.cpp (3 lines): - line 2766: // FIXME: We have already limited the file num and file meta size when selecting file in FE. - line 2879: // TODO delete objects with key and etag is not supported - line 2923: // FIXME: We have already limited the file num and file meta size when selecting file in FE. fe/fe-core/src/main/java/org/apache/doris/service/arrowflight/tokens/FlightTokenManagerImpl.java (3 lines): - line 70: // TODO: broadcast this message to other FE - line 116: // TODO Modify usersTokenLRU size when user property maxConn changes. but LoadingCache currently not - line 123: // TODO: broadcast this message to other FE fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java (3 lines): - line 629: // TODO:the case where columnPos is not empty has not been considered - line 2213: // TODO: convert alterClauses to alterSystemCommands for schema change - line 3253: // TODO: this is temporary methods be/src/vec/functions/function_string.h (3 lines): - line 1106: // TODO: avoid use fmtlib - line 1396: // TODO: 1. use pmr::vector replace fmt_buffer may speed up the code - line 3238: // TODO: decimal256 be/src/vec/runtime/time_value.h (3 lines): - line 33: /// TODO: Due to the "Time type is not supported for OLAP table" issue, a lot of basic content is missing.It will be supplemented later. - line 57: /// TODO: Maybe we need to ensure that this function always receives positive numbers - line 216: /// TODO: Why is the time type stored as double? Can we directly use int64 and remove the time limit? fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java (3 lines): - line 1751: // TODO: rethink the whole function logic. could All BE sink naturally merged into other judgements? - line 1866: // TODO: switch to unpartitioned/coord execution if our input fragment - line 2386: // TODO: more ranges? be/src/vec/functions/function_case.h (3 lines): - line 211: // TODO: need simd - line 220: // TODO: need simd - line 266: // TODO: make here simd automatically. be/src/vec/functions/match.cpp (3 lines): - line 269: // TODO: more efficient impl - line 307: // TODO: more efficient impl - line 351: // TODO: more efficient impl gensrc/thrift/PaloInternalService.thrift (3 lines): - line 113: 21: optional i64 initial_reservation_total_claims = 2147483647 // TODO chenhao // Deprecated - line 445: // TODO: for range partitioning, we also need to specify the range boundaries - line 558: // TODO: determine whether we can get this somehow via the Thrift rpc mechanism. be/src/vec/columns/column_complex.h (3 lines): - line 111: // TODO: value_type is not a pod type, so we also need to - line 202: // TODO add hash function - line 207: // TODO add hash function fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostModelV1.java (3 lines): - line 273: // TODO: consider two-phase sort and enforcer. - line 288: // TODO: consider two-phase sort and enforcer. - line 558: // TODO: copy from physicalHashJoin, should update according to physical nested loop join properties. be/src/vec/common/schema_util.cpp (3 lines): - line 240: // TODO handle more types like struct/date/datetime/decimal... - line 397: // 3. TODO: gnragm bf index - line 498: // TODO more efficient way to parse jsonb type, currently we just convert jsonb to fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/LoadCommand.java (3 lines): - line 465: // TODO: resolve and put ExternalFileTableValuedFunction params - line 469: // TODO: support multi location by union - line 474: // TODO: check file path by s3 fs list status be/src/util/mustache/mustache.cc (3 lines): - line 44: // TODO: - line 361: // TODO: Triple {{{ means don't escape - line 408: // TODO: This could obviously be more efficient (and there are lots of file accesses in a be/src/vec/data_types/convert_field_to_type.cpp (3 lines): - line 58: // TODO support more types - line 202: // TODO add more types - line 251: // TODO this is a very simple translator, support more complex types fe/fe-core/src/main/java/org/apache/doris/catalog/Function.java (3 lines): - line 122: // TODO: we don't currently support varargs with no fixed types. i.e. fn(...) - line 378: * TODO: look into how we resolve implicitly castable functions. Is there a rule - line 582: // TODO: Comment field is missing? be/src/vec/functions/function_json.cpp (3 lines): - line 99: // TODO: update RE2 to support std::vector - line 896: // TODO: here maybe could use std::vector or std::span - line 1350: // TODO: update RE2 to support std::vector be/src/vec/aggregate_functions/aggregate_function_linear_histogram.h (3 lines): - line 33: // TODO: optimize count=0 - line 34: // TODO: support datetime - line 35: // TODO: support foreach be/src/olap/rowset/segment_v2/column_writer.cpp (3 lines): - line 371: // TODO: - line 995: // TODO llj bulk write - line 1006: // TODO llj bulk write be/src/runtime/descriptors.cpp (3 lines): - line 643: // TODO: is there some boost function to do exactly this? - line 654: // TODO: is there some boost function to do exactly this? - line 665: // TODO: is there some boost function to do exactly this? fe/fe-core/src/main/java/org/apache/doris/analysis/InsertStmt.java (3 lines): - line 83: // TODO: to be discovered in developing - line 96: * TODO: change Function to Util.getXXXPropertyOrDefault() - line 328: * TODO: unify the data_desc fe_plugins/trino-converter/src/main/java/org/apache/doris/plugin/dialect/trino/TrinoFnCallTransformers.java (3 lines): - line 39: // TODO: add other function transformer - line 46: // TODO: add other complex function transformer - line 52: // TODO: add other string function transformer fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AggScalarSubQueryToWindowFunction.java (3 lines): - line 74: * TODO: use materialized view pattern match to do outer and inner tree match. - line 325: // TODO: support compound predicate and multi apply node. - line 334: //TODO: only support simple comparison predicate now fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/MaterializedViewUtils.java (3 lines): - line 135: // TODO support to return only one related table info, support multi later - line 193: // TODO As only support MatchMode.COMPLETE, so only get equaled query table struct info - line 442: // TODO: 2024/1/31 support only one partition referenced column, support multi later be/src/runtime/process_profile.cpp (3 lines): - line 35: // TODO refresh other profile - line 41: // TODO make other profile - line 47: // TODO dump other object (block, column, etc.) fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/SimplifyComparisonPredicate.java (3 lines): - line 221: // TODO: the ideal way is to return an If expr like: - line 430: // TODO: the ideal way is to return an If expr like: - line 472: // TODO: the ideal way is to return an If expr like: be/src/common/daemon.cpp (3 lines): - line 89: // TODO All cache GC wish to be supported - line 343: // TODO adjust cache capacity based on smoothstep (smooth gradient). - line 358: // TODO notify flush memtable fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/SimplifyArithmeticRule.java (2 lines): - line 50: * TODO: handle cases like: '1 - IA < 1' to 'IA > 0' - line 89: // TODO currently we don't process decimal for simplicity. fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ImplicitlyCastableSignature.java (2 lines): - line 59: // TODO: copy isImplicitlyCastable method to DataType - line 60: // TODO: resolve AnyDataType invoke toCatalogDataType be/src/pipeline/exec/scan_operator.cpp (2 lines): - line 541: // TODO: If `vexpr->is_constant()` is true, a const column is expected here. - line 549: /// TODO: There is a DCHECK here, but an additional check is still needed. It should return an error code. regression-test/suites/insert_p0/prepare_insert.groovy (2 lines): - line 204: // TODO why return -2 - line 244: // TODO why return -2 fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java (2 lines): - line 135: // TODO: Keep this to compatible with older version meta data. Need to remove after several DORIS versions. - line 947: // TODO: This code is to compatible with older version of metadata. be/src/olap/types.cpp (2 lines): - line 195: // TODO: Support the type info of the nested array with more than 9 depths. - line 241: // TODO: Support the type info of the nested array with more than 9 depths. be/src/pipeline/exec/hashjoin_probe_operator.cpp (2 lines): - line 182: //TODO: this short circuit maybe could refactor, no need to check at here. - line 397: // TODO: opt the column is const fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertIntoTableCommand.java (2 lines): - line 171: // TODO: add coordinator statistic - line 414: // TODO: support other table types be/src/exec/tablet_info.h (2 lines): - line 222: /*TODO: check if flat hash map will be better*/ - line 227: //TODO: refactor by saving the hash values. then we can calculate in columnwise. fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreClientHelper.java (2 lines): - line 251: // TODO: support NOT predicate for CompoundPredicate - line 309: // TODO: support in predicate be/src/olap/column_predicate.h (2 lines): - line 273: /// TODO: Currently we only record statistics for runtime filters, in the future we should record for all predicates - line 347: // TODO: the value is only in delete condition, better be template value be/src/vec/exprs/vectorized_fn_call.cpp (2 lines): - line 179: // TODO: not execute const expr again, but use the const column in function context - line 211: estimate_size += rows * 512; /// FIXME: estimated value... be/src/olap/rowset/segment_v2/inverted_index_reader.cpp (2 lines): - line 122: // TODO: ugly code here, try to refact. - line 241: // TODO: handle null bitmap procedure in new format. be/src/olap/rowset/segment_v2/indexed_column_writer.cpp (2 lines): - line 148: // TODO short separate key optimize - line 150: // TODO record last key in short separate key optimize fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostModelV2.java (2 lines): - line 332: //TODO: consider runtimeFilter - line 352: // TODO: setting in session variable be/src/vec/functions/functions_comparison.h (2 lines): - line 620: // TODO: Return const column in the future. But seems so far to do. We need a unified approach for passing const column. - line 705: // TODO: varchar and string maybe need a quickly way fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/Literal.java (2 lines): - line 57: * TODO: Increase the implementation of sub expression. such as Integer. - line 211: // TODO support string to complex be/src/common/stack_trace.cpp (2 lines): - line 226: // FIXME: looks like this is used only for Sentry but duplicates the whole algo, maybe replace? - line 316: // TODO: surely there is a written version already for better in place search&replace fe/fe-core/src/main/java/org/apache/doris/catalog/Column.java (2 lines): - line 665: // TODO: If we don't set the aggregate type for children, the type will be - line 899: // TODO check cluster key be/src/exec/tablet_info.cpp (2 lines): - line 531: //TODO: use assert_cast before insert_data - line 770: // pair old_partition_ids and new_partitions one by one. TODO: sort to opt performance be/src/olap/rowset/segment_v2/vertical_segment_writer.cpp (2 lines): - line 226: // TODO support multiple inverted index - line 1169: // TODO: maybe we should pass range to this method fe/fe-core/src/main/java/org/apache/doris/common/proc/JobsProcDir.java (2 lines): - line 114: // TODO: find it from delete handler - line 176: // TODO: find it from delete handler fe/fe-core/src/main/java/org/apache/doris/planner/AnalyticEvalNode.java (2 lines): - line 58: // TODO: Remove when the BE uses partitionByLessThan rather than the exprs - line 230: // TODO: Window boundaries should have range_offset_predicate set fe/fe-core/src/main/java/org/apache/doris/service/arrowflight/results/FlightSqlChannel.java (2 lines): - line 71: // TODO: only support varchar type - line 101: // TODO: only support varchar type fe/fe-core/src/main/java/org/apache/doris/nereids/properties/ChildOutputPropertyDeriver.java (2 lines): - line 151: * TODO return ANY after refactor coordinator - line 320: // TODO: order spec do not process since we do not use it. fe/fe-core/src/main/java/org/apache/doris/analysis/TableRef.java (2 lines): - line 80: * TODO for 2.3: The current TableRef class hierarchy and the related two-phase analysis - line 85: * TODO for 2.3: Rename this class to CollectionRef and re-consider the naming and fe/fe-core/src/main/java/org/apache/doris/analysis/BinaryPredicate.java (2 lines): - line 481: // TODO support decimal - line 569: // TODO: improve using histograms, once they show up be/src/vec/runtime/vdata_stream_mgr.cpp (2 lines): - line 40: // TODO: metric - line 133: // TODO: Rethink the lifecycle of DataStreamRecvr to distinguish fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/NullOrIdenticalSignature.java (2 lines): - line 44: // TODO: copy matchesType to DataType - line 45: // TODO: resolve AnyDataType invoke toCatalogDataType fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticWindow.java (2 lines): - line 193: // TODO: range windows need range_offset_predicate - line 478: // TODO: Remove when RANGE windows with offset boundaries are supported. fe/fe-core/src/main/java/org/apache/doris/nereids/stats/HboUtils.java (2 lines): - line 289: // TODO: if only non-partition table exists, the following steps may be redundant. - line 316: // MATCH 4: TODO: this option is actually useless since the inputTableStatistics is not exactly fe/fe-core/src/main/java/org/apache/doris/statistics/AggStatsDerive.java (2 lines): - line 63: // TODO: try to recognize functional dependencies - line 64: // TODO: as a shortcut, instead of recognizing functional dependencies, fe/fe-core/src/main/java/org/apache/doris/datasource/hive/source/HiveScanNode.java (2 lines): - line 445: // TODO: support skip footer count - line 447: // TODO: separate hive text table and OpenCsv table fe/fe-core/src/main/java/org/apache/doris/nereids/properties/RequestPropertyDeriver.java (2 lines): - line 268: // TODO: for wide table, may be we should add a upper limit of shuffle columns - line 281: // TODO: we do not generate gather union until we could do better cost computation on set operation fe_plugins/sparksql-converter/src/main/java/org/apache/doris/plugin/dialect/spark/SparkSql3FnCallTransformers.java (2 lines): - line 46: // TODO: add other function transformer - line 53: // TODO: add other complex function transformer be/src/runtime/workload_group/workload_group_manager.cpp (2 lines): - line 445: // TODO should kill the query that exceed limit. - line 522: // TODO should wait here to check if the process has release revoked_size memory and then continue. cloud/src/meta-service/txn_kv.cpp (2 lines): - line 276: // TODO: process opt - line 292: // TODO: process opt fe/fe-core/src/main/java/org/apache/doris/qe/PointQueryExecutor.java (2 lines): - line 122: // TODO: Optimize to reduce the frequency of version checks in the meta service. - line 195: // TODO handle IN predicates fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkLoadPendingTask.java (2 lines): - line 494: // TODO: check - line 512: // TODO: more check common/cpp/sync_point.h (2 lines): - line 161: // TODO: it might be useful to provide a function that blocks until all - line 260: // TODO: define injection point in production env. fe/fe-core/src/main/java/org/apache/doris/common/util/DynamicPartitionUtil.java (2 lines): - line 791: // TODO: For Integer Type, only support format it as yyyyMMdd now - line 1005: // TODO Auto-generated method stub be/src/vec/exprs/vexpr_context.cpp (2 lines): - line 176: // TODO: Performance Optimization - line 328: // TODO Performance Optimization be/src/vec/aggregate_functions/aggregate_function_java_udaf.h (2 lines): - line 165: // TODO: Here get a byte[] from FE serialize, and then allocate the same length bytes to - line 244: // TODO: too many variables are hold, it's causing a lot of memory waste fe/fe-core/src/main/java/org/apache/doris/rewrite/RoundLiteralInBinaryPredicatesRule.java (2 lines): - line 61: // TODO: the ideal way is to return an If expr like: - line 119: // TODO: the ideal way is to return an If expr like: fe/fe-core/src/main/java/org/apache/doris/analysis/InlineViewRef.java (2 lines): - line 247: // TODO: relax this a bit by allowing propagation out of the inline view (but - line 506: // FIXME: this may result in a sql cache problem be/src/runtime/runtime_state.cpp (2 lines): - line 142: // TODO: do we really need instance id? - line 248: // TODO: fix linker error and uncomment this be/src/vec/exec/format/table/paimon_reader.cpp (2 lines): - line 92: // TODO: cache the file in local - line 97: // TODO: better way to alloc memeory be/src/vec/functions/function_binary_arithmetic.h (2 lines): - line 55: // TODO: vector_constant optimization not work on decimal type now - line 580: // TODO handle overflow gracefully be/src/vec/exec/scan/scanner.cpp (2 lines): - line 147: // TODO: Should return the specific ErrorStatus instead of just Cancelled. - line 202: //TODO: this is a quick fix, we need a new function like "change_to_nullable" to do it be/src/vec/exec/format/parquet/vparquet_group_reader.cpp (2 lines): - line 131: // TODO : support rested column types - line 213: // TODO: The current implementation of dictionary filtering does not take into account be/src/pipeline/exec/nested_loop_join_probe_operator.cpp (2 lines): - line 89: // TODO: need a vector of left block to register the _probe_row_visited_flags - line 357: // TODO: for cross join, maybe could insert one row, and wrap for a const column be/src/runtime/load_stream.cpp (2 lines): - line 130: // TODO: Each sender lock is enough. - line 416: // TODO: Profile is temporary disabled, because: fe/fe-core/src/main/java/org/apache/doris/nereids/glue/LogicalPlanAdapter.java (2 lines): - line 41: * TODO: rethink it, LogicalPlanAdapter should not bind with Query yet, so we need to do some refactor in StmtExecutor - line 140: // TODO: generate real digest be/src/vec/functions/date_time_transforms.h (2 lines): - line 74: // TODO: the method should be always not nullable - line 124: // TODO: This function look like no need do indeed copy here, we should optimize fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/TransposeSemiJoinLogicalJoinProject.java (2 lines): - line 81: // TODO: when top join is ANTI JOIN, bottomJoin may be RIGHT_OUTER_JOIN - line 101: // TODO: when top join is ANTI JOIN, bottomJoin may be RIGHT_OUTER_JOIN fe/fe-core/src/main/java/org/apache/doris/planner/SetOperationNode.java (2 lines): - line 282: // TODO: Remove this as part of IMPALA-4179. - line 517: // TODO: reconsider this, we may change nullable info in previous nereids rules not here. regression-test/suites/mv_p0/multi_slot_multi_mv/multi_slot_multi_mv.groovy (2 lines): - line 69: // FIXME: the mv selector maybe select base table forever when exist multi mv, - line 103: // FIXME: the mv selector maybe select base table forever when exist multi mv, fe/fe-core/src/main/java/org/apache/doris/analysis/SortInfo.java (2 lines): - line 39: * TODO: reorganize this completely, this doesn't really encapsulate anything; this - line 50: // TODO: rethink this when we have a better cost model. gensrc/thrift/Types.thrift (2 lines): - line 143: // TODO: Model column stats for struct fields. - line 247: // TODO: should this go somewhere else? be/src/cloud/cloud_backend_service.cpp (2 lines): - line 48: // TODO: do we want a BoostThreadFactory? - line 49: // TODO: we want separate thread factories here, so that fe requests can't starve fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java (2 lines): - line 186: // TODO check all caller - line 655: // TODO need add some log fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownTopNThroughJoin.java (2 lines): - line 46: // TODO: complex orderby - line 74: // TODO: in the future, we also can push down it. be/src/olap/schema_change.cpp (2 lines): - line 117: // TODO: try to use pdqsort to replace std::sort - line 1235: // TODO if support VerticalSegmentWriter, also need to handle cluster key primary key index be/src/pipeline/pipeline_task.h (2 lines): - line 160: // TODO: Maybe we do not need this safe code anymore - line 225: // TODO we should calculate the time between when really runnable and runnable fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OSSHdfsProperties.java (2 lines): - line 52: * TODO: Do not expose to users for now. - line 106: // TODO: Currently we load all config parameters and pass them to the BE directly. fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java (2 lines): - line 125: // TODO: bind hive target table - line 288: // TODO move string like type logic into TypeCoercionUtils#castIfNotSameType fe/fe-core/src/main/java/org/apache/doris/analysis/LikePredicate.java (2 lines): - line 86: // TODO: improve with histograms? - line 148: // TODO: this checks that it's a Java-supported regex, but the syntax supported fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManagerAdapter.java (2 lines): - line 60: // TODO: implement - line 63: // TODO: implement be/src/vec/olap/vertical_block_reader.cpp (2 lines): - line 128: rowset_ids.push_back(rowsetid); // TODO: _record_rowids need it - line 132: _reader_context.need_ordered_result = true; // TODO: should it be? be/src/util/pretty_printer.h (2 lines): - line 148: /// TODO: Remove DOUBLE_VALUE. IMPALA-1649 - line 164: /// TODO: There's no good is_string equivalent, so there's a needless copy for strings be/src/vec/columns/column.h (2 lines): - line 363: /// TODO: SipHash is slower than city or xx hash, rethink we should have a new interface - line 507: /// TODO: interface decoupled from ColumnGathererStream that allows non-generic specializations. fe/fe-core/src/main/java/org/apache/doris/common/profile/Profile.java (2 lines): - line 507: // TODO: failed sql supporting rely on profile's extension. - line 781: // TODO: zhiqiang will fix the following flag be/src/service/backend_service.cpp (2 lines): - line 680: // TODO: do we want a BoostThreadFactory? - line 681: // TODO: we want separate thread factories here, so that fe requests can't starve regression-test/suites/nereids_function_p0/scalar_function/Array.groovy (2 lines): - line 389: // TODO enable it when be support character like type - line 423: // TODO enable it when be support character like type fe/fe-core/src/main/java/org/apache/doris/analysis/LiteralExpr.java (2 lines): - line 287: //TODO chenhao16, call super.equals() - line 299: // TODO: use base class's isNullLiteral() to replace this be/src/agent/task_worker_pool.cpp (2 lines): - line 1091: // TODO llj This can only reduce the possibility for report error, but can't avoid it. - line 1226: // TODO: download fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Memo.java (2 lines): - line 435: // TODO Support sync materialized view in the future - line 463: // TODO: need to derive logical property if generate new group. currently we not copy logical plan into fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/IdenticalSignature.java (2 lines): - line 44: // TODO: copy matchesType to DataType - line 45: // TODO: resolve AnyDataType invoke toCatalogDataType fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/AbstractPhysicalJoin.java (2 lines): - line 171: // TODO: - line 201: // TODO this function is called by AggScalarSubQueryToWindowFunction and InferPredicates regression-test/suites/variant_github_events_new_p2/load.groovy (2 lines): - line 109: // TODO fix compaction issue, this case could be stable - line 111: // TODO add test case that some certain columns are materialized in some file while others are not materilized(sparse) regression-test/suites/nereids_function_p0/scalar_function/Array1.groovy (2 lines): - line 396: // TODO enable it when be support character like type - line 430: // TODO enable it when be support character like type fe/fe-core/src/main/java/org/apache/doris/planner/AggregationNode.java (2 lines): - line 217: // TODO: remove these before 1.0 - line 408: // TODO: group by can be very long. Break it into multiple lines fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsRepository.java (2 lines): - line 403: // TODO cache partition granular statistics - line 496: // TODO cache partition granular statistics be/src/vec/common/pod_array.h (2 lines): - line 97: * TODO Pass alignment to Allocator. - line 98: * TODO Allow greater alignment than alignof(T). Example: array of char aligned to page size. be/src/vec/exprs/vexpr.cpp (2 lines): - line 499: // TODO: implement partial debug string for member vars - line 753: estimate_size += rows * 64; /// TODO: need a more reasonable value fe/fe-core/src/main/java/org/apache/doris/planner/GroupCommitPlanner.java (2 lines): - line 129: // TODO support pipeline - line 239: // TODO use planner column size fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownTopNDistinctThroughJoin.java (2 lines): - line 48: // TODO: complex order by - line 79: // TODO: in the future, we also can push down it. fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateTableInfo.java (2 lines): - line 649: // TODO: support iceberg partition check - line 942: // TODO should move this code to validate function fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownAggThroughJoin.java (1 line): - line 47: * TODO: distinct | just push one level fe/fe-core/src/main/java/org/apache/doris/planner/NestedLoopJoinNode.java (1 line): - line 119: // TODO: need to set joinOp by Nereids be/src/io/fs/hdfs_file_reader.cpp (1 line): - line 171: // TODO: rethink here to see if there are some difference between hdfsPread() and hdfsRead() fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/load/LabelProcessor.java (1 line): - line 124: // TODO: remain this method to implement label cleaner gensrc/thrift/Exprs.thrift (1 line): - line 48: // TODO: old style compute functions. this will be deprecated fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java (1 line): - line 295: // TODO: register other sub type after Doris support more types. fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/Job.java (1 line): - line 122: * TODO: count a specific groupExpression. fe/fe-core/src/main/java/org/apache/doris/nereids/util/JoinUtils.java (1 line): - line 74: // TODO actually standalone mark join can use shuffle, but need do nullaware shuffle to broadcast null value be/src/olap/merger.cpp (1 line): - line 335: // TODO: record_rowids fe/fe-core/src/main/java/org/apache/doris/master/MasterImpl.java (1 line): - line 687: // TODO: more check fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java (1 line): - line 261: // TODO: complete the cast logic like FunctionCallExpr.analyzeImpl pytest/lib/palo_client.py (1 line): - line 83: # TODO 成员变量私有化 be/src/udf/udf.cpp (1 line): - line 147: // TODO: signal error somehow be/src/olap/utils.h (1 line): - line 170: // TODO: support 'yyyy-MM-dd HH:mm:ss.SSS' be/src/common/symbol_index.cpp (1 line): - line 173: // TODO: this branch leads to invalid address of the hash table. Need further investigation. be/src/olap/rowset/segment_v2/inverted_index/analyzer/ik/core/CharacterUtil.cpp (1 line): - line 123: // TODO: Maybe delete this function gensrc/thrift/Data.thrift (1 line): - line 25: // TODO: use _val instead of camelcase fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsErrorEstimator.java (1 line): - line 112: * TODO: The execution report from BE doesn't have any schema, so we have to use regex to extract the plan node id. extension/kettle/impl/src/main/java/org/pentaho/di/trans/steps/dorisstreamloader/load/HttpPutBuilder.java (1 line): - line 106: // TODO: check duplicate key. fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/StructInfo.java (1 line): - line 245: // TODO get exprId to expr map when complex project is ready in join dege fe/fe-core/src/main/java/org/apache/doris/planner/MaterializedViewSelector.java (1 line): - line 209: // index at present.TODO we should better handle it. fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CostBasedRewriteJob.java (1 line): - line 155: // TODO: currently, we do not support execute it more than once. be/src/vec/functions/in.h (1 line): - line 230: //TODO: support other column type fe/fe-core/src/main/java/org/apache/doris/analysis/FloatLiteral.java (1 line): - line 142: // TODO: Here is weird use float to represent TIME type fe/fe-core/src/main/java/org/apache/doris/service/arrowflight/FlightSqlSchemaHelper.java (1 line): - line 160: // TODO there is no timezone in TColumnDesc, so use current timezone. fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadStatistic.java (1 line): - line 109: // TODO: add extra statistics to counters fe/fe-core/src/main/java/org/apache/doris/datasource/hudi/source/HudiPartitionProcessor.java (1 line): - line 99: // TODO: In hive, the specific characters like '=', '/' will be url encoded be/src/util/bit_packing.inline.h (1 line): - line 280: // TODO: this could be optimised further by using SIMD instructions. regression-test/suites/insert_p0/insert_group_commit_with_prepare_stmt.groovy (1 line): - line 91: // TODO: currently if enable_server_side_prepared_statement = true, will not reuse plan fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils134.java (1 line): - line 234: // TODO: register other sub type after Doris support more types. fe/fe-core/src/main/java/org/apache/doris/job/scheduler/JobScheduler.java (1 line): - line 137: // FIXME: why not check RECURRING? fe/fe-core/src/main/java/org/apache/doris/qe/CoordinatorContext.java (1 line): - line 473: // TODO: more ranges? be/src/agent/agent_server.cpp (1 line): - line 240: // TODO check cluster_info here if it is the same with that of heartbeat rpc be/src/cloud/cloud_tablet.cpp (1 line): - line 669: // FIXME: could happen in currently unresolved race conditions cloud/src/meta-service/mem_txn_kv.h (1 line): - line 164: // TODO: min max or and xor cmp_and_clear set_ver_value fe/fe-core/src/main/java/org/apache/doris/transaction/TransactionState.java (1 line): - line 626: // TODO should we add a lock between addTableId, removeTableId and getTableIdList? be/src/runtime/exec_env_init.cpp (1 line): - line 385: // TODO pipeline workload group combie two blocked schedulers. fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/ExtractSingleTableExpressionFromDisjunction.java (1 line): - line 190: //TODO: cache getSlotQualifierAsString() result. be/src/vec/data_types/data_type_number_base.cpp (1 line): - line 93: // TODO: support for Uint128 be/src/vec/core/field.h (1 line): - line 562: return std::strong_ordering::equal; //TODO: throw Exception? be/src/olap/rowset/segment_v2/bloom_filter_index_reader.cpp (1 line): - line 37: // TODO yyq: implement a new once flag to avoid status construct. be/src/http/action/stream_load.cpp (1 line): - line 749: // FIXME find a way to avoid chunked stream load write large WALs fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CopyIntoInfo.java (1 line): - line 270: // TODO support exec params as LoadStmt be/src/olap/tablet_schema.cpp (1 line): - line 1468: // TODO use more efficient impl fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java (1 line): - line 188: // FIXME: support mix usage of `insert into values` and `insert into select` cloud/src/meta-service/mem_txn_kv.cpp (1 line): - line 275: // TODO: figure out what happen if range_get has part of unreadable_keys be/src/util/thread.h (1 line): - line 245: // TODO: would be nice to offer a way to use ptrace() or signals to be/src/glibc-compatibility/musl/powl.c (1 line): - line 520: // TODO: broken implementation to make things compile fe/fe-core/src/main/java/org/apache/doris/planner/HashJoinNode.java (1 line): - line 597: // TODO rownum fe/fe-core/src/main/java/org/apache/doris/analysis/ShowWorkloadGroupsStmt.java (1 line): - line 31: // TODO: not supported yet fe/fe-core/src/main/java/org/apache/doris/analysis/ArithmeticExpr.java (1 line): - line 516: // TODO use max int part + max scale of two operands as result type fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/AddPartitionOp.java (1 line): - line 68: // TODO fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java#addPartition be/src/util/block_compression.cpp (1 line): - line 1018: // TODO: make sure the max_compressed_len for bzip2 be/src/vec/functions/function_dict_get_many.cpp (1 line): - line 37: ///TODO: fe/fe-core/src/main/java/org/apache/doris/rewrite/mvrewrite/MVExprEquivalent.java (1 line): - line 33: * TODO: mvExprEqual(queryexpr, mvColumnExprList) be/src/vec/data_types/data_type_quantilestate.h (1 line): - line 73: // TODO: fe/fe-core/src/main/java/org/apache/doris/journal/JournalEntity.java (1 line): - line 962: // FIXME: support cloud related operation types. regression-test/suites/nereids_tpch_p0/tpch/topn-filter.groovy (1 line): - line 150: // TODO: support latter, push topn to right outer join fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/Predicates.java (1 line): - line 221: // TODO Residual predicates compensate, simplify implementation currently. fe/fe-core/src/main/java/org/apache/doris/qe/SessionVariable.java (1 line): - line 3707: // TODO: support other sink fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/AbstractMaterializedViewRule.java (1 line): - line 783: // TODO: Use set of list? And consider view expr regression-test/suites/nereids_syntax_p0/push_filter_through_window.groovy (1 line): - line 50: // TODO open qt_3 after fix bug: cannot choose best plan when there are more than one windowExpression fe/fe-core/src/main/java/org/apache/doris/planner/SortNode.java (1 line): - line 354: // FIXME this is a bottom line solution for wrong nullability of resolvedTupleExprs fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java (1 line): - line 1108: // TODO: One conner case. Last analyze row count is 0, but actually it's not 0 because isEmptyTable waiting. be/src/olap/rowset/segment_v2/segment.cpp (1 line): - line 603: // TODO support normal column type be/src/common/multi_version.h (1 line): - line 56: /// TODO: replace atomic_load/store() on shared_ptr (which is deprecated as of C++20) by C++20 std::atomic. be/src/vec/functions/function.h (1 line): - line 192: /// TODO: make const be/src/cloud/cloud_schema_change_job.cpp (1 line): - line 299: // TODO if support VerticalSegmentWriter, also need to handle cluster key primary key index fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Analyzer.java (1 line): - line 62: * TODO: revisit the interface after subquery analysis is supported. be/src/vec/aggregate_functions/aggregate_function_count.h (1 line): - line 185: // TODO: Maybe AggregateFunctionCountNotNullUnary should be a subclass of AggregateFunctionCount fe/fe-core/src/main/java/org/apache/doris/nereids/rules/implementation/LogicalOlapScanToPhysicalOlapScan.java (1 line): - line 80: // TODO: find a better way to handle both tablet num == 1 and colocate table together in future be/src/vec/data_types/serde/data_type_nullable_serde.cpp (1 line): - line 389: // TODO sanitize data fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowColumnHistogramStatsCommand.java (1 line): - line 172: // TODO: support histogram in the future. fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/MergeSetOperations.java (1 line): - line 49: * TODO: Except need other Rewrite. be/src/vec/data_types/data_type_bitmap.h (1 line): - line 77: // TODO: be/src/olap/block_column_predicate.h (1 line): - line 52: // TODO: support do predicate on Bitmap and ZoneMap, So we can use index of column to do predicate on fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java (1 line): - line 6629: // TODO: does checkpoint need update colocate index ? be/src/vec/exprs/lambda_function/varray_map_function.cpp (1 line): - line 209: // TODO: maybe could create const column, so not insert_many_from when extand data be/src/vec/exec/format/parquet/vparquet_column_reader.cpp (1 line): - line 887: // TODO: support read struct which columns are all missing cloud/src/common/bvars.cpp (1 line): - line 95: // TODO: use mbvar for per instance, https://github.com/apache/brpc/blob/master/docs/cn/mbvar_c++.md be/src/olap/task/index_builder.cpp (1 line): - line 610: // TODO: need to process null data for inverted index fe/fe-core/src/main/java/org/apache/doris/statistics/Histogram.java (1 line): - line 60: // TODO: use thrift fe/fe-common/src/main/java/org/apache/doris/catalog/PrimitiveType.java (1 line): - line 585: // TODO: support and test decimal256? be/src/vec/core/wide_integer.h (1 line): - line 265: // TODO: Integral regression-test/java-udf-src/src/main/java/org/apache/doris/udf/IPV6TypeTest.java (1 line): - line 62: // TODO Auto-generated catch block fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByUnique.java (1 line): - line 29: // TODO: support distinct -> LOJ fe/fe-core/src/main/java/org/apache/doris/planner/DataPartition.java (1 line): - line 44: * TODO: better name? just Partitioning? be/src/olap/task/engine_clone_task.cpp (1 line): - line 485: // TODO: missing version composed of singleton delta. fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/TimestampArithmetic.java (1 line): - line 44: * TODO: we need to rethink this, and maybe need to add a new type of Interval then implement IntervalLiteral as others fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/Plan.java (1 line): - line 61: // TODO: avoid to use getLogicalProperties() be/src/util/hash_util.hpp (1 line): - line 59: // TODO: crc32 hashes with different seeds do not result in different hash functions. regression-test/suites/nereids_p0/insert_into_table/no_partition.groovy (1 line): - line 19: // TODO: reopen this case in conf, currently delete fill failed fe/fe-core/src/main/java/org/apache/doris/cloud/transaction/CloudGlobalTransactionMgr.java (1 line): - line 1995: // TODO Auto-generated method stub fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/ColumnDefinition.java (1 line): - line 53: * TODO: complex types will not work, we will support them later. gensrc/proto/internal_service.proto (1 line): - line 515: // TODO: CHECK ALL TYPE be/src/vec/functions/function_timestamp.cpp (1 line): - line 1159: //TODO: add function below when we fixed be-ut. be/src/util/jni-util.cpp (1 line): - line 315: //TODO: ADD EXCEPTION CHECK. be/src/pipeline/exec/file_scan_operator.cpp (1 line): - line 124: // TODO: Push conjuncts down to reader. fe/fe-core/src/main/java/org/apache/doris/resource/TagManager.java (1 line): - line 53: // TODO Auto-generated constructor stub fe/fe-core/src/main/java/org/apache/doris/transaction/TransactionEntry.java (1 line): - line 203: // FIXME: support mix usage of `insert into values` and `insert into select` be/src/http/action/http_stream.cpp (1 line): - line 365: // FIXME find a way to avoid chunked stream load write large WALs be/src/pipeline/task_scheduler.cpp (1 line): - line 145: //TODO: use a better enclose to abstracting these be/src/runtime/runtime_query_statistics_mgr.cpp (1 line): - line 47: // TODO: Currently this function is only used to report profile. be/src/http/action/pprof_actions.cpp (1 line): - line 269: // TODO: Implement symbol resolution. Without this, the binary needs to be passed cloud/src/recycler/checker.cpp (1 line): - line 207: int num_threads = config::recycle_concurrency; // FIXME: use a new config entry? be/src/pipeline/pipeline_tracing.cpp (1 line): - line 152: //TODO: if long time, per timeslice per file be/src/olap/rowset/beta_rowset.cpp (1 line): - line 221: // TODO should we close and remove all segment reader first? be/src/common/config.h (1 line): - line 426: // TODO delete it. Divided into Data page, Index page, pk index page be/src/vec/io/var_int.h (1 line): - line 112: // TODO: do real implement in the future be/src/vec/data_types/serde/data_type_decimal_serde.cpp (1 line): - line 202: // TODO check precision fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsCache.java (1 line): - line 140: // TODO: Need to use the real index id in statistics table in later version. be/src/vec/functions/least_greast.cpp (1 line): - line 188: //TODO: maybe could use hashmap to save column data, not use for loop ervey time to test equals. fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/AdjustNullable.java (1 line): - line 308: // TODO: remove if statement after we ensure be constant folding do not change expr type at all. fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java (1 line): - line 85: * TODO: Change the package name into catalog. fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HivePartitionStatistics.java (1 line): - line 70: // TODO merge columnStatisticsMap fe/fe-core/src/main/java/org/apache/doris/analysis/InPredicate.java (1 line): - line 64: // TODO we do not support codegen for CHAR and the In predicate must be fe/fe-core/src/main/java/org/apache/doris/common/util/Util.java (1 line): - line 570: // TODO: Add TEXTFILE to TFileFormatType to Support hive text file format. fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticInfo.java (1 line): - line 121: * TODO: Rethink we really need to use Analyticinfo be subclass of AggregateInfoBase, fe/fe-core/src/main/java/org/apache/doris/transaction/DatabaseTransactionMgr.java (1 line): - line 2674: // TODO should use sub transaction load indexes be/src/service/internal_service.cpp (1 line): - line 668: // TODO: the logic seems useless, cancel only return Status::OK. remove it be/src/vec/exprs/table_function/vexplode_split.cpp (1 line): - line 91: // TODO: use the function to be better string_view/StringRef split fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java (1 line): - line 837: // TODO: Supports for `distinct` fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/InferJoinNotNull.java (1 line): - line 43: // TODO: maybe consider ANTI? fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/UnequalPredicateInfer.java (1 line): - line 256: // TODO: be/src/common/object_pool.h (1 line): - line 38: // TODO: Consider using a lock-free structure. be/src/util/thrift_util.h (1 line): - line 152: // TODO: Find the right exception for 0 bytes fe/fe-core/src/main/java/org/apache/doris/analysis/MaxLiteral.java (1 line): - line 53: // TODO: complete this type be/src/glibc-compatibility/memcpy/memcpy_x86_64.cpp (1 line): - line 91: * TODO: Add self-tuning memcpy with bayesian bandits algorithm for large sizes. be/src/pipeline/pipeline_fragment_context.h (1 line): - line 239: // TODO: remove the _sink and _multi_cast_stream_sink_senders to set both fe/fe-core/src/main/java/org/apache/doris/tablefunction/PartitionValuesTableValuedFunction.java (1 line): - line 170: // TODO: support other type of sys tables fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadHandler.java (1 line): - line 103: // TODO: add a more sophisticated algorithm to select backend be/src/vec/exec/format/parquet/delta_bit_pack_decoder.h (1 line): - line 361: // TODO: read corrupted files written with bug(PARQUET-246). _last_value should be set fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalOlapScan.java (1 line): - line 241: // TODO: more efficient way to ignore the ignorable data maintaining be/src/vec/aggregate_functions/aggregate_function_uniq.h (1 line): - line 71: // TODO: replace SipHash with xxhash to speed up fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveMetaStoreCache.java (1 line): - line 301: // TODO: more info? be/src/util/perf_counters.h (1 line): - line 46: // TODO: Expect PerfCounters to be refactored to ProcessState. fe/fe-core/src/main/java/org/apache/doris/catalog/ScalarFunction.java (1 line): - line 133: * TODO: this needs to be kept in sync with what generates the be operator be/src/util/metrics.cpp (1 line): - line 172: // TODO: Use std::string concate for better performance. fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/MergeProjects.java (1 line): - line 42: // TODO modify ExtractAndNormalizeWindowExpression to handle nested window functions be/src/io/fs/file_handle_cache.h (1 line): - line 110: /// TODO: The cache should also evict file handles more aggressively if the file handle's be/src/vec/data_types/data_type_struct.cpp (1 line): - line 159: // TODO: should we support insert default field value when actual field number is less than fe/fe-core/src/main/java/org/apache/doris/common/profile/RuntimeProfile.java (1 line): - line 62: // TODO: 这里维护性太差了 fe/fe-core/src/main/java/org/apache/doris/planner/PredicatePushDown.java (1 line): - line 136: // TODO: (minghong) here is a bug. For example, this is a left join, we cannot infer "t2.id = 1" be/src/vec/functions/function_date_or_datetime_computation.h (1 line): - line 453: //TODO: now we use switch and if to do check in runtime. be/src/runtime/descriptors.h (1 line): - line 439: // TODO: this needs to differentiate between tuples contained in row be/src/vec/exec/jni_connector.cpp (1 line): - line 105: // TODO: This logic need to be changed. be/src/udf/udf.h (1 line): - line 61: /// TODO: not yet implemented fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/IndexDefinition.java (1 line): - line 141: // TODO add colType.isAggState() fe/fe-core/src/main/java/org/apache/doris/common/proc/PartitionsProcDir.java (1 line): - line 183: // TODO: we should change the order of loops to speed up. use filters to filter column value. be/src/util/bitmap_value.h (1 line): - line 1984: // TODO limit string size to avoid OOM regression-test/suites/insert_p0/insert_group_commit_into_max_filter_ratio.groovy (1 line): - line 205: // TODO should throw exception? be/src/util/byte_stream_split.cpp (1 line): - line 100: // TODO: optimize using simd: https://github.com/apache/arrow/pull/38529 fe/fe-core/src/main/java/org/apache/doris/statistics/TableFunctionStatsDerive.java (1 line): - line 30: // TODO the rowCount = child rowCount * rowCount of list column fe/fe-core/src/main/java/org/apache/doris/qe/MysqlConnectProcessor.java (1 line): - line 165: // TODO set real origin statement be/src/vec/exec/scan/scanner_context.h (1 line): - line 261: // TODO: Add implementation of runtime_info_feed_back cloud/src/meta-service/codec.cpp (1 line): - line 89: * FIXME: use entire 8-bytes fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/CaseWhenToIf.java (1 line): - line 58: // TODO: traverse expr in CASE WHEN / If. fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalCatalog.java (1 line): - line 61: // TODO If the storage environment does not support Kerberos (such as s3), be/src/service/http_service.cpp (1 line): - line 152: //TODO: add query GET interface fe/fe-core/src/main/java/org/apache/doris/analysis/CopyStmt.java (1 line): - line 206: // TODO support exec params as LoadStmt be/src/util/jni-util.h (1 line): - line 99: // TODO: we need a heuristic strategy to increase buffer size for variable-size output. fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Group.java (1 line): - line 350: // TODO: dedup? regression-test/suites/nereids_rules_p0/mv/single_table_without_agg/single_table_without_aggregate.groovy (1 line): - line 24: // TODO remove this variable after mv rewrite support defer materialized nodes fe/fe-core/src/main/java/org/apache/doris/plsql/functions/DorisFunctionRegistry.java (1 line): - line 277: // TODO support packageName fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/TableCollectAndHookInitializer.java (1 line): - line 32: * TODO: revisit the interface after subquery analysis is supported. be/src/pipeline/exec/datagen_operator.cpp (1 line): - line 96: // TODO: use runtime filter to filte result block, maybe this node need derive from vscan_node. be/src/util/url_coding.cpp (1 line): - line 42: ///TODO: In the past, there was an error here involving the modulus operation on a char (signed number). fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowTableCommand.java (1 line): - line 200: // TODO: using where can only show two columns, maybe this is a bug? be/src/runtime/workload_management/io_context.h (1 line): - line 126: // TODO: get io throttle from workload group fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostV1.java (1 line): - line 38: // TODO: fix stats be/src/olap/rowset/segment_v2/bitmap_index_reader.cpp (1 line): - line 36: // TODO yyq: implement a new once flag to avoid status construct. fe/fe-core/src/main/java/org/apache/doris/common/Status.java (1 line): - line 75: // TODO add a unit test to ensure all TStatusCode is subset of PStatus error code. fe/be-java-extensions/java-common/src/main/java/org/apache/doris/common/classloader/ScannerLoader.java (1 line): - line 63: // TODO: add thread pool to load each scanner be/src/olap/task/engine_storage_migration_task.h (1 line): - line 71: // TODO: hkp be/src/common/factory_creator.h (1 line): - line 36: // TODO try to allow make_unique fe/fe-core/src/main/java/org/apache/doris/analysis/MatchPredicate.java (1 line): - line 171: // TODO: Calculate selectivity regression-test/suites/shape_check/tpcds_sf100/noStatsRfPrune/query6.groovy (1 line): - line 41: // TODO: uncomment following line to get better shape be/src/vec/data_types/data_type_number.cpp (1 line): - line 31: /// TODO: Currently, only integers have been considered; other types will be added later. be/src/pipeline/exec/group_commit_scan_operator.cpp (1 line): - line 58: // TODO: Push conjuncts down to reader. fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/visitor/ExpressionLineageReplacer.java (1 line): - line 127: * TODO Collect named expression by targetTypes, tableIdentifiers gensrc/proto/types.proto (1 line): - line 38: // TODO: Model column stats for struct fields. be/src/vec/functions/function_helpers.cpp (1 line): - line 100: // TODO: only support match function, rethink the logic be/src/olap/rowset/segment_v2/inverted_index_writer.cpp (1 line): - line 646: //TODO: get memory size of inverted index fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromCommand.java (1 line): - line 218: // TODO this will delete all rows, however storage layer do not support true predicate now fe/fe-core/src/main/java/org/apache/doris/nereids/processor/post/CommonSubExpressionCollector.java (1 line): - line 62: // TODO: could not extract common expression when expression contains same lambda expression fe/fe-core/src/main/java/org/apache/doris/DorisFE.java (1 line): - line 185: // TODO: remove this after we remove ApacheHttpClient cloud/src/main.cpp (1 line): - line 61: // FIXME: removing the pidfile may result in missing pidfile fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/BatchInsertIntoTableCommand.java (1 line): - line 202: // TODO: update error msg be/src/vec/data_types/serde/data_type_jsonb_serde.cpp (1 line): - line 262: // TODO improve performance fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownFilterThroughProject.java (1 line): - line 63: // TODO maybe we could remove this rule, because translator already support filter(limit(project)) fe/fe-core/src/main/java/org/apache/doris/task/CreateReplicaTask.java (1 line): - line 94: // TODO should unify the naming of v1(alpha rowset), v2(beta rowset), it is very confused to read code fe/fe-core/src/main/java/org/apache/doris/statistics/StatisticsCleaner.java (1 line): - line 278: // TODO: Need to check external database and table exist or not. But for now, we only check catalog. fe/fe-core/src/main/java/org/apache/doris/nereids/processor/pre/TurnOffPageCacheForInsertIntoSelect.java (1 line): - line 35: * TODO turnoff pagecache for insert into select be/src/vec/common/string_ref.cpp (1 line): - line 44: // TODO: rewrite in AVX2 fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/ArrayAvg.java (1 line): - line 70: // TODO use this computePrecision if be support dynamic scale fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java (1 line): - line 140: // TODO support it fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveUtil.java (1 line): - line 302: // TODO: add doc, just support doris type be/src/util/date_func.cpp (1 line): - line 90: /// TODO: Why is the time type stored as double? Can we directly use int64 and remove the time limit? fe/fe-core/src/main/java/org/apache/doris/httpv2/meta/MetaService.java (1 line): - line 254: * TODO: Still need to lock ClusterInfoService to prevent add or drop Backends be/src/pipeline/exec/es_scan_operator.h (1 line): - line 56: // FIXME: non-static data member '_rows_read_counter' of 'EsScanLocalState' shadows member inherited from type 'ScanLocalStateBase' be/src/pipeline/exec/partitioned_hash_join_sink_operator.cpp (1 line): - line 437: /// TODO: DO NOT execute build exprs twice(when partition and building hash table) be/src/runtime/load_stream_writer.cpp (1 line): - line 126: // TODO: IOBuf to Slice fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostWeight.java (1 line): - line 84: //TODO: add it in session variable be/src/vec/exprs/vexpr.h (1 line): - line 451: // TODO: this is a temporary solution, the best solution is to produce the be/src/olap/options.cpp (1 line): - line 65: // TODO: should be a general util method be/src/olap/rowset/segment_v2/zone_map_index.h (1 line): - line 172: // TODO: yyq, we shoud remove file_reader from here. fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownJoinOtherCondition.java (1 line): - line 63: // TODO: we may need another rule to handle on true or on false condition be/src/vec/columns/column_array.h (1 line): - line 43: //TODO: use marcos below to decouple array function calls be/src/util/disk_info.h (1 line): - line 36: // TODO: datanode information not implemented be/src/olap/schema.h (1 line): - line 181: // TODO: memory size of Schema cannot be accurately tracked. be/src/vec/functions/math.cpp (1 line): - line 450: // TODO: Now math may cause one thread compile time too long, because the function in math cloud/src/meta-service/meta_service_resource.cpp (1 line): - line 3709: // TODO check if job is timeout regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteCluster.groovy (1 line): - line 308: // TODO: need escape white space in config be/src/vec/data_types/serde/data_type_number_serde.cpp (1 line): - line 128: // TODO: support for Uint128 fe/fe-common/src/main/java/org/apache/doris/catalog/ScalarType.java (1 line): - line 110: // TODO: we could use that to store DECIMAL(8,*), indicating a decimal fe/fe-core/src/main/java/org/apache/doris/common/proc/LoadJobProcNode.java (1 line): - line 45: // TODO get results from LoadManager. Before do that, update implement of LoadManager:record detail info fe/fe-core/src/main/java/org/apache/doris/fs/TransactionScopeCachingDirectoryListerFactory.java (1 line): - line 32: //TODO use a cache key based on Path & SchemaTableName and iterate over the cache keys be/src/pipeline/exec/hashjoin_build_sink.h (1 line): - line 195: // TODO: Need to test the for loop. break may better be/src/vec/aggregate_functions/aggregate_function_foreach.h (1 line): - line 54: * TODO Allow variable number of arguments. be/src/olap/rowset/segment_v2/ngram_bloom_filter.h (1 line): - line 54: // FIXME: non-static data member '_size' of 'NGramBloomFilter' shadows member inherited from type 'BloomFilter' cloud/src/common/util.cpp (1 line): - line 25: // FIXME: we should not rely other modules that may rely on this common module be/src/vec/exec/scan/olap_scanner.cpp (1 line): - line 276: // TODO: If a new runtime filter arrives after `_conjuncts` move to `_common_expr_ctxs_push_down`, fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyzeProperties.java (1 line): - line 34: // TODO: Remove map be/src/olap/compaction.cpp (1 line): - line 908: // TODO: inverted_index_path fe/fe-core/src/main/java/org/apache/doris/nereids/properties/DistributionSpec.java (1 line): - line 43: // TODO:maybe we need to new a LogicalProperties or just do not set logical properties for this node. fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindRelation.java (1 line): - line 499: // TODO: use a good to do this, such as eliminate UnboundResultSink be/src/vec/functions/functions_multi_string_position.cpp (1 line): - line 212: // TODO: check if the order of loop is best. The large data may make us writing across the line which size out of L2 cache. regression-test/suites/shape_check/tpcds_sf100/no_stats_shape/query6.groovy (1 line): - line 41: // TODO: uncomment following line to get better shape regression-test/suites/variant_github_events_nonConcurrent_p2/sql/howHasTheListOfTopRepositoriesChangedOverTheYears7.sql (1 line): - line 1: -- FIXME: UNSTABLE fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalMetaIdMgr.java (1 line): - line 39: * TODO: remove InitCatalogLog and InitDatabaseLog, manage external meta ids at ExternalMetaIdMgr fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateStageCommand.java (1 line): - line 149: // TODO: Server-Side Request Forgery Check is still need? be/src/pipeline/exec/analytic_sink_operator.cpp (1 line): - line 379: //TODO need check this logical??? fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/OlapInsertExecutor.java (1 line): - line 117: // TODO refactor this to avoid call legacy planner's function be/src/olap/types.h (1 line): - line 1471: // TODO support schema change fe/fe-core/src/main/java/org/apache/doris/catalog/DatabaseIf.java (1 line): - line 42: * TODO: be/src/olap/rowset/beta_rowset_writer.h (1 line): - line 243: // TODO rowset Zonemap fe/fe-core/src/main/java/com/amazonaws/glue/catalog/util/ExpressionHelper.java (1 line): - line 51: // TODO "hook" into Hive logging (hive or hive.metastore) be/src/olap/rowset/segment_v2/bloom_filter_index_writer.cpp (1 line): - line 299: // TODO currently we don't support bloom filter index for tinyint/hll/float/double be/src/olap/memtable_flush_executor.cpp (1 line): - line 192: /// FIXME: support UT fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/JoinType.java (1 line): - line 57: // TODO: the right-semi/right-anti/right-outer join is not derived in paper. We need to derive them be/src/runtime/snapshot_loader.cpp (1 line): - line 1224: // FIXME: the below logic will demage the tablet files if failed in the middle. docker/thirdparties/docker-compose/sqlserver/sqlserver.yaml.tpl (1 line): - line 49: # TODO set a flag so that this is only done once on creation, regression-test/plugins/plugin_ranger.groovy (1 line): - line 85: // TODO: check if policy is effective by API be/src/vec/core/sort_block.cpp (1 line): - line 85: // TODO: ColumnSorter should be constructed only once. be/src/util/block_compression.h (1 line): - line 90: // TODO: refactor code as CompressionOutputStream and CompressionInputStream fe/fe-core/src/main/java/org/apache/doris/planner/OlapScanNode.java (1 line): - line 1465: // FIXME: this is not a good check, we can not guarantee that the predicate we check can truly fe/fe-core/src/main/java/org/apache/doris/transaction/GlobalTransactionMgr.java (1 line): - line 451: // FIXME: this is a bug, should not happen be/src/vec/common/memcmp_small.h (1 line): - line 76: * TODO Check if the compiler can optimize previous function when the caller pass identical sizes. fs_brokers/apache_hdfs_broker/src/main/java/org/apache/doris/broker/hdfs/FileSystemManager.java (1 line): - line 328: // TODO get this param from properties be/src/io/fs/file_meta_cache.h (1 line): - line 41: // TODO: implement fe/fe-core/src/main/java/org/apache/doris/catalog/TableIf.java (1 line): - line 495: // TODO: Each tableIf should impl it by itself. fe/fe-core/src/main/java/org/apache/doris/analysis/AnalyticExpr.java (1 line): - line 517: // TODO: remove this check when the backend can handle non-constants be/src/runtime/fragment_mgr.h (1 line): - line 92: // TODO: Now only the cancel worker do the GC the _query_ctx_map. each query must be/src/vec/runtime/vdata_stream_recvr.cpp (1 line): - line 491: // TODO: log error msg fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DescribeCommand.java (1 line): - line 266: // TODO: describe tbl partition p1 can not execute, should fix it. fe/fe-core/src/main/java/org/apache/doris/analysis/StatementBase.java (1 line): - line 271: * TODO: Introduce this same convention for Exprs, possibly by moving clone()/reset() be/src/util/string_parser.hpp (1 line): - line 227: // TODO: Investigate using intrinsics to speed up the slow strtod path. regression-test/suites/variant_log_data_p2/load.groovy (1 line): - line 95: // TODO add test case that some certain columns are materialized in some file while others are not materilized(sparse) fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalCTEConsumer.java (1 line): - line 51: //TODO: find cte producer and propagate its functional dependencies fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisLexer.g4 (1 line): - line 73: // TODO: add a doc to list reserved words fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/LogicalSubQueryAliasToLogicalProject.java (1 line): - line 31: * TODO: refactor group merge strategy to support the feature above fe/fe-core/src/main/java/org/apache/doris/planner/FileLoadScanNode.java (1 line): - line 260: // TODO: This api is for load job only. Will remove it later. be/src/vec/data_types/serde/data_type_number_serde.h (1 line): - line 282: // TODO: Casting unsigned integers to signed integers may result in loss of data precision. be/src/pipeline/task_queue.h (1 line): - line 120: // TODO combine these methods to `push_back(task, core_id = -1)` fe/fe-core/src/main/java/org/apache/doris/alter/IndexChangeJob.java (1 line): - line 423: // TODO maybe delete already build index files be/src/vec/sink/writer/vtablet_writer.cpp (1 line): - line 1631: // TODO need to be improved fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HiveColumnStatistics.java (1 line): - line 29: // TODO add hive column statistics be/src/olap/delete_handler.cpp (1 line): - line 499: // // TODO: need refactor design and code to use more version delete and more column delete to filter zone page. fe/fe-core/src/main/java/org/apache/doris/nereids/exceptions/AnalysisException.java (1 line): - line 73: // TODO: support ErrorCode be/src/vec/exec/scan/file_scanner.h (1 line): - line 89: // TODO: cast input block columns type to string. gensrc/thrift/PlanNodes.thrift (1 line): - line 855: // TODO: remove 7 and 8 in the version after the version include projection on ExecNode be/src/vec/columns/column_string.h (1 line): - line 466: // TODO: Rethink we really need to update the string_size? fe/fe-core/src/main/java/org/apache/doris/nereids/properties/OrderSpec.java (1 line): - line 35: // TODO: use a OrderKey with ExprId list to instead of current orderKeys for easy to use. be/src/olap/rowset/segment_v2/zone_map_index.cpp (1 line): - line 145: // TODO yyq: implement a new once flag to avoid status construct. be/src/olap/rowset/segment_v2/ordinal_page_index.cpp (1 line): - line 74: // TODO yyq: implement a new once flag to avoid status construct. be/src/olap/memtable.cpp (1 line): - line 83: // TODO: Support ZOrderComparator in the future fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/SplitMultiDistinct.java (1 line): - line 215: // TODO with source repeat aggregate need to be supported in future fe/fe-core/src/main/java/org/apache/doris/planner/OlapTableSink.java (1 line): - line 948: // TODO: support real MaxLiteral in thrift. fe/fe-core/src/main/java/org/apache/doris/clone/TabletScheduler.java (1 line): - line 1356: // TODO: too ugly, remove balance_be_then_disk later. fe/fe-core/src/main/java/org/apache/doris/nereids/stats/StatsMathUtil.java (1 line): - line 62: // TODO: add more protection at other stats estimation fe/fe-core/src/main/java/org/apache/doris/dictionary/Dictionary.java (1 line): - line 61: // TODO: maybe dictionary should also be able to be created in external catalog. fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/DateTimeLiteral.java (1 line): - line 198: // TODO: check and do fast parse like fastParseDate be/src/vec/functions/function_date_or_datetime_computation.cpp (1 line): - line 71: //TODO: remove the inter-layer CurrentDateTimeImpl be/src/olap/rowset/segment_v2/page_builder.h (1 line): - line 60: // TODO make sure vals is naturally-aligned to its type so that impls can use aligned load be/src/vec/common/sort/sorter.h (1 line): - line 50: // TODO: now we only use merge sort regression-test/suites/insert_p0/transaction/txn_insert.groovy (1 line): - line 466: // TODO find a way to check be txn_manager is also cleaned be/src/olap/segment_loader.h (1 line): - line 107: // TODO: Currently we use the number of rowset as the cache capacity. be/src/pipeline/task_queue.cpp (1 line): - line 94: // TODO other efficient lock? e.g. if get lock fail, return null_ptr fe/fe-core/src/main/java/org/apache/doris/nereids/cost/CostCalculator.java (1 line): - line 33: // TODO: memory cost and network cost should be estimated by byte size. fe/fe-core/src/main/java/org/apache/doris/statistics/ColumnStatistic.java (1 line): - line 128: // TODO: use thrift be/src/runtime/client_cache.cpp (1 line): - line 88: // TODO: Thrift TBufferedTransport cannot be re-opened after Close() because it does fe/fe-core/src/main/java/org/apache/doris/mysql/MysqlProto.java (1 line): - line 188: // TODO: client return capability can not support fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateDictionaryInfo.java (1 line): - line 208: columnDef.setOriginColumn(new Column(sourceColumn)); // copy to avoid changing. TODO: consider SC fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/SubExprAnalyzer.java (1 line): - line 391: // TODO support later fe/fe-core/src/main/java/org/apache/doris/alter/MaterializedViewHandler.java (1 line): - line 1528: // TODO: convert alterClauses to alterSystemCommands for mv fe/fe-core/src/main/java/org/apache/doris/common/TreeNode.java (1 line): - line 91: // TODO: the semantics of this function are very strange. contains() fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/EliminateOuterJoin.java (1 line): - line 90: * TODO: is_not_null can also be inferred from A < B and so on cloud/src/meta-service/keys.h (1 line): - line 300: // TODO: add a family of decoding functions if needed fe/fe-core/src/main/java/org/apache/doris/service/arrowflight/auth2/FlightCredentialValidator.java (1 line): - line 51: // TODO Add ClientAddress information while creating a Token fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/ConvertAggStateCast.java (1 line): - line 58: // TODO remve it after we refactor mv rewriter to avoid generate Alias in expression fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ComputeSignature.java (1 line): - line 132: // TODO: do not support struct type now cloud/src/meta-service/codec.h (1 line): - line 65: * FIXME: use entire 8-bytes fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRepeat.java (1 line): - line 196: // TODO: this need be supported later be/src/vec/aggregate_functions/aggregate_function_count_by_enum.h (1 line): - line 207: // TODO create a null vector fe/fe-core/src/main/java/org/apache/doris/analysis/TupleDescriptor.java (1 line): - line 284: // TODO: for computed slots, try to come up with stats estimates fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/distribute/worker/job/UnassignedShuffleJob.java (1 line): - line 83: // TODO: check we use nested loop join do right outer / semi / anti join, fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/AggregateParam.java (1 line): - line 33: // TODO: this is a short-term plan to process count(distinct a, b) correctly fe_plugins/trino-converter/src/main/java/org/apache/doris/plugin/dialect/trino/DateDiffFnCallTransformer.java (1 line): - line 61: // TODO: support other date diff granularity be/src/vec/data_types/data_type_hll.h (1 line): - line 72: // TODO: gensrc/thrift/RuntimeProfile.thrift (1 line): - line 38: // TODO: should we make metadata a serializable struct? We only use it to be/src/runtime_filter/runtime_filter_consumer.cpp (1 line): - line 80: // TODO: `VExprContextSPtr` is not need, we should just create an expr. be/src/vec/jsonb/serialize.cpp (1 line): - line 64: // TODO improve performance for checking column in group fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/ExplicitlyCastableSignature.java (1 line): - line 57: // TODO: copy canCastTo method to DataType be/src/io/fs/file_handle_cache.cpp (1 line): - line 36: hdfsCloseFile(_fs, _hdfs_file); // TODO: check return code fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalNestedLoopJoin.java (1 line): - line 152: // // TODO: Maybe we could pull up this to the abstract class in the future. fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/MaterializationContext.java (1 line): - line 316: // TODO clear the fail message by according planId ? fe/fe-core/src/main/java/org/apache/doris/metric/SystemMetrics.java (1 line): - line 32: * TODO: Add them gradually fe/fe-common/src/main/java/org/apache/doris/common/LogUtils.java (1 line): - line 57: // TODO: this custom layout is not used in the codebase, but it is a good example of how to create a custom layout be/src/vec/common/string_ref.h (1 line): - line 185: // FIXME: opening member accessing really damages. be/src/util/expected.hpp (1 line): - line 325: // TODO make a version which works with MSVC 2015 fe/fe-core/src/main/java/org/apache/doris/qe/QeService.java (1 line): - line 59: // TODO: ignore the help module failure temporarily. fe/fe-core/src/main/java/org/apache/doris/analysis/CreateStageStmt.java (1 line): - line 136: // TODO: Server-Side Request Forgery Check is still need? fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownExpressionsInHashCondition.java (1 line): - line 60: *TODO: now t1.a + t2.a = t1.b is not in hashJoinConjuncts. The rule will not handle it. be/src/vec/columns/column_string.cpp (1 line): - line 688: // TODO: recheck to SIMD the code be/src/olap/rowset/rowset.h (1 line): - line 175: // TODO should we rename the method to remove_files() to be more specific? fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/InApplyToJoin.java (1 line): - line 98: // TODO: trick here, because when deep copy logical plan the apply right child cloud/src/meta-service/http_encode_key.cpp (1 line): - line 312: // FIXME: Key not found err be/src/olap/rowset/vertical_beta_rowset_writer.cpp (1 line): - line 182: // TODO if support VerticalSegmentWriter, also need to handle cluster key primary key index fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushFilterInsideJoin.java (1 line): - line 46: // TODO: current just handle cross/inner join. be/src/util/mustache/mustache.h (1 line): - line 26: // signalled (TODO: probably doesn't work in all paths), and evaluates that tag. Output is be/src/runtime/routine_load/data_consumer.cpp (1 line): - line 87: // TODO: set it larger than 0 after we set rd_kafka_conf_set_stats_cb() fe/fe-core/src/main/java/org/apache/doris/fs/TransactionScopeCachingDirectoryLister.java (1 line): - line 57: //TODO use a cache key based on Path & SchemaTableName and iterate over the cache keys cloud/src/common/util.h (1 line): - line 83: // TODO: More bool to_xxx(Xxx* xxx) const; be/src/vec/functions/comparison_equal_for_null.cpp (1 line): - line 79: // TODO: return ColumnConst after function.cpp::default_implementation_for_constant_arguments supports it. fe/fe-core/src/main/java/org/apache/doris/analysis/GroupByClause.java (1 line): - line 186: //TODO add the analysis for grouping and grouping_id functions fe/fe-core/src/main/java/org/apache/doris/planner/IcebergTableSink.java (1 line): - line 76: // TODO: explain partitions be/src/vec/columns/column_decimal.cpp (1 line): - line 225: #if 1 /// TODO: perf test fe/fe-core/src/main/java/org/apache/doris/rewrite/ExtractCommonFactorsRule.java (1 line): - line 64: * TODO: extract wide common factors could generate redundant conjuncts when whole expression could be extracted. fe/fe-core/src/main/java/org/apache/doris/datasource/FileSplitStrategy.java (1 line): - line 21: * TODO: This class would be used later for split assignment. fe/fe-core/src/main/java/org/apache/doris/mtmv/MTMVPlanUtil.java (1 line): - line 143: // TODO reopen it after we support mv on view cloud/src/common/arg_parser.h (1 line): - line 64: * TODO: template arg pack for extension be/src/util/thrift_util.cpp (1 line): - line 41: // TODO: is there a better include to use? be/src/vec/exec/format/parquet/vparquet_column_chunk_reader.cpp (1 line): - line 128: // TODO: remove checking HEADER_PARSED or change name be/src/vec/data_types/data_type_factory.cpp (1 line): - line 495: // TODO add precision and frac be/src/util/disk_info.cpp (1 line): - line 51: // TODO: is there not something better than this? fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/ModifyBackendOp.java (1 line): - line 75: // TODO: fe/fe-core/src/main/java/org/apache/doris/planner/HiveTableSink.java (1 line): - line 81: // TODO: explain partitions fe/fe-core/src/main/java/org/apache/doris/fs/FileSystemFactory.java (1 line): - line 39: // TODO: rename StorageBackend.StorageType fe/fe-core/src/main/java/org/apache/doris/nereids/processor/pre/PullUpSubqueryAliasToCTE.java (1 line): - line 34: * TODO turnoff pipeline for any dml temporary, remove this pre-process when pipeline-sink is ok. be/src/olap/rowset/segment_v2/segment_writer.cpp (1 line): - line 232: // TODO support multiple inverted index be/src/vec/functions/function_ip.h (1 line): - line 393: /// TODO fix this - now parseIPv6/parseIPv4 accept end iterator, so can be parsed in-place fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PullUpJoinFromUnionAll.java (1 line): - line 181: // TODO: may eliminate repeated output slots: fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/SlotReference.java (1 line): - line 54: // TODO: remove this member variable after mv selection is refactored be/src/vec/utils/arrow_column_to_doris_column.cpp (1 line): - line 77: // TODO: convert arrow date type to datev2/datetimev2 fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/CollectSubQueryAlias.java (1 line): - line 37: * TODO: refactor group merge strategy to support the feature above fe/fe-core/src/main/java/org/apache/doris/analysis/Subquery.java (1 line): - line 195: * TODO: Switch to a less restrictive implementation. be/src/vec/aggregate_functions/aggregate_function_uniq_distribute_key.h (1 line): - line 64: // TODO: replace SipHash with xxhash to speed up be/src/olap/parallel_scanner_builder.cpp (1 line): - line 40: // TODO: support to split by key range fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisTaskWrapper.java (1 line): - line 60: // TODO: Do we need a separate AnalysisState here? be/src/runtime/workload_management/cpu_context.h (1 line): - line 63: // TODO: Call workload group method to bind current thread to cgroup be/src/vec/functions/like.h (1 line): - line 54: // TODO: replace with std::string_view when `LikeSearchState.substring_pattern` can be/src/service/point_query_executor.cpp (1 line): - line 575: // TODO reuse mysql_writer fe/be-java-extensions/java-common/src/main/java/org/apache/doris/common/jni/JniScanner.java (1 line): - line 38: // TODO: actually, we can generate the predicate for JNI scanner in FE's planner, be/src/vec/columns/columns_common.cpp (1 line): - line 71: /// TODO Add duff device for tail? be/src/runtime/group_commit_mgr.h (1 line): - line 225: // TODO remove table when unused fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BrokerLoadJob.java (1 line): - line 290: // TODO: 怎么给这些 load job 设置 profile 记录时间 be/src/util/debug_points.h (1 line): - line 190: /// TODO: replace atomic_load/store() on shared_ptr (which is deprecated as of C++20) by C++20 std::atomic. be/src/vec/common/demangle.h (1 line): - line 27: * TODO: Write msvc version (now returns the same string) be/src/util/bitmap.h (1 line): - line 192: /// TODO: investigate perf. be/src/vec/functions/dictionary.h (1 line): - line 178: /// TODO: Add support for more data types ,such as Array, Map, etc. be/src/pipeline/pipeline_tracing.h (1 line): - line 89: std::mutex _tg_lock; //TODO: use an lockfree DS be/src/exprs/hybrid_set.h (1 line): - line 199: // TODO Maybe change void* parameter to template parameter better. be/src/util/url_parser.h (1 line): - line 25: // TODO: For now, our parse_url may not behave exactly like Hive be/src/olap/rowset/segment_v2/binary_dict_page.cpp (1 line): - line 49: // TODO: the data page builder type can be created by Factory according to user config be/src/olap/tablet_meta.cpp (1 line): - line 1425: // FIXME: do we need a mutex here to get rid of duplicated initializations fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateTableCommand.java (1 line): - line 204: // TODO: refactor it with normal error process. fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java (1 line): - line 1262: // TODO: implement this while statistics finished related work. be/src/vec/data_types/serde/data_type_array_serde.cpp (1 line): - line 261: // TODO this is slow should improve performance be/src/vec/exprs/table_function/vexplode_bitmap.cpp (1 line): - line 93: //FIXME: use ColumnComplex instead be/src/vec/common/allocator.h (1 line): - line 23: // TODO: Readable fe/fe-core/src/main/java/org/apache/doris/rewrite/FoldConstantsRule.java (1 line): - line 75: * TODO: Expressions fed into this rule are currently not required to be analyzed regression-test/suites/nereids_syntax_p0/mv/newMv/multi_slot6.groovy (1 line): - line 72: // FIXME: the mv selector maybe select base table forever when exist multi mv, fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java (1 line): - line 1445: // TODO implement this function be/src/util/jsonb_writer.h (1 line): - line 318: // TODO: here changed length to uint64_t, as some api also need changed, But the thirdparty api is uint_32t be/src/vec/exec/jni_connector.h (1 line): - line 165: // FIXME: it can not handle decimal type correctly. be/src/util/cpu_info.cpp (1 line): - line 152: // TODO: is there a more robust way to do this, such as fe/be-java-extensions/java-common/src/main/java/org/apache/doris/common/jni/utils/JniUtil.java (1 line): - line 125: // TODO: avoid creating deserializer for each query? be/src/vec/functions/array/function_array_filter.cpp (1 line): - line 67: //TODO: maybe need optimize not convert fe/fe-core/src/main/java/org/apache/doris/planner/JoinCostEvaluation.java (1 line): - line 87: * TODO: take existing partition of input fragments into account to avoid unnecessary repartitioning be/src/vec/functions/function_dict_get.cpp (1 line): - line 32: ///TODO: be/src/olap/rowset/segment_v2/segment_iterator.h (1 line): - line 211: // TODO: Fix Me be/src/util/os_util.h (1 line): - line 31: // TODO: Get stats for parent process. fe/fe-core/src/main/java/org/apache/doris/nereids/util/ExpressionUtils.java (1 line): - line 859: // TODO: Add more injective functions be/src/pipeline/exec/hashjoin_build_sink.cpp (1 line): - line 298: // TODO: opt the column is const be/src/olap/rowset/segment_v2/hierarchical_data_reader.h (1 line): - line 214: // TODO select v:b -> v.b / v.b.c but v.d maybe in v fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/DictionaryColumnDefinition.java (1 line): - line 47: // TODO: consider of source table's schema change be/src/glibc-compatibility/memcpy/memcpy_aarch64.cpp (1 line): - line 111: * TODO: Add self-tuning memcpy with bayesian bandits algorithm for large sizes. be/src/vec/aggregate_functions/aggregate_function_orthogonal_bitmap.h (1 line): - line 72: // TODO: rethink here we really need to do a virtual function call be/src/vec/columns/column_dictionary.h (1 line): - line 108: // TODO: Make dict memory usage more precise fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/join/JoinCommute.java (1 line): - line 124: // TODO: tmp way to judge bottomJoin fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/cascades/CostAndEnforcerJob.java (1 line): - line 374: // TODO: need to implement this method fe/fe-core/src/main/java/org/apache/doris/rewrite/RewriteFromUnixTimeRule.java (1 line): - line 108: // TODO: from_unixtime(col, format) needs to be processed carefully, now only rewrite from_unixtime(col) fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyBackendClause.java (1 line): - line 76: // TODO: fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/PredicatesSplitter.java (1 line): - line 39: * TODO support complex predicate split fe/fe-core/src/main/java/org/apache/doris/planner/OriginalPlanner.java (1 line): - line 176: // TODO chenhao16 , no used materialization work be/src/util/runtime_profile.cpp (1 line): - line 196: // TODO: Is nodes.info_strings always a superset of be/src/glibc-compatibility/musl/lgammal.c (1 line): - line 323: // TODO: broken implementation to make things compile fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalProject.java (1 line): - line 143: // TODO: should add exprId for UnBoundStar and BoundStar for equality comparison regression-test/suites/variant_p0/mv/multi_slot.groovy (1 line): - line 101: // // FIXME: the mv selector maybe select base table forever when exist multi mv, fe/spark-dpp/src/main/java/org/apache/doris/load/loadv2/dpp/DorisRangePartitioner.java (1 line): - line 59: // TODO: optimize this by use binary search fe/fe-core/src/main/java/org/apache/doris/nereids/load/NereidsLoadScanProvider.java (1 line): - line 445: // TODO: check if it's OK to remove setType be/src/util/perf_counters.cpp (1 line): - line 410: // TODO: these don't work reliably and aren't that useful. Turn them off. be/src/util/simd/bits.h (1 line): - line 199: // TODO: compare with different SIMD implements be/src/exprs/json_functions.cpp (1 line): - line 311: // TODO support [*] which idex == -2 fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/SetSessionVarOp.java (1 line): - line 145: // TODO delete this method after removing dependence of SetVar in VariableMgr be/src/olap/tablet_reader.cpp (1 line): - line 462: //TODO:check the valid of start_key and end_key.(eg. start_key <= end_key) fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushDownFilterThroughJoin.java (1 line): - line 106: // TODO: predicate slotReference should be not nullable. fe/fe-core/src/main/java/org/apache/doris/nereids/stats/ColumnStatsAdjustVisitor.java (1 line): - line 85: // TODO: handle other data types fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/physical/PhysicalOlapScan.java (1 line): - line 141: // TODO: more efficient way to ignore the ignorable data maintaining fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalLoadProject.java (1 line): - line 142: // TODO: should add exprId for UnBoundStar and BoundStar for equality comparison fe/fe-core/src/main/java/org/apache/doris/statistics/StatsDeriveResult.java (1 line): - line 38: // TODO: Should we use immutable type for this field? be/src/common/elf.cpp (1 line): - line 225: /// TODO buffer overflow is possible, we may need to check strlen. fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/AbstractPlan.java (1 line): - line 253: // TODO: use bound()? fe/fe-core/src/main/java/org/apache/doris/statistics/ColStatsMeta.java (1 line): - line 45: // TODO: For column that manually analyzed, we should use same analyze method as user specified. regression-test/suites/external_table_p0/paimon/paimon_timestamp_types.groovy (1 line): - line 113: // TODO: be/src/vec/exec/format/parquet/vparquet_group_reader.h (1 line): - line 62: // TODO: we need to determine it by test. regression-test/java-udf-src/src/main/java/org/apache/doris/udf/IPV4TypeTest.java (1 line): - line 62: // TODO Auto-generated catch block regression-test/suites/nereids_p0/compress_materialize/compress_materialize.groovy (1 line): - line 87: // TODO: RF targets on compressed_materialze column is broken be/src/util/stack_util.h (1 line): - line 51: // TODO: fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/PartitionPruner.java (1 line): - line 258: //TODO: we keep default partition because it's too hard to prune it, we return false in canPrune(). fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/joinorder/hypergraph/node/StructInfoNode.java (1 line): - line 135: // TODO: Note mv can be in logicalExpression, how can we choose it regression-test/suites/nereids_syntax_p0/mv/newMv/dup_mv_plus.groovy (1 line): - line 60: TODO: The selection of the current materialized view is after the constant folding, fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/PushProjectThroughUnion.java (1 line): - line 39: * TODO: this rule maybe lead to unequal transformation if cast is not monomorphism, be/src/olap/rowset/segment_v2/indexed_column_writer.h (1 line): - line 72: // TODO test with empty input fe/fe-core/src/main/java/org/apache/doris/catalog/Replica.java (1 line): - line 522: // TODO: this case is unknown, add log to observe