Commit Graph

9362 Commits

Author SHA1 Message Date
036906f025 [fix](routine load) make the timeout of load channel consistent with routine load task (#42042) (#42267)
pick (#42042)

Routine load task timeout is max_batch_interval * 10, but load channel
timeout is max_batch_interval * 2.
2024-10-23 16:17:39 +08:00
0aa07e6118 [enhancement](blacklist) should check the real error reason when sendfragment timeout (#42314)
## Proposed changes

1. send fragment in BE may run for long time.
2. timeout is not related with BE down.
3. cancel logic should not handle blacklist. because if a BE is down,
send fragment will find it.

Co-authored-by: yiguolei <yiguolei@gmail.com>
2024-10-23 16:16:04 +08:00
a5b3520cbb [fix](mtmv) regression test unstable and error (#41145) (#42185)
## Proposed changes

pr: https://github.com/apache/doris/pull/41145
commitId: 5e6e4bf6
2024-10-23 14:42:53 +08:00
e7395198d4 [fix](estimate) func call with not filter will estimate some statisti… (#42302)
…cs (#41989)

before this pr: use ! or not in or condition when table has been
analyzed we will meet
```
SELECT
  count(1)
FROM
  table_30_un_pa_ke_pr_di4
where
  col_int_undef_signed_not_null < -128
  or not array_contains(col_array_bigint__undef_signed, col_int_undef_signed_not_null);

ERROR 1105 (HY000): errCode = 2, detailMessage = Not-predicate meet unexpected child:
  array_contains(col_array_bigint__undef_signed, cast(col_int_undef_signed_not_null as BIGINT))
```

## Proposed changes

Issue Number: close #xxx

<!--Describe your changes.-->
2024-10-23 14:33:41 +08:00
c9acd71ad6 [fix](inverted index) Fix errors caused by enable_need_read_data_opt #42064 (#42247)
cherry pick from #42064

Co-authored-by: Sun Chenyang <csun5285@gmail.com>
2024-10-23 09:18:19 +08:00
bde8e2d474 [2.1][improvement](jdbc catalog) Add catalog property to enable jdbc connection pool (#42255)
pick (#41992)

We initially introduced jdbc connection pool to improve the connection
performance of jdbc catalog, but we always found that connection pool
would bring some unexpected errors, so we chose to add a catalog
property: `enable_connection_pool` to choose whether to enable the jdbc
connection pool of jdbc catalog, and the default false.However, the
created catalog will still open the connection pool when it is upgraded,
and only the newly created catalog will be false

And we conducted performance tests on this, the performance loss is
within the expected range.

- Enable connection pool: mysqlslap -uroot -h127.0.0.1 -P9030
--concurrency=1 --iterations=100 --query='SELECT * FROM mysql.test.test
limit 1;' --create-schema=mysql --delimiter=";" --verbose
Benchmark
        Average number of seconds to run all queries: 0.008 seconds
        Minimum number of seconds to run all queries: 0.004 seconds
        Maximum number of seconds to run all queries: 0.133 seconds
        Number of clients running queries: 1
        Average number of queries per client: 1

- Disable connection pool: mysqlslap -uroot -h127.0.0.1 -P9030
--concurrency=1 --iterations=100 --query='SELECT * FROM
mysql_no_pool.test.test limit 1;' --create-schema=mysql --delimiter=";"
--verbose
Benchmark
        Average number of seconds to run all queries: 0.054 seconds
        Minimum number of seconds to run all queries: 0.047 seconds
        Maximum number of seconds to run all queries: 0.184 seconds
        Number of clients running queries: 1
        Average number of queries per client: 1
2024-10-22 23:28:28 +08:00
1fc1662e88 [2.1][fix](external) Fix case-insensitive table name mapping retrieval rules (#42259)
pick (#38227)

```
Doris > CREATE CATALOG `oracle` PROPERTIES (
    -> "user" = "doris_test",
    -> "type" = "jdbc",
    -> "password" = "xxx",
    -> "jdbc_url" = "jdbc:oracle:thin:@xxx:1521:XE",
    -> "driver_url" = "ojdbc8-19.3.0.0.jar",
    -> "driver_class" = "oracle.jdbc.driver.OracleDriver"
    -> );
Query OK, 0 rows affected (2.16 sec)
```

```
Doris > show variables like '%lower_case%';
+------------------------+-------+---------------+---------+
| Variable_name          | Value | Default_Value | Changed |
+------------------------+-------+---------------+---------+
| lower_case_table_names | 1     | 0             | 1       |
+------------------------+-------+---------------+---------+
1 row in set (0.00 sec)

Doris > show tables from oracle.DORIS_TEST;
+----------------------+
| Tables_in_DORIS_TEST |
+----------------------+
| aa/d                 |
| aaad                 |
| lower_test           |
| student              |
| student2             |
| student3             |
| test_all_types       |
| test_char            |
| test_clob            |
| test_date            |
| test_insert          |
| test_int             |
| test_num             |
| test_number          |
| test_number2         |
| test_number3         |
| test_number4         |
| test_raw             |
| test_timestamp       |
+----------------------+
19 rows in set (0.01 sec)

```

```
Doris > select * from oracle.DORIS_TEST.test_int limit 1;
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| ID   | TINYINT_VALUE1 | SMALLINT_VALUE1 | INT_VALUE1 | BIGINT_VALUE1      | TINYINT_VALUE2 | SMALLINT_VALUE2 | INT_VALUE2 | BIGINT_VALUE2       |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| 1    |             99 |            9999 |  999999999 | 999999999999999999 |            999 |           99999 | 9999999999 | 9999999999999999999 |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
1 row in set (1.03 sec)

Doris > select * from oracle.DORIS_TEST.TEST_INT limit 1;
ERROR 1105 (HY000): errCode = 2, detailMessage = Table [TEST_INT] does not exist in database [DORIS_TEST].

```

```
Doris > select * from oracle.DORIS_TEST.test_int limit 1;
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| ID   | TINYINT_VALUE1 | SMALLINT_VALUE1 | INT_VALUE1 | BIGINT_VALUE1      | TINYINT_VALUE2 | SMALLINT_VALUE2 | INT_VALUE2 | BIGINT_VALUE2       |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| 1    |             99 |            9999 |  999999999 | 999999999999999999 |            999 |           99999 | 9999999999 | 9999999999999999999 |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
1 row in set (0.20 sec)

Doris > select * from oracle.DORIS_TEST.TEST_INT limit 1;
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| ID   | TINYINT_VALUE1 | SMALLINT_VALUE1 | INT_VALUE1 | BIGINT_VALUE1      | TINYINT_VALUE2 | SMALLINT_VALUE2 | INT_VALUE2 | BIGINT_VALUE2       |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| 1    |             99 |            9999 |  999999999 | 999999999999999999 |            999 |           99999 | 9999999999 | 9999999999999999999 |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
1 row in set (0.20 sec)
```

```
Doris > show variables like '%lower_case%';
+------------------------+-------+---------------+---------+
| Variable_name          | Value | Default_Value | Changed |
+------------------------+-------+---------------+---------+
| lower_case_table_names | 2     | 0             | 1       |
+------------------------+-------+---------------+---------+
1 row in set (0.01 sec)

Doris > show tables from oracle.DORIS_TEST;
+----------------------+
| Tables_in_DORIS_TEST |
+----------------------+
| AA/D                 |
| AAAD                 |
| LOWER_TEST           |
| STUDENT              |
| TEST_ALL_TYPES       |
| TEST_CHAR            |
| TEST_CLOB            |
| TEST_DATE            |
| TEST_INSERT          |
| TEST_INT             |
| TEST_NUM             |
| TEST_NUMBER          |
| TEST_NUMBER2         |
| TEST_NUMBER3         |
| TEST_NUMBER4         |
| TEST_RAW             |
| TEST_TIMESTAMP       |
| student2             |
| student3             |
+----------------------+
19 rows in set (1.05 sec)
```

```
Doris > select * from oracle.DORIS_TEST.test_int limit 1;
ERROR 1105 (HY000): errCode = 2, detailMessage = Table [test_int] does not exist in database [DORIS_TEST].
Doris > select * from oracle.DORIS_TEST.TEST_INT limit 1;
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| ID   | TINYINT_VALUE1 | SMALLINT_VALUE1 | INT_VALUE1 | BIGINT_VALUE1      | TINYINT_VALUE2 | SMALLINT_VALUE2 | INT_VALUE2 | BIGINT_VALUE2       |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| 1    |             99 |            9999 |  999999999 | 999999999999999999 |            999 |           99999 | 9999999999 | 9999999999999999999 |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
1 row in set (1.07 sec)
```

```
Doris > select * from oracle.DORIS_TEST.test_int limit 1;
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| ID   | TINYINT_VALUE1 | SMALLINT_VALUE1 | INT_VALUE1 | BIGINT_VALUE1      | TINYINT_VALUE2 | SMALLINT_VALUE2 | INT_VALUE2 | BIGINT_VALUE2       |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| 1    |             99 |            9999 |  999999999 | 999999999999999999 |            999 |           99999 | 9999999999 | 9999999999999999999 |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
1 row in set (0.21 sec)

Doris > select * from oracle.DORIS_TEST.TEST_INT limit 1;
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| ID   | TINYINT_VALUE1 | SMALLINT_VALUE1 | INT_VALUE1 | BIGINT_VALUE1      | TINYINT_VALUE2 | SMALLINT_VALUE2 | INT_VALUE2 | BIGINT_VALUE2       |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
| 1    |             99 |            9999 |  999999999 | 999999999999999999 |            999 |           99999 | 9999999999 | 9999999999999999999 |
+------+----------------+-----------------+------------+--------------------+----------------+-----------------+------------+---------------------+
1 row in set (0.20 sec)
```

## Proposed changes

Issue Number: close #xxx

<!--Describe your changes.-->
2024-10-22 23:28:01 +08:00
56c2a0f523 [2.1][opt](Catalog) Remove unnecessary conjuncts handling on External Scan (#42261)
pick (#41218)

In the previous FileScanNode, some parts that used conjuncts for
predicate conversion were placed in the init phase. However, for the
Nereids planner, pushing the filter down to the scan happens in the
Translator, which means that the ScanNode can only get the complete
conjuncts in the finalized phase. Therefore, in this PR, I have removed
all conjuncts variables in External for the Nereids planner. They no
longer need to store conjuncts themselves or add them to the ScanNode.
Instead, all places in the ScanNode that use conjuncts should be moved
to the finalized phase.

This refactor also fix a performance issue introduced from #40176 After
introducing the change of generating SelectNode for consecutive projects
or filters, FileScan still adds conjuncts too early in the init phase,
resulting in the discovery of consecutive filters when the upper layer
continues to translate, a selectnode was unexpectedly generated on the
scannode, causing the project to be unable to prune the scannode
columns. However, the Project node trims columns of SelectNode and
ScanNode differently, which causes ScanNode to scan unnecessary columns.

My modification removes the addition of conjuncts in the scannode step,
so that we can keep the structure from ScanNode to Project and achieve
correct column trimming.
2024-10-22 21:42:55 +08:00
6f2bac012a [pick](branch-2.1) pick #39398 #41754 #41770 (#42231)
pick #39398 #41754 #41770
2024-10-22 18:05:40 +08:00
c1d2b8d548 [2.1][improvement](jdbc catalog) Disallow non-constant type conversion pushdown and implicit conversion pushdown (#42242)
pick (#42102)

Add a variable `enable_jdbc_cast_predicate_push_down`, the default value
is false, which prohibits the pushdown of non-constant predicates with
type conversion and all predicates with implicit conversion. This change
can prevent the wrong predicates from being pushed down to the Jdbc data
source, resulting in query data errors, because the predicates with cast
were not correctly pushed down to the data source before. If you find
that the data is read correctly and the performance is better before
this change, you can manually set this variable to true

```
| Expression                                          | Can Push Down |
|-----------------------------------------------------|---------------|
| column type equals const type                       | Yes           |
| column type equals cast const type                  | Yes           |
| cast column type equals const type                  | No            |
| cast column type equals cast const type             | No            |
| column type not equals column type                  | No            |
| column type not equals cast const type              | No            |
| cast column type not equals const type              | No            |
| cast column type not equals cast const type         | No            |

```
2024-10-22 17:27:29 +08:00
9c4ce73dfa [Pick](nereids) pick 40529 41464 40349 (#42073)
## Proposed changes
pick  #40529 #41464 #40349

Issue Number: close #xxx

<!--Describe your changes.-->
2024-10-22 15:04:50 +08:00
85a98df9c2 [Fix](count on index) fix count on index opt when count project expr #41772 (#42229)
cherry pick from #41772
2024-10-22 13:16:32 +08:00
803c052100 [fix](nereids)modify agg function nullability in PhysicalHashAggregate (#42018)
## Proposed changes

pick from master https://github.com/apache/doris/pull/41943

<!--Describe your changes.-->
2024-10-22 11:23:39 +08:00
104d427afa [cherry-pick][chore](audit) Optimize the SQL (insert into values) length in audit logs (#37894) and let line comment work well (#40599) (#42186)
## Proposed changes

cherry-pick from master #37894 and #40599

<!--Describe your changes.-->
2024-10-22 10:16:05 +08:00
8ce65cab86 [chore](log) Adjust log level for replaying a batch editlog cost time(#41392) (#42182)
* `replay journal cost too much time` is a counter for replaying a batch
editlog it is normal that cost too much time, the warning level can make
confused

## Proposed changes

Issue Number: close #xxx

<!--Describe your changes.-->
2024-10-22 10:06:11 +08:00
c6b35ba9b8 [cherry-pick](paimon) pick part of refactor code from #34496 (#42221)
#34496

Co-authored-by: Tiewei Fang <43782773+BePPPower@users.noreply.github.com>
2024-10-22 09:44:41 +08:00
ac3d64c010 [feature](hive)support create hive table for text format #41860 (#42195)
cherry pick from #41860

Co-authored-by: wuwenchi <wuwenchihdu@hotmail.com>
2024-10-21 21:30:11 +08:00
720a4c9f30 [Fix](Branch-2.1) fix fallback to original planer when enable_server_side_prepared_statement = false (#42156) 2024-10-21 17:46:24 +08:00
bbd4970ed8 [feature](jdbc catalog) support gbase jdbc catalog #41027 #41587 (#42123)
cherry pick from #41027 #41587

---------

Co-authored-by: zy-kkk <zhongyk10@gmail.com>
2024-10-21 16:52:23 +08:00
a150d160ea [fix](jdbc catalog) fix and add mysql and doris extremum test #41679 (#42122)
cherry pick from #41679

---------

Co-authored-by: zy-kkk <zhongyk10@gmail.com>
2024-10-21 16:39:40 +08:00
9ac8b44d65 [bugfix](hive)Use the connected user to initialize the owner of the hive table #41876 (#42121)
cherry pick from #41876

---------

Co-authored-by: wuwenchi <wuwenchihdu@hotmail.com>
2024-10-21 14:41:13 +08:00
9383378f2e [Fix](Export) show export statement supports specify the catalog name #41662 (#42117)
cherry pick from #41662

Co-authored-by: Tiewei Fang <43782773+BePPPower@users.noreply.github.com>
2024-10-19 10:47:28 +08:00
702184bd92 [fix](tvf) fix that FE OOM when using tvf #40981 (#42119)
cherry pick from #40981

Co-authored-by: Tiewei Fang <43782773+BePPPower@users.noreply.github.com>
2024-10-19 08:34:38 +08:00
ede1253666 [fix](catalog) fix filtered database when use_meta_cache=true #41939 (#42114)
cherry pick from #41939
2024-10-19 08:33:35 +08:00
c65f1044f6 [opt](log) avoid print too much log when get partitions failed #41892 (#42116)
cherry pick from #41892
2024-10-19 00:28:49 +08:00
4cab8c5178 [fix](auth)fix show load priv bug (#41723) (#42108)
pick: https://github.com/apache/doris/pull/41723
2024-10-18 22:21:50 +08:00
4edfbb5c76 [fix](nereids)modify split_part function to fold to null literal with correct data type (#42100)
pick from master https://github.com/apache/doris/pull/41109

## Proposed changes

Issue Number: close #xxx

<!--Describe your changes.-->
2024-10-18 22:15:57 +08:00
c412de8db8 [fix](Nereids) simplify range result wrong when reference is nullable (#41356) (#42096)
pick from master #41356

if reference is nullable and simplify result is boolean literal. the
real result should be:

IF(${reference} IS NULL, NULL, ${not_null_result})
2024-10-18 22:14:21 +08:00
b514371524 [fix] stats npe bug (#42092)
## Proposed changes

Some processors have erased the stats information of the nodes, causing
the runtime_filter_pruner to encounter a NullPointerException.

Issue Number: close #xxx

<!--Describe your changes.-->
2024-10-18 22:05:33 +08:00
ba9f8be9f2 [fix](nereids) Fix load failed where not set database in session (#41951) (#42082)
cherry-pick #41951

load failed where not set database in session, should use label's
database if not set database in session

LOAD LABEL test_db.label_111111 ( DATA
INFILE("hdfs://hdfs01:9000/user/") INTO TABLE `test_load_tb`) WITH
BROKER "broker" ( "username" = "user", "password" = "");

ERROR 1105 (HY000): errCode = 2, detailMessage = Current database is not
set.

## Proposed changes

Issue Number: close #xxx

<!--Describe your changes.-->
2024-10-18 22:04:11 +08:00
9b7e3fbe70 [fix](statistics)Skip analyze if the collected info is invalid. (#42028) (#42087)
backport: https://github.com/apache/doris/pull/42028
2024-10-18 20:50:53 +08:00
8409f24062 [fix](Nereids) fix fold constant by be return type mismatched (#39723)(#41164)(#41331)(#41546) (#41838)
cherry-pick: #39723 #41164 #41331 #41546 because later problem is intro by prev one, so put them together
when using fold constant by be,
the return type of substring('123456',1, 3) would changed to be text, which we want it to be 3 remove windowframe in window expression to avoid folding constant on be
2024-10-18 20:34:03 +08:00
03136baacf [fix](scanner) Fix incorrect _max_thread_num in scanner context when many queries are running. #41273 (#42016)
cherry pick from #41273
2024-10-18 18:08:07 +08:00
e64f2e68e0 [opt](nereids) refine stats derive (#40654) (#40698) (#42050)
pick from master #40654 #40698
2024-10-18 16:18:10 +08:00
1236cfd159 [fix](Nereids) fix Is Cached is not Yes in Profile when enable_sql_cache=true (#42032) (#42034)
fix `Is  Cached` is not Yes in Profile when enable_sql_cache=true, introduced by #33262
2024-10-18 16:17:15 +08:00
28066a0854 [fix](mtmv) Fix compensate union all wrongly when query rewrite by materialized view #40803 (#42019)
## Proposed changes

pr: https://github.com/apache/doris/pull/40803
commitId: d7e5d461
2024-10-18 12:10:53 +08:00
cec0458860 [branch-2.1][chore](dependencies)upgrade fe dependencies (#41142) (#42056)
## Proposed changes
upgrade commons-configuration2 to 2.11.0
upgrade logging-interceptor to 4.12.0
upgrade commons-compress to 1.27.1
upgrade jetty-bom to 9.4.56.v20240826
upgrade azure-sdk to 1.2.27

Iceberg depends on configuration2, and configuration2 relies on a newer
version of commons-lang3. However, there were significant breaking
changes in commons-lang3, which made it
incompatible.https://issues.apache.org/jira/browse/LANG-1705 As a
result, I rewrote the clone method.

(cherry picked from commit 945edf8dbffaa25c987bcefad59b6cde52772d4f)

## Proposed changes

Issue Number: close #xxx

<!--Describe your changes.-->
2024-10-18 09:54:12 +08:00
1332f286a5 [chore](dependencies)upgrade some dependencies (#41901) (#42047)
## Proposed changes

Issue Number: close #xxx

<!--Describe your changes.-->

(cherry picked from commit 9cfc3f16681cd1ef5b8371e03d88b014e4c0a3a0)

#41901
2024-10-17 21:49:21 +08:00
fb12e10272 [fix](array-funcs)fix array agg func with decimal type (#40839) (#42023)
## Proposed changes
backport: (https://github.com/apache/doris/pull/40839)
Issue Number: close #xxx

<!--Describe your changes.-->
2024-10-17 20:47:39 +08:00
5fe37c0708 [Feat](Nereids) support fold constant by fe (#40441)(#40772)(#40744)(#40745)(40820) (#41837)
cherry-pick from master
#40441 
#40772 
#40744 
#40745
#40820
2024-10-17 20:43:17 +08:00
80d7523a62 [Feat](Nereids) support use cbo rule hint #35925 #39715 #40167 #40958 (#41869)
pick: #35925 #39715 #40167 #40958
Add feat of force use/nouse cbo rule hint and fix pr

introduce
when not using this hint, cbo rules like INFER_SET_OPERATOR_DISTINCT
would generate two plans and compare their cost
and nereids optimizer would decide which is better. But when we want to
control the behavior of cbo rules we could use this force cbo rule hint
usage example
explain shape plan
select /*+ USE_CBO_RULE(INFER_SET_OPERATOR_DISTINCT) */
*
from t1
union
select * from t2;
the USE_CBO_RULE(INFER_SET_OPERATOR_DISTINCT) hint would force rule
INFER_SET_OPERATOR_DISTINCT to be used
and generate plan like, which hashAgg below union is generated by this
rule:

-- !with_hint_union_distinct --
----hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------PhysicalUnion
--------------hashAgg[LOCAL]
----------------PhysicalOlapScan[t1]
--------------hashAgg[LOCAL]
----------------PhysicalOlapScan[t2]
Hint log:
Used: INFER_SET_OPERATOR_DISTINCT
UnUsed:
SyntaxError:
When we want to force disable this rule, we could use
explain shape plan select /*+
NO_USE_CBO_RULE(INFER_SET_OPERATOR_DISTINCT) */ * from t1 union select *
from t2;
which would generate plan with this rule:

-- !with_hint_no_union_distinct --
----hashAgg[GLOBAL]
--------hashAgg[LOCAL]
----------PhysicalUnion
--------------PhysicalOlapScan[t1]
--------------PhysicalOlapScan[t2]
Hint log:
Used: NO_INFER_SET_OPERATOR_DISTINCT
UnUsed:
SyntaxError:
change sessionvariable enableNereidsRules to varType.remove
2024-10-17 20:36:03 +08:00
1245df670f [feat](nereids) adjust stats derive by delta row #39222 (2.1) (#42025)
## Proposed changes
pick #39222
wait JiBin merge updateRows

Issue Number: close #xxx

<!--Describe your changes.-->
2024-10-17 19:54:52 +08:00
669f59ce5a [branch-2.1][feat](job)Implementing Job in Nereids (#41391) (#42012)
## Proposed changes

The JOB's execution SQL is currently defined by an older CUP file, which
causes some issues with lexical analysis in the new optimizer as it
doesn't pass under the old optimizer. Since the JOB's underlying
execution already uses the new optimizer, we're planning to fully
migrate to ANTLR4 for consistency.

(cherry picked from commit 334b473deb5ff2e5c29c5eedcfac95dd806ae622)

#41391
2024-10-17 16:56:36 +08:00
3fcd64366f [opt](Nereids) use 1 as narrowest column when do column pruning on union (#41719) (#41975)
pick from master #41719

just like previous PR #41548

this PR process union node to ensure not require any column from its
children when it is required by its parent with empty slot set
2024-10-17 15:28:27 +08:00
1c5c27eceb [Enhancement](ExternalTable)Optimize the performance of getCachedRowCount when reading ExternalTable (#41659) (#41959)
bp #41659 
## Proposed changes

Because ExternalTable will initialize the previously uninitialized table
when `getCachedRowCount()`, which is unnecessary. So for the
uninitialized table, we directly return -1.
This will increase the speed of our query `information_schema.tables`.
2024-10-17 14:34:23 +08:00
968e33f07e [cherry-pick](branch-21) pick (#39057) (#41352) (#41958)
## Proposed changes

pick from master (#39057) (#41352)

<!--Describe your changes.-->

---------

Co-authored-by: Mryange <59914473+Mryange@users.noreply.github.com>
2024-10-17 14:30:40 +08:00
eea916e466 [cherry-pick](branch-21) should check the expr of auto range partition (#41626) (#41872)
## Proposed changes

cherry-pick from master (#41626)

<!--Describe your changes.-->
2024-10-17 12:45:49 +08:00
3ff67350d0 [opt](Nereids) support all syntax to avoid fallback in multi-statement query (#41811) 2024-10-17 12:42:01 +08:00
5736dc537c [fix](mtmv) Fix duplicate column name not check when create materialized view #40658 (#41822)
## Proposed changes

pr: https://github.com/apache/doris/pull/40658
commitId: 252aeeb6
2024-10-17 12:19:15 +08:00
95c0a7a8e3 [chore](planner) change decimal literal toSql as plainString (#41809) (#41976)
pick from master #41809

for example, 0 with decimal(38,4) will return 0.0000
2024-10-17 12:16:10 +08:00