Commit Graph

167 Commits

Author SHA1 Message Date
9bee4582e7 branch-2.1: [fix](query tvf): resolve column mismatch error in JDBC query function (#54077) (#54249)
bp #54077

---------

Co-authored-by: XnY-wei <68527868+XnY-wei@users.noreply.github.com>
Co-authored-by: weixingyu12 <weixingyu12@jd.com>
2025-08-05 10:44:27 +08:00
c6ff4994f3 branch-2.1: [fix](hudi) check requiredFields exists in splitHudiColumnNames in HudiJniScanner #51430 (#51504)
Cherry-picked from #51430

Co-authored-by: Socrates <suyiteng@selectdb.com>
2025-06-16 14:54:40 +08:00
6513f9e01f [cherry-pick](branch-21)add some check for udf when result is null (#51084) (#51196) 2025-05-23 20:43:31 +08:00
edb8a51414 branch-2.1: [fix](nereids) fix create view use null literal #49881 (#51006)
Cherry-picked from #49881

Co-authored-by: feiniaofeiafei <moailing@selectdb.com>
2025-05-19 15:11:32 +08:00
e898dbbba0 branch-2.1: [fix](mc)Fixed the issue that maxcompute catalog can only read part of the timestamp data #49600 (#49706)
Cherry-picked from #49600

Co-authored-by: daidai <changyuwei@selectdb.com>
2025-04-01 17:09:15 +08:00
738dbf0347 branch-2.1: [enhancement](maxcompute)support maxcompute timestamp column type. #48768 (#48842)
Cherry-picked from #48768

Co-authored-by: daidai <changyuwei@selectdb.com>
2025-03-10 17:38:20 +08:00
469bc77a42 branch-2.1: [fix](jdbc catalog) Change BE jdbc Driver loading to Java code (#48002)
cherry-pick from (#46912)
2025-02-21 17:39:26 +08:00
de27cbb9ce branch-2.1: [Chore](dependencies)upgrade dependencies #47127 (#47765)
pick #47127
2025-02-12 09:17:10 +08:00
b4af671347 branch-2.1: [Fix](catalog)Fixes query failures for Paimon tables stored in Kerberized HDFS #47192 (#47694)
Cherry-picked from #47192

Co-authored-by: Calvin Kirs <guoqiang@selectdb.com>
2025-02-12 09:16:30 +08:00
f2419c49a7 branch-2.1: [opt](jni) Modify Exception Cause Formatting in JniUtil for Better Readability #46437 (#46602)
Cherry-picked from #46437

Co-authored-by: zy-kkk <zhongyk10@gmail.com>
2025-01-08 22:30:19 +08:00
6f8d2bfa88 branch-2.1: [enchement](mc)opt maxcompute read arrow skip repeated check of isNull #45989 (#46023)
Cherry-picked from #45989

Co-authored-by: daidai <changyuwei@selectdb.com>
2024-12-26 20:54:19 +08:00
b332217584 [enchement](mc)mc catalog append netowrk config (#44194) (#45149)
bp #44194
2024-12-07 09:52:19 -08:00
3714063975 branch-2.1: [feat](catalog)Replace HadoopUGI with HadoopKerberosAuthenticator to Support Kerberos Ticket Auto-Renewal #44916 (#45138)
Cherry-picked from #44916

Co-authored-by: Calvin Kirs <guoqiang@selectdb.com>
2024-12-06 22:13:31 -08:00
53291bd040 branch-2.1: [fix](hudi) upgrade hudi to 0.15.0 (#44267)(#44995) (#45041)
cherry-pick pr: #44267 #44995
2024-12-05 23:18:37 -08:00
88cfaedb16 [opt](paimon)Optimize the storage location of the serialized paimon table for 2.1 (#44274) (#44660)
bp: #44274
2024-11-27 20:35:35 +08:00
e7095cea0b branch-2.1: [improvement](jdbc catalog) Optimize JDBC driver property settings #42923 (#44405)
Cherry-picked from #42923

Co-authored-by: zy-kkk <zhongyongkang@selectdb.com>
2024-11-22 22:53:35 +08:00
821c0d1380 branch-2.1: [improvement](paimon)Using table serialization on the jni side (#43475)
Cherry-picked from #43167

Co-authored-by: wuwenchi <wuwenchihdu@hotmail.com>
Co-authored-by: wuwenchi <wuwenchi@selectdb.com>
2024-11-12 14:43:32 +08:00
d1e63c5201 [improvement](external)add some improvements for external scan (#38946) (#43156)
bp #38946

Co-authored-by: wuwenchi <wuwenchihdu@hotmail.com>
2024-11-04 09:40:08 +08:00
47fa76e0f6 [2.1][fix](jdbc catalog) Optimize JDBC Connection Closing to Ensure Proper Resource Release (#43074)
bp #43059
2024-11-01 20:34:18 +08:00
17d84dc88f [enhance](paimon)paimon scanner code optimization #42606 (#42875)
cherry pick from #42606

Co-authored-by: zhangdong <493738387@qq.com>
2024-10-30 12:51:59 +08:00
4a62d9e44b Revert "[2.1][improvement](jdbc catalog) Add catalog property to enable jdbc connection pool" (#42481)
Reverts apache/doris#42255

We have found that after closing the connection pool, there will be
class loading problems and connection release problems for some data
sources. We will remove this function first and re-add it after solving
and testing it completely.
2024-10-25 19:37:36 +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
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
8c0f73cb90 [Enhancement](MaxCompute)Refactoring maxCompute catalog using Storage API.(#40225 , #40888 ,#41386 ) (#41610)
bp #40225 , #40888 ,#41386

## Proposed changes
Among them, #40225 is the new api of mc,
#40888 is used to fix the bug when reading null between the new and old
apis,
#41386 is used for compatibility between the new and old versions
2024-10-11 11:55:41 +08:00
d32688e091 [Enhancement](multi-catalog) Set hdfs native client logger to glog and redirect jvm stdout/stderr logger to jni.log. (#41633)
Backport #39540.

Co-authored-by: Mingyu Chen <morningman@163.com>
2024-10-10 17:47:21 +08:00
806fe98a93 [2.1][fix](oracle scan) Fix performance issues caused by version judgment (#41509)
pick (#41407)
2024-10-01 21:04:22 +08:00
306af52aa2 [Fix](jdbc-scanner) Fix jdbc scanner memory leak because it didn't close outputTable. (#41266)
## Proposed changes

Backport #41041.
2024-09-25 17:35:13 +08:00
e4c48cfec5 [fix](multi-catalog)fix max compute null parts table read (#40046) (#40179)
bp #40046

Co-authored-by: slothever <18522955+wsjz@users.noreply.github.com>
2024-08-30 22:56:08 +08:00
14a2a66106 [fix](paimon) fix not able to read paimon data from hdfs with HA (#39806) (#39876)
bp #39806
2024-08-24 17:51:15 +08:00
4cb7122a89 [branch-2.1][fix](jdbc catalog) Fix Memory Leak by Enabling Weak References in HikariCP (#39833)
pick(#39582)
2024-08-24 00:45:12 +08:00
67a8099991 [fix](multi-catalog)fix max compute array and map type read offset (#39822)
bp #39680
2024-08-23 16:53:52 +08:00
80a27ca1bd [branch-2.1][improvement](jdbc catalog) Force all resources to be closed in the close method (#39666)
pick (#39423)
2024-08-21 18:35:35 +08:00
20936fe054 [branch-2.1][improvement](jdbc catalog) Compatible with ojdbc6 by adding version check (#39408)
pick (#39341)

In previous versions, we used a method based on JDBC 4.2 to read data,
so it was equivalent to abandoning support for ojdbc6. However, we
recently found that a large number of users still use Oracle version
11g, which will have some unexpected compatibility issues when using
ojdbc8 to connect. Therefore, I use version verification to make it
compatible with both ojdbc6 and ojdbc8, so that good compatibility can
be obtained through ojdbc6, and better reading efficiency can be
obtained through ojdbc8.
2024-08-17 16:43:01 +08:00
d800434859 [Chore](Fe)Upgrade dependencies (#38509) (#38747)
## Proposed changes

upgrade spring-boot to 2.7.18
upgrade zookeeper to 3.9.2
upgrade jetty to 9.4.55.v20240627
upgrade ivy to 2.5.2
upgrade icu4j to 75.1
upgrade ini4j to 0.5.4

(cherry picked from commit 3f633c2018e86c6c842647262853d88ad63672bf)

pick #38509
## Proposed changes

Issue Number: close #xxx

<!--Describe your changes.-->
2024-08-02 12:34:17 +08:00
41fa7bc9fd [bugfix](paimon)Fixed the reading of timestamp with time zone type data for 2.1 (#37716) (#38592)
bp: #37716
2024-08-01 10:23:06 +08:00
7bd6818350 [branch-2.1][improvement](jdbc catalog) Added support for Oracle Raw type (#37776)
pick (#37078)
In previous versions, we adopted the strategy of reading the object
address for Oracle's raw type, which would lead to unstable and
meaningless results. Here I changed it to read hexadecimal or UTF8
2024-07-15 14:43:05 +08:00
d91376cd52 [bugfix](paimon)adding dependencies for clang #37512 (#37737)
cherry pick from #37512

Co-authored-by: wuwenchi <wuwenchihdu@hotmail.com>
2024-07-13 09:59:35 +08:00
39ded1f649 [branch-2.1][improvement](jdbc catalog) Change JdbcExecutor's error reporting from UDF to JDBC (#37635)
pick (#35692)

In the initial version, JdbcExecutor directly used UdfRuntimeException,
which could lead to misunderstanding of the exception. Therefore, I
created a separate Exception for JdbcExecutor to help us view the
exception more clearly.
2024-07-11 15:11:41 +08:00
ef754487d9 [branch-2.1][improvement](jdbc catalog) Catch AbstractMethodError in getColumnValue Method and Suggest Updating to ojdbc8+ (#37634)
pick (#37608)

Catch AbstractMethodError in getColumnValue method. Provide a clear
error message suggesting the use of ojdbc8 or higher versions to avoid
compatibility issues.
2024-07-11 15:10:47 +08:00
62c4451c97 [branch-2.1][improvement](jdbc catalog) Modify the maximum number of connections in the connection pool to 30 by default (#37023)
pick (#36720)

In many cases, we found that users would use JDBC Catalog to perform a
large number of queries, which resulted in the maximum of 10 connections
being insufficient, so I adjusted it to 30, which covered most needs.
2024-07-01 12:22:20 +08:00
e25b0d7c37 [branch-2.1][improvement](mysql catalog) disable mysql AbandonedConnectionCleanupThread (#36970)
pick (#36655)
2024-06-29 18:35:41 +08:00
4008a04da7 [bugfix](paimon)Fix field case issues for 2.1 (#36288)
bp:  #36239
2024-06-17 18:38:00 +08:00
bd6b913e00 [bugfix](paimon)paimon's field length judgment error for 2.1 (#36049)
bp #35981
2024-06-07 21:13:08 +08:00
4f0365e0bf [fix](s3) move s3 providers to fe-common to be accessible for jni reader (#35779)
backport: #35690

`PropertyConverter.setS3FsAccess` has add customized s3 providers:
```
public static final List<String> AWS_CREDENTIALS_PROVIDERS = Arrays.asList(
            DataLakeAWSCredentialsProvider.class.getName(),
            TemporaryAWSCredentialsProvider.class.getName(),
            SimpleAWSCredentialsProvider.class.getName(),
            EnvironmentVariableCredentialsProvider.class.getName(),
            IAMInstanceCredentialsProvider.class.getName());
```
And these providers are set as configuration value of
`fs.s3a.aws.credentials.provider`, which will be used as configuration
to build s3 reader in JNI readers. However,
`DataLakeAWSCredentialsProvider` is in `fe-core`, that is not dependent
by JNI readers, so we have to move s3 providers to `fe-common'.
2024-06-03 14:04:39 +08:00
9dc1196f1c [update](hudi) update hudi-spark bundle to 3.4.3 (#35013) (#35718)
backport: #35013
2024-05-31 20:51:28 +08:00
72a27a0938 [fix](paimon)fix paimon cache bug (#35309)
Issue Number: close #35024 
This bug is because the fe incorrectly sets the update time of paimon
catalog, causing the be to be unable to update paimon's schema in time.
```c++
    private void initTable() {
        PaimonTableCacheKey key = new PaimonTableCacheKey(ctlId, dbId, tblId, paimonOptionParams, dbName, tblName);
        TableExt tableExt = PaimonTableCache.getTable(key);
        if (tableExt.getCreateTime() < lastUpdateTime) {
            LOG.warn("invalidate cache table:{}, localTime:{}, remoteTime:{}", key, tableExt.getCreateTime(),
                    lastUpdateTime);
            PaimonTableCache.invalidateTableCache(key);
            tableExt = PaimonTableCache.getTable(key);
        }
        this.table = tableExt.getTable();
        paimonAllFieldNames = PaimonScannerUtils.fieldNames(this.table.rowType());
        if (LOG.isDebugEnabled()) {
            LOG.debug("paimonAllFieldNames:{}", paimonAllFieldNames);
        }
    }
```
2024-05-28 18:52:51 +08:00
2e20e38523 [improvement](jdbc catalog) remove useless jdbc catalog code (#34986) (#35418) 2024-05-27 14:25:26 +08:00
3a5fb6265a [refactor](jdbc catalog) split trino jdbc executor (#34932) (#35176)
pick #34932
2024-05-22 19:09:57 +08:00
05a390e050 [refactor](jdbc catalog) split oceanbase jdbc executor (#34869) (#35175)
pick #34869
2024-05-22 19:09:35 +08:00