Hisoka-X commented on code in PR #7261:
URL: https://github.com/apache/seatunnel/pull/7261#discussion_r1694700491
##########
seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java:
##########
@@ -277,15 +285,24 @@ public List<String> listDatabases() throws
CatalogException {
@Override
public boolean databaseExists(String databaseName) throws CatalogException
{
- checkArgument(StringUtils.isNotBlank(databaseName));
-
- return listDatabases().contains(databaseName);
+ if (StringUtils.isBlank(databaseName)) {
+ return false;
+ }
+ if (!SYS_DATABASES.isEmpty() && SYS_DATABASES.contains(databaseName)) {
+ return false;
+ }
+ return queryExists(
+ getUrlFromDatabaseName(databaseName),
getDatabaseWithConditionSql(databaseName));
Review Comment:
Do we need to keep the rollback strategy? If Catalog does not support the
`getDatabaseWithConditionSql` method, we can continue to use the old check way.
##########
seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java:
##########
@@ -277,15 +285,24 @@ public List<String> listDatabases() throws
CatalogException {
@Override
public boolean databaseExists(String databaseName) throws CatalogException
{
- checkArgument(StringUtils.isNotBlank(databaseName));
-
- return listDatabases().contains(databaseName);
+ if (StringUtils.isBlank(databaseName)) {
+ return false;
+ }
+ if (!SYS_DATABASES.isEmpty() && SYS_DATABASES.contains(databaseName)) {
Review Comment:
```suggestion
if (SYS_DATABASES.contains(databaseName)) {
```
##########
seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java:
##########
@@ -528,6 +548,17 @@ protected List<String> queryString(String url, String sql,
ResultSetConsumer<Str
}
}
+ protected boolean queryExists(String dbUrl, String sql) {
Review Comment:
```suggestion
protected boolean querySQLResultExists(String dbUrl, String sql) {
```
##########
seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/AbstractJdbcCatalog.java:
##########
@@ -317,12 +334,15 @@ public List<String> listTables(String databaseName)
@Override
public boolean tableExists(TablePath tablePath) throws CatalogException {
- try {
- return databaseExists(tablePath.getDatabaseName())
- &&
listTables(tablePath.getDatabaseName()).contains(getTableName(tablePath));
- } catch (DatabaseNotExistException e) {
+ String databaseName = tablePath.getDatabaseName();
+ if (!databaseExists(databaseName)) {
return false;
}
+ if (EXCLUDED_SCHEMAS.contains(tablePath.getSchemaName())) {
+ return false;
+ }
+ return queryExists(
+ this.getUrlFromDatabaseName(databaseName),
getTableWithConditionSql(tablePath));
Review Comment:
```suggestion
String databaseName = tablePath.getDatabaseName();
if (EXCLUDED_SCHEMAS.contains(tablePath.getSchemaName())) {
return false;
}
return queryExists(
this.getUrlFromDatabaseName(databaseName),
getTableWithConditionSql(tablePath));
```
how about remove check database exist? It won't affect the result.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]