This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 1cf6912f2c4 Refactor constructor of GrantStatement to empty
buildAttributes (#38335)
1cf6912f2c4 is described below
commit 1cf6912f2c4f0dedcd03d296da931bdbf5834edd
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Mar 4 16:40:56 2026 +0800
Refactor constructor of GrantStatement to empty buildAttributes (#38335)
* Refactor constructor of GrantStatement to empty buildAttributes
* Refactor constructor of GrantStatement to empty buildAttributes
* Refactor constructor of GrantStatement to empty buildAttributes
---
.../route/engine/type/ShardingRouteEngineFactoryTest.java | 6 ++----
.../binder/engine/statement/dcl/GrantStatementBinder.java | 11 +++--------
.../engine/statement/dcl/GrantStatementBinderTest.java | 10 ++++------
.../visitor/statement/type/FirebirdDCLStatementVisitor.java | 9 ++++-----
.../statement/type/OpenGaussDCLStatementVisitor.java | 6 +-----
.../visitor/statement/type/OracleDCLStatementVisitor.java | 8 +++-----
.../statement/type/PostgreSQLDCLStatementVisitor.java | 6 +-----
.../visitor/statement/type/SQL92DCLStatementVisitor.java | 9 ++++-----
.../statement/type/SQLServerDCLStatementVisitor.java | 13 ++++++++-----
.../statement/core/statement/type/dcl/GrantStatement.java | 10 +++++-----
.../sql/parser/statement/mysql/dcl/MySQLGrantStatement.java | 3 ++-
.../statement/sqlserver/dcl/SQLServerGrantStatement.java | 11 ++++++-----
.../dcl/dialect/mysql/type/MySQLGrantStatementAssert.java | 2 +-
13 files changed, 44 insertions(+), 60 deletions(-)
diff --git
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
index 1d36fe5ec24..3ee42748089 100644
---
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
+++
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactoryTest.java
@@ -132,10 +132,8 @@ class ShardingRouteEngineFactoryTest {
@Test
void assertNewInstanceForDCLForSingleTable() {
- GrantStatement sqlStatement = new GrantStatement(databaseType);
- sqlStatement.getTables().add(new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("tbl"))));
- sqlStatement.buildAttributes();
- SQLStatementContext sqlStatementContext = new
CommonSQLStatementContext(sqlStatement);
+ SQLStatementContext sqlStatementContext = new
CommonSQLStatementContext(
+ new GrantStatement(databaseType, Collections.singleton(new
SimpleTableSegment(new TableNameSegment(0, 0, new IdentifierValue("tbl"))))));
QueryContext queryContext = new QueryContext(sqlStatementContext, "",
Collections.emptyList(), new HintValueContext(), mockConnectionContext(),
mock(ShardingSphereMetaData.class));
ShardingRouteEngine actual =
ShardingRouteEngineFactory.newInstance(shardingRule, database, queryContext,
shardingConditions, Collections.singletonList("tbl"), props);
assertThat(actual, isA(ShardingTableBroadcastRouteEngine.class));
diff --git
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/GrantStatementBinder.java
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/GrantStatementBinder.java
index 28c988b982f..284d494dfe5 100644
---
a/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/GrantStatementBinder.java
+++
b/infra/binder/core/src/main/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/GrantStatementBinder.java
@@ -28,8 +28,8 @@ import
org.apache.shardingsphere.infra.binder.engine.statement.SQLStatementCopyU
import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dcl.GrantStatement;
-import java.util.ArrayList;
import java.util.Collection;
+import java.util.stream.Collectors;
/**
* Grant statement binder.
@@ -43,19 +43,14 @@ public final class GrantStatementBinder implements
SQLStatementBinder<GrantState
return sqlStatement;
}
Multimap<CaseInsensitiveString, TableSegmentBinderContext>
tableBinderContexts = LinkedHashMultimap.create();
- Collection<SimpleTableSegment> boundTables = new ArrayList<>();
- for (SimpleTableSegment each : tables) {
- boundTables.add(SimpleTableSegmentBinder.bind(each, binderContext,
tableBinderContexts));
- }
- return copyGrantStatement(sqlStatement, boundTables);
+ return copyGrantStatement(sqlStatement, tables.stream().map(each ->
SimpleTableSegmentBinder.bind(each, binderContext,
tableBinderContexts)).collect(Collectors.toList()));
}
private GrantStatement copyGrantStatement(final GrantStatement
sqlStatement, final Collection<SimpleTableSegment> tables) {
if (tables.equals(sqlStatement.getTables())) {
return sqlStatement;
}
- GrantStatement result = new
GrantStatement(sqlStatement.getDatabaseType());
- result.getTables().addAll(tables);
+ GrantStatement result = new
GrantStatement(sqlStatement.getDatabaseType(), tables);
SQLStatementCopyUtils.copyAttributes(sqlStatement, result);
return result;
}
diff --git
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/GrantStatementBinderTest.java
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/GrantStatementBinderTest.java
index b2982a024a3..e5035538100 100644
---
a/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/GrantStatementBinderTest.java
+++
b/infra/binder/core/src/test/java/org/apache/shardingsphere/infra/binder/engine/statement/dcl/GrantStatementBinderTest.java
@@ -39,6 +39,7 @@ import java.util.Collections;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
@@ -69,9 +70,7 @@ class GrantStatementBinderTest {
when(table.getAllColumns()).thenReturn(Collections.emptyList());
HintValueContext hintValueContext = new HintValueContext();
hintValueContext.setSkipMetadataValidate(true);
- SimpleTableSegment tableSegment = new SimpleTableSegment(new
TableNameSegment(0, 0, new IdentifierValue("test_table")));
- GrantStatement original = new GrantStatement(databaseType);
- original.getTables().add(tableSegment);
+ GrantStatement original = new GrantStatement(databaseType,
Collections.singleton(new SimpleTableSegment(new TableNameSegment(0, 0, new
IdentifierValue("test_table")))));
SQLStatementBinderContext binderContext = new
SQLStatementBinderContext(metaData, "foo_db", hintValueContext, original);
GrantStatement actual = new GrantStatementBinder().bind(original,
binderContext);
Collection<SimpleTableSegment> actualTables = actual.getTables();
@@ -81,12 +80,11 @@ class GrantStatementBinderTest {
@Test
void assertBindWithEmptyTables() {
- GrantStatement original = new GrantStatement(databaseType);
+ GrantStatement original = new GrantStatement(databaseType,
Collections.emptyList());
HintValueContext hintValueContext = new HintValueContext();
hintValueContext.setSkipMetadataValidate(true);
SQLStatementBinderContext binderContext = new
SQLStatementBinderContext(metaData, "foo_db", hintValueContext, original);
GrantStatement actual = new GrantStatementBinder().bind(original,
binderContext);
- Collection<SimpleTableSegment> actualTables = actual.getTables();
- assertThat(actualTables.size(), is(0));
+ assertTrue(actual.getTables().isEmpty());
}
}
diff --git
a/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDCLStatementVisitor.java
b/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDCLStatementVisitor.java
index e43b2eacbe1..b6bf2edc56c 100644
---
a/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDCLStatementVisitor.java
+++
b/parser/sql/engine/dialect/firebird/src/main/java/org/apache/shardingsphere/sql/parser/engine/firebird/visitor/statement/type/FirebirdDCLStatementVisitor.java
@@ -31,6 +31,8 @@ import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dcl.Re
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dcl.role.CreateRoleStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dcl.user.CreateUserStatement;
+import java.util.Collections;
+
/**
* DCL statement visitor for Firebird.
*/
@@ -42,11 +44,8 @@ public final class FirebirdDCLStatementVisitor extends
FirebirdStatementVisitor
@Override
public ASTNode visitGrant(final GrantContext ctx) {
- GrantStatement result = new GrantStatement(getDatabaseType());
- if (null != ctx.privilegeClause()) {
- result.getTables().add((SimpleTableSegment)
visit(ctx.privilegeClause().onObjectClause().privilegeLevel().tableName()));
- }
- return result;
+ return new GrantStatement(getDatabaseType(),
+ null == ctx.privilegeClause() ? Collections.emptyList() :
Collections.singleton((SimpleTableSegment)
visit(ctx.privilegeClause().onObjectClause().privilegeLevel().tableName())));
}
@Override
diff --git
a/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/type/OpenGaussDCLStatementVisitor.java
b/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/type/OpenGaussDCLStatementVisitor.java
index 10de7e21149..62a62229ff5 100644
---
a/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/type/OpenGaussDCLStatementVisitor.java
+++
b/parser/sql/engine/dialect/opengauss/src/main/java/org/apache/shardingsphere/sql/parser/engine/opengauss/visitor/statement/type/OpenGaussDCLStatementVisitor.java
@@ -55,11 +55,7 @@ public final class OpenGaussDCLStatementVisitor extends
OpenGaussStatementVisito
@Override
public ASTNode visitGrant(final GrantContext ctx) {
- GrantStatement result = new GrantStatement(getDatabaseType());
- if (containsTableSegment(ctx.privilegeClause())) {
- result.getTables().addAll(getTableSegments(ctx.privilegeClause()));
- }
- return result;
+ return new GrantStatement(getDatabaseType(),
containsTableSegment(ctx.privilegeClause()) ?
getTableSegments(ctx.privilegeClause()) : Collections.emptyList());
}
@Override
diff --git
a/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDCLStatementVisitor.java
b/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDCLStatementVisitor.java
index 900e7cdbdf4..4302a983ca8 100644
---
a/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDCLStatementVisitor.java
+++
b/parser/sql/engine/dialect/oracle/src/main/java/org/apache/shardingsphere/sql/parser/engine/oracle/visitor/statement/type/OracleDCLStatementVisitor.java
@@ -54,11 +54,9 @@ public final class OracleDCLStatementVisitor extends
OracleStatementVisitor impl
@Override
public ASTNode visitGrant(final GrantContext ctx) {
- GrantStatement result = new GrantStatement(getDatabaseType());
- if (null != ctx.objectPrivilegeClause() && null !=
ctx.objectPrivilegeClause().onObjectClause().tableName()) {
- result.getTables().add((SimpleTableSegment)
visit(ctx.objectPrivilegeClause().onObjectClause().tableName()));
- }
- return result;
+ return new GrantStatement(getDatabaseType(), null !=
ctx.objectPrivilegeClause() && null !=
ctx.objectPrivilegeClause().onObjectClause().tableName()
+ ? Collections.singleton((SimpleTableSegment)
visit(ctx.objectPrivilegeClause().onObjectClause().tableName()))
+ : Collections.emptyList());
}
@Override
diff --git
a/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/type/PostgreSQLDCLStatementVisitor.java
b/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/type/PostgreSQLDCLStatementVisitor.java
index af322cdc87c..5e468682ba7 100644
---
a/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/type/PostgreSQLDCLStatementVisitor.java
+++
b/parser/sql/engine/dialect/postgresql/src/main/java/org/apache/shardingsphere/sql/parser/engine/postgresql/visitor/statement/type/PostgreSQLDCLStatementVisitor.java
@@ -59,11 +59,7 @@ public final class PostgreSQLDCLStatementVisitor extends
PostgreSQLStatementVisi
@Override
public ASTNode visitGrant(final GrantContext ctx) {
- GrantStatement result = new GrantStatement(getDatabaseType());
- if (containsTableSegment(ctx.privilegeClause())) {
- result.getTables().addAll(getTableSegments(ctx.privilegeClause()));
- }
- return result;
+ return new GrantStatement(getDatabaseType(),
containsTableSegment(ctx.privilegeClause()) ?
getTableSegments(ctx.privilegeClause()) : Collections.emptyList());
}
@Override
diff --git
a/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DCLStatementVisitor.java
b/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DCLStatementVisitor.java
index 99ff0bfd6cb..ef8cab58c32 100644
---
a/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DCLStatementVisitor.java
+++
b/parser/sql/engine/dialect/sql92/src/main/java/org/apache/shardingsphere/sql/parser/engine/sql92/visitor/statement/type/SQL92DCLStatementVisitor.java
@@ -27,6 +27,8 @@ import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dcl.GrantStatement;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dcl.RevokeStatement;
+import java.util.Collections;
+
/**
* DCL statement visitor for SQL92.
*/
@@ -38,11 +40,8 @@ public final class SQL92DCLStatementVisitor extends
SQL92StatementVisitor implem
@Override
public ASTNode visitGrant(final GrantContext ctx) {
- GrantStatement result = new GrantStatement(getDatabaseType());
- if (null != ctx.privilegeClause()) {
- result.getTables().add((SimpleTableSegment)
visit(ctx.privilegeClause().onObjectClause().privilegeLevel().tableName()));
- }
- return result;
+ return new GrantStatement(getDatabaseType(),
+ null == ctx.privilegeClause() ? Collections.emptyList() :
Collections.singleton((SimpleTableSegment)
visit(ctx.privilegeClause().onObjectClause().privilegeLevel().tableName())));
}
@Override
diff --git
a/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDCLStatementVisitor.java
b/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDCLStatementVisitor.java
index e0cfa4875fc..8c131a2261b 100644
---
a/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDCLStatementVisitor.java
+++
b/parser/sql/engine/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/engine/sqlserver/visitor/statement/type/SQLServerDCLStatementVisitor.java
@@ -69,7 +69,9 @@ import
org.apache.shardingsphere.sql.parser.statement.sqlserver.dcl.login.SQLSer
import
org.apache.shardingsphere.sql.parser.statement.sqlserver.dcl.user.SQLServerDenyUserStatement;
import
org.apache.shardingsphere.sql.parser.statement.sqlserver.dcl.user.SQLServerSetUserStatement;
+import java.util.Collection;
import java.util.Collections;
+import java.util.LinkedList;
import java.util.Optional;
/**
@@ -84,19 +86,20 @@ public final class SQLServerDCLStatementVisitor extends
SQLServerStatementVisito
@SuppressWarnings("unchecked")
@Override
public ASTNode visitGrant(final GrantContext ctx) {
- SQLServerGrantStatement result = new
SQLServerGrantStatement(getDatabaseType());
+ Collection<SimpleTableSegment> tables = new LinkedList<>();
+ Collection<ColumnSegment> columns = new LinkedList<>();
if (null != ctx.grantClassPrivilegesClause()) {
- findTableSegment(ctx.grantClassPrivilegesClause().onClassClause(),
ctx.grantClassPrivilegesClause().classPrivileges()).ifPresent(optional ->
result.getTables().add(optional));
+ findTableSegment(ctx.grantClassPrivilegesClause().onClassClause(),
ctx.grantClassPrivilegesClause().classPrivileges()).ifPresent(tables::add);
if (null !=
ctx.grantClassPrivilegesClause().classPrivileges().columnNames()) {
for (ColumnNamesContext each :
ctx.grantClassPrivilegesClause().classPrivileges().columnNames()) {
-
result.getColumns().addAll(((CollectionValue<ColumnSegment>)
visit(each)).getValue());
+ columns.addAll(((CollectionValue<ColumnSegment>)
visit(each)).getValue());
}
}
}
if (null != ctx.grantClassTypePrivilegesClause()) {
-
findTableSegment(ctx.grantClassTypePrivilegesClause().onClassTypeClause()).ifPresent(optional
-> result.getTables().add(optional));
+
findTableSegment(ctx.grantClassTypePrivilegesClause().onClassTypeClause()).ifPresent(tables::add);
}
- return result;
+ return new SQLServerGrantStatement(getDatabaseType(), tables, columns);
}
@SuppressWarnings("unchecked")
diff --git
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dcl/GrantStatement.java
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dcl/GrantStatement.java
index 618e899cabd..c6c132bb17d 100644
---
a/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dcl/GrantStatement.java
+++
b/parser/sql/statement/core/src/main/java/org/apache/shardingsphere/sql/parser/statement/core/statement/type/dcl/GrantStatement.java
@@ -24,7 +24,6 @@ import
org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.S
import
org.apache.shardingsphere.sql.parser.statement.core.statement.attribute.type.TableSQLStatementAttribute;
import java.util.Collection;
-import java.util.LinkedList;
/**
* Grant statement.
@@ -32,16 +31,17 @@ import java.util.LinkedList;
@Getter
public class GrantStatement extends DCLStatement {
- private final Collection<SimpleTableSegment> tables = new LinkedList<>();
+ private final Collection<SimpleTableSegment> tables;
- private SQLStatementAttributes attributes;
+ private final SQLStatementAttributes attributes;
- public GrantStatement(final DatabaseType databaseType) {
+ public GrantStatement(final DatabaseType databaseType, final
Collection<SimpleTableSegment> tables) {
super(databaseType);
+ this.tables = tables;
+ attributes = new SQLStatementAttributes(new
TableSQLStatementAttribute(tables));
}
@Override
public void buildAttributes() {
- attributes = new SQLStatementAttributes(new
TableSQLStatementAttribute(tables));
}
}
diff --git
a/parser/sql/statement/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dcl/MySQLGrantStatement.java
b/parser/sql/statement/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dcl/MySQLGrantStatement.java
index 5cdeee08dfb..f19be150f33 100644
---
a/parser/sql/statement/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dcl/MySQLGrantStatement.java
+++
b/parser/sql/statement/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/statement/mysql/dcl/MySQLGrantStatement.java
@@ -26,6 +26,7 @@ import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.Grant
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dcl.GrantStatement;
import java.util.Collection;
+import java.util.Collections;
import java.util.LinkedList;
/**
@@ -46,6 +47,6 @@ public final class MySQLGrantStatement extends GrantStatement
{
private GrantLevelSegment level;
public MySQLGrantStatement(final DatabaseType databaseType) {
- super(databaseType);
+ super(databaseType, Collections.emptyList());
}
}
diff --git
a/parser/sql/statement/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/statement/sqlserver/dcl/SQLServerGrantStatement.java
b/parser/sql/statement/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/statement/sqlserver/dcl/SQLServerGrantStatement.java
index 17a83110f7f..e57e1cb1e79 100644
---
a/parser/sql/statement/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/statement/sqlserver/dcl/SQLServerGrantStatement.java
+++
b/parser/sql/statement/dialect/sqlserver/src/main/java/org/apache/shardingsphere/sql/parser/statement/sqlserver/dcl/SQLServerGrantStatement.java
@@ -20,10 +20,10 @@ package
org.apache.shardingsphere.sql.parser.statement.sqlserver.dcl;
import lombok.Getter;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
import
org.apache.shardingsphere.sql.parser.statement.core.segment.dml.column.ColumnSegment;
+import
org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
import
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dcl.GrantStatement;
-import java.util.LinkedList;
-import java.util.List;
+import java.util.Collection;
/**
* Grant statement for SQLServer.
@@ -31,9 +31,10 @@ import java.util.List;
@Getter
public final class SQLServerGrantStatement extends GrantStatement {
- private final List<ColumnSegment> columns = new LinkedList<>();
+ private final Collection<ColumnSegment> columns;
- public SQLServerGrantStatement(final DatabaseType databaseType) {
- super(databaseType);
+ public SQLServerGrantStatement(final DatabaseType databaseType, final
Collection<SimpleTableSegment> tables, final Collection<ColumnSegment> columns)
{
+ super(databaseType, tables);
+ this.columns = columns;
}
}
diff --git
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dcl/dialect/mysql/type/MySQLGrantStatementAssert.java
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dcl/dialect/mysql/type/MySQLGrantStatementAssert.java
index a8d8c67fa98..21ca455c487 100644
---
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dcl/dialect/mysql/type/MySQLGrantStatementAssert.java
+++
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/statement/dcl/dialect/mysql/type/MySQLGrantStatementAssert.java
@@ -43,7 +43,7 @@ public final class MySQLGrantStatementAssert {
* @param expected expected grant statement test case
*/
public static void assertIs(final SQLCaseAssertContext assertContext,
final MySQLGrantStatement actual, final GrantStatementTestCase expected) {
- if (null == expected.getTables() || expected.getTables().isEmpty()) {
+ if (expected.getTables().isEmpty()) {
assertThat(assertContext.getText("Actual table should not
exist."), actual.getTables(), is(Collections.emptyList()));
} else {
assertThat(expected.getTables().size(), is(1));