You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/10/08 05:55:03 UTC
[shardingsphere] branch master updated: Correct PostgreSQL
CommandCompletion's tag (#12924)
This is an automated email from the ASF dual-hosted git repository.
panjuan 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 e85aafb Correct PostgreSQL CommandCompletion's tag (#12924)
e85aafb is described below
commit e85aafb2f76f31477d9b482e02919b3b27a14858
Author: 吴伟杰 <wu...@apache.org>
AuthorDate: Fri Oct 8 13:54:26 2021 +0800
Correct PostgreSQL CommandCompletion's tag (#12924)
* Correct PostgreSQL CommandCompletion's tag
* Complete tests for PostgreSQLCommand
* Complete PostgreSQLCommand
* Complete PostgreSQLCommand
* Complete PostgreSQLCommand and testcases
---
.../command/query/PostgreSQLCommand.java | 63 ++++++-
.../command/query/PostgreSQLCommandTest.java | 197 +++++++++++++++++++++
2 files changed, 257 insertions(+), 3 deletions(-)
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommand.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommand.java
index 9a705b6..50a10bd 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommand.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommand.java
@@ -21,17 +21,46 @@ import lombok.Getter;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dal.AnalyzeTableStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dal.SetStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterFunctionStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterIndexStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterProcedureStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTablespaceStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterViewStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateDatabaseStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateFunctionStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateIndexStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateProcedureStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateViewStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropDatabaseStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropFunctionStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropIndexStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropProcedureStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTablespaceStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropViewStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.TruncateStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.CallStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.DeleteStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.DoStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.InsertStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.UpdateStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.CommitStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.ReleaseSavepointStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.RollbackStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.RollbackToSavepointStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.SavepointStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.SetTransactionStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal.PostgreSQLResetParameterStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal.PostgreSQLVacuumStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLAlterSequenceStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLCreateSequenceStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLCreateTablespaceStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLDropSequenceStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.tcl.PostgreSQLBeginTransactionStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.tcl.PostgreSQLStartTransactionStatement;
@@ -43,6 +72,7 @@ import java.util.concurrent.ConcurrentHashMap;
/**
* PostgreSQL command.
+ * @see <a href="https://www.postgresql.org/docs/13/sql-commands.html">SQL Commands</a>
*/
@Getter
public enum PostgreSQLCommand {
@@ -51,18 +81,45 @@ public enum PostgreSQLCommand {
INSERT(InsertStatement.class),
UPDATE(UpdateStatement.class),
DELETE(DeleteStatement.class),
+ CALL(CallStatement.class),
+ DO(DoStatement.class),
+ ANALYZE(AnalyzeTableStatement.class),
+ VACUUM(PostgreSQLVacuumStatement.class),
+ ALTER_FUNCTION(AlterFunctionStatement.class),
+ ALTER_INDEX(AlterIndexStatement.class),
+ ALTER_PROCEDURE(AlterProcedureStatement.class),
+ ALTER_SEQUENCE(PostgreSQLAlterSequenceStatement.class),
+ ALTER_TABLESPACE(AlterTablespaceStatement.class),
+ ALTER_TABLE(AlterTableStatement.class),
+ ALTER_VIEW(AlterViewStatement.class),
CREATE(AddResourceStatement.class, CreateShardingTableRuleStatement.class),
CREATE_DATABASE(CreateDatabaseStatement.class),
+ CREATE_FUNCTION(CreateFunctionStatement.class),
+ CREATE_INDEX(CreateIndexStatement.class),
+ CREATE_PROCEDURE(CreateProcedureStatement.class),
+ CREATE_SEQUENCE(PostgreSQLCreateSequenceStatement.class),
+ CREATE_TABLESPACE(PostgreSQLCreateTablespaceStatement.class),
CREATE_TABLE(CreateTableStatement.class),
+ CREATE_VIEW(CreateViewStatement.class),
DROP_DATABASE(DropDatabaseStatement.class),
+ DROP_FUNCTION(DropFunctionStatement.class),
+ DROP_INDEX(DropIndexStatement.class),
+ DROP_PROCEDURE(DropProcedureStatement.class),
+ DROP_SEQUENCE(PostgreSQLDropSequenceStatement.class),
+ DROP_TABLESPACE(DropTablespaceStatement.class),
DROP_TABLE(DropTableStatement.class),
+ DROP_VIEW(DropViewStatement.class),
+ TRUNCATE_TABLE(TruncateStatement.class),
BEGIN(PostgreSQLBeginTransactionStatement.class),
START_TRANSACTION(PostgreSQLStartTransactionStatement.class),
COMMIT(CommitStatement.class),
- ROLLBACK(RollbackStatement.class),
- SET(SetStatement.class);
+ SAVEPOINT(SavepointStatement.class),
+ ROLLBACK(RollbackStatement.class, RollbackToSavepointStatement.class),
+ RELEASE(ReleaseSavepointStatement.class),
+ SET(SetStatement.class, SetTransactionStatement.class),
+ RESET(PostgreSQLResetParameterStatement.class);
- private static final Map<Class<? extends SQLStatement>, Optional<PostgreSQLCommand>> COMPUTED_CLASSES = new ConcurrentHashMap<>(16, 1);
+ private static final Map<Class<? extends SQLStatement>, Optional<PostgreSQLCommand>> COMPUTED_CLASSES = new ConcurrentHashMap<>(64, 1);
private final Collection<Class<? extends SQLStatement>> sqlStatementClasses;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java
index 1200a09..942110f 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/PostgreSQLCommandTest.java
@@ -20,24 +20,52 @@ package org.apache.shardingsphere.proxy.frontend.postgresql.command.query;
import org.apache.shardingsphere.distsql.parser.statement.rdl.create.AddResourceStatement;
import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dal.AnalyzeTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterFunctionStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterIndexStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterProcedureStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterTablespaceStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.AlterViewStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateDatabaseStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateFunctionStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateIndexStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.CreateViewStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropDatabaseStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropFunctionStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropIndexStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropProcedureStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropTablespaceStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.DropViewStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.ddl.TruncateStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.CallStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.DeleteStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.DoStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.InsertStatement;
+import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.UpdateStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal.PostgreSQLResetParameterStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal.PostgreSQLSetStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal.PostgreSQLVacuumStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLAlterSequenceStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLCreateDatabaseStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLCreateProcedureStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLCreateSequenceStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLCreateTableStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLCreateTablespaceStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLDropDatabaseStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLDropSequenceStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.ddl.PostgreSQLDropTableStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLDeleteStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLInsertStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dml.PostgreSQLUpdateStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.tcl.PostgreSQLBeginTransactionStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.tcl.PostgreSQLCommitStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.tcl.PostgreSQLReleaseSavepointStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.tcl.PostgreSQLRollbackStatement;
+import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.tcl.PostgreSQLSavepointStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.tcl.PostgreSQLStartTransactionStatement;
import org.junit.Test;
@@ -53,6 +81,12 @@ public final class PostgreSQLCommandTest {
}
@Test
+ public void assertValueOfSelectStatement() {
+ assertThat(PostgreSQLCommand.valueOf(SelectStatement.class).orElse(null), is(PostgreSQLCommand.SELECT));
+ assertThat(PostgreSQLCommand.SELECT.getTag(), is("SELECT"));
+ }
+
+ @Test
public void assertValueOfInsertStatement() {
assertThat(PostgreSQLCommand.valueOf(InsertStatement.class).orElse(null), is(PostgreSQLCommand.INSERT));
assertThat(PostgreSQLCommand.valueOf(PostgreSQLInsertStatement.class).orElse(null), is(PostgreSQLCommand.INSERT));
@@ -74,6 +108,72 @@ public final class PostgreSQLCommandTest {
}
@Test
+ public void assertValueOfCallStatement() {
+ assertThat(PostgreSQLCommand.valueOf(CallStatement.class).orElse(null), is(PostgreSQLCommand.CALL));
+ assertThat(PostgreSQLCommand.CALL.getTag(), is("CALL"));
+ }
+
+ @Test
+ public void assertValueOfDoStatement() {
+ assertThat(PostgreSQLCommand.valueOf(DoStatement.class).orElse(null), is(PostgreSQLCommand.DO));
+ assertThat(PostgreSQLCommand.DO.getTag(), is("DO"));
+ }
+
+ @Test
+ public void assertValueOfAnalyzeStatement() {
+ assertThat(PostgreSQLCommand.valueOf(AnalyzeTableStatement.class).orElse(null), is(PostgreSQLCommand.ANALYZE));
+ assertThat(PostgreSQLCommand.ANALYZE.getTag(), is("ANALYZE"));
+ }
+
+ @Test
+ public void assertValueOfVacuumStatement() {
+ assertThat(PostgreSQLCommand.valueOf(PostgreSQLVacuumStatement.class).orElse(null), is(PostgreSQLCommand.VACUUM));
+ assertThat(PostgreSQLCommand.VACUUM.getTag(), is("VACUUM"));
+ }
+
+ @Test
+ public void assertValueOfAlterFunctionStatement() {
+ assertThat(PostgreSQLCommand.valueOf(AlterFunctionStatement.class).orElse(null), is(PostgreSQLCommand.ALTER_FUNCTION));
+ assertThat(PostgreSQLCommand.ALTER_FUNCTION.getTag(), is("ALTER FUNCTION"));
+ }
+
+ @Test
+ public void assertValueOfAlterIndexStatement() {
+ assertThat(PostgreSQLCommand.valueOf(AlterIndexStatement.class).orElse(null), is(PostgreSQLCommand.ALTER_INDEX));
+ assertThat(PostgreSQLCommand.ALTER_INDEX.getTag(), is("ALTER INDEX"));
+ }
+
+ @Test
+ public void assertValueOfAlterProcedureStatement() {
+ assertThat(PostgreSQLCommand.valueOf(AlterProcedureStatement.class).orElse(null), is(PostgreSQLCommand.ALTER_PROCEDURE));
+ assertThat(PostgreSQLCommand.ALTER_PROCEDURE.getTag(), is("ALTER PROCEDURE"));
+ }
+
+ @Test
+ public void assertValueOfAlterSequenceStatement() {
+ assertThat(PostgreSQLCommand.valueOf(PostgreSQLAlterSequenceStatement.class).orElse(null), is(PostgreSQLCommand.ALTER_SEQUENCE));
+ assertThat(PostgreSQLCommand.ALTER_SEQUENCE.getTag(), is("ALTER SEQUENCE"));
+ }
+
+ @Test
+ public void assertValueOfAlterTablespaceStatement() {
+ assertThat(PostgreSQLCommand.valueOf(AlterTablespaceStatement.class).orElse(null), is(PostgreSQLCommand.ALTER_TABLESPACE));
+ assertThat(PostgreSQLCommand.ALTER_TABLESPACE.getTag(), is("ALTER TABLESPACE"));
+ }
+
+ @Test
+ public void assertValueOfAlterTableStatement() {
+ assertThat(PostgreSQLCommand.valueOf(AlterTableStatement.class).orElse(null), is(PostgreSQLCommand.ALTER_TABLE));
+ assertThat(PostgreSQLCommand.ALTER_TABLE.getTag(), is("ALTER TABLE"));
+ }
+
+ @Test
+ public void assertValueOfAlterViewStatement() {
+ assertThat(PostgreSQLCommand.valueOf(AlterViewStatement.class).orElse(null), is(PostgreSQLCommand.ALTER_VIEW));
+ assertThat(PostgreSQLCommand.ALTER_VIEW.getTag(), is("ALTER VIEW"));
+ }
+
+ @Test
public void assertValueOfCreateShardingTableRuleOrCreateDataSourcesStatement() {
assertThat(PostgreSQLCommand.valueOf(AddResourceStatement.class).orElse(null), is(PostgreSQLCommand.CREATE));
assertThat(PostgreSQLCommand.valueOf(CreateShardingTableRuleStatement.class).orElse(null), is(PostgreSQLCommand.CREATE));
@@ -88,6 +188,36 @@ public final class PostgreSQLCommandTest {
}
@Test
+ public void assertValueOfCreateFunctionStatement() {
+ assertThat(PostgreSQLCommand.valueOf(CreateFunctionStatement.class).orElse(null), is(PostgreSQLCommand.CREATE_FUNCTION));
+ assertThat(PostgreSQLCommand.CREATE_FUNCTION.getTag(), is("CREATE FUNCTION"));
+ }
+
+ @Test
+ public void assertValueOfCreateIndexStatement() {
+ assertThat(PostgreSQLCommand.valueOf(CreateIndexStatement.class).orElse(null), is(PostgreSQLCommand.CREATE_INDEX));
+ assertThat(PostgreSQLCommand.CREATE_INDEX.getTag(), is("CREATE INDEX"));
+ }
+
+ @Test
+ public void assertValueOfCreateProcedureStatement() {
+ assertThat(PostgreSQLCommand.valueOf(PostgreSQLCreateProcedureStatement.class).orElse(null), is(PostgreSQLCommand.CREATE_PROCEDURE));
+ assertThat(PostgreSQLCommand.CREATE_PROCEDURE.getTag(), is("CREATE PROCEDURE"));
+ }
+
+ @Test
+ public void assertValueOfCreateSequenceStatement() {
+ assertThat(PostgreSQLCommand.valueOf(PostgreSQLCreateSequenceStatement.class).orElse(null), is(PostgreSQLCommand.CREATE_SEQUENCE));
+ assertThat(PostgreSQLCommand.CREATE_SEQUENCE.getTag(), is("CREATE SEQUENCE"));
+ }
+
+ @Test
+ public void assertValueOfCreateTablespaceStatement() {
+ assertThat(PostgreSQLCommand.valueOf(PostgreSQLCreateTablespaceStatement.class).orElse(null), is(PostgreSQLCommand.CREATE_TABLESPACE));
+ assertThat(PostgreSQLCommand.CREATE_TABLESPACE.getTag(), is("CREATE TABLESPACE"));
+ }
+
+ @Test
public void assertValueOfCreateTableStatement() {
assertThat(PostgreSQLCommand.valueOf(CreateTableStatement.class).orElse(null), is(PostgreSQLCommand.CREATE_TABLE));
assertThat(PostgreSQLCommand.valueOf(PostgreSQLCreateTableStatement.class).orElse(null), is(PostgreSQLCommand.CREATE_TABLE));
@@ -95,6 +225,12 @@ public final class PostgreSQLCommandTest {
}
@Test
+ public void assertValueOfCreateViewStatement() {
+ assertThat(PostgreSQLCommand.valueOf(CreateViewStatement.class).orElse(null), is(PostgreSQLCommand.CREATE_VIEW));
+ assertThat(PostgreSQLCommand.CREATE_VIEW.getTag(), is("CREATE VIEW"));
+ }
+
+ @Test
public void assertValueOfDropDatabaseStatement() {
assertThat(PostgreSQLCommand.valueOf(DropDatabaseStatement.class).orElse(null), is(PostgreSQLCommand.DROP_DATABASE));
assertThat(PostgreSQLCommand.valueOf(PostgreSQLDropDatabaseStatement.class).orElse(null), is(PostgreSQLCommand.DROP_DATABASE));
@@ -102,9 +238,52 @@ public final class PostgreSQLCommandTest {
}
@Test
+ public void assertValueOfDropFunctionStatement() {
+ assertThat(PostgreSQLCommand.valueOf(DropFunctionStatement.class).orElse(null), is(PostgreSQLCommand.DROP_FUNCTION));
+ assertThat(PostgreSQLCommand.DROP_FUNCTION.getTag(), is("DROP FUNCTION"));
+ }
+
+ @Test
+ public void assertValueOfDropIndexStatement() {
+ assertThat(PostgreSQLCommand.valueOf(DropIndexStatement.class).orElse(null), is(PostgreSQLCommand.DROP_INDEX));
+ assertThat(PostgreSQLCommand.DROP_INDEX.getTag(), is("DROP INDEX"));
+ }
+
+ @Test
+ public void assertValueOfDropProcedureStatement() {
+ assertThat(PostgreSQLCommand.valueOf(DropProcedureStatement.class).orElse(null), is(PostgreSQLCommand.DROP_PROCEDURE));
+ assertThat(PostgreSQLCommand.DROP_PROCEDURE.getTag(), is("DROP PROCEDURE"));
+ }
+
+ @Test
+ public void assertValueOfDropSequenceStatement() {
+ assertThat(PostgreSQLCommand.valueOf(PostgreSQLDropSequenceStatement.class).orElse(null), is(PostgreSQLCommand.DROP_SEQUENCE));
+ assertThat(PostgreSQLCommand.DROP_SEQUENCE.getTag(), is("DROP SEQUENCE"));
+ }
+
+ @Test
+ public void assertValueOfDropTablespaceStatement() {
+ assertThat(PostgreSQLCommand.valueOf(DropTablespaceStatement.class).orElse(null), is(PostgreSQLCommand.DROP_TABLESPACE));
+ assertThat(PostgreSQLCommand.DROP_TABLESPACE.getTag(), is("DROP TABLESPACE"));
+ }
+
+ @Test
public void assertValueOfDropTableStatement() {
assertThat(PostgreSQLCommand.valueOf(DropTableStatement.class).orElse(null), is(PostgreSQLCommand.DROP_TABLE));
assertThat(PostgreSQLCommand.valueOf(PostgreSQLDropTableStatement.class).orElse(null), is(PostgreSQLCommand.DROP_TABLE));
+ assertThat(PostgreSQLCommand.DROP_TABLE.getTag(), is("DROP TABLE"));
+ }
+
+ @Test
+ public void assertValueOfDropViewStatement() {
+ assertThat(PostgreSQLCommand.valueOf(DropViewStatement.class).orElse(null), is(PostgreSQLCommand.DROP_VIEW));
+ assertThat(PostgreSQLCommand.DROP_VIEW.getTag(), is("DROP VIEW"));
+ }
+
+ @Test
+ public void assertValueOfTruncateStatement() {
+ assertThat(PostgreSQLCommand.valueOf(TruncateStatement.class).orElse(null), is(PostgreSQLCommand.TRUNCATE_TABLE));
+ assertThat(PostgreSQLCommand.TRUNCATE_TABLE.getTag(), is("TRUNCATE TABLE"));
}
@Test
@@ -126,14 +305,32 @@ public final class PostgreSQLCommandTest {
}
@Test
+ public void assertValueOfSavepointStatement() {
+ assertThat(PostgreSQLCommand.valueOf(PostgreSQLSavepointStatement.class).orElse(null), is(PostgreSQLCommand.SAVEPOINT));
+ assertThat(PostgreSQLCommand.SAVEPOINT.getTag(), is("SAVEPOINT"));
+ }
+
+ @Test
public void assertValueOfRollbackStatement() {
assertThat(PostgreSQLCommand.valueOf(PostgreSQLRollbackStatement.class).orElse(null), is(PostgreSQLCommand.ROLLBACK));
assertThat(PostgreSQLCommand.ROLLBACK.getTag(), is("ROLLBACK"));
}
@Test
+ public void assertValueOfReleaseSavepointStatement() {
+ assertThat(PostgreSQLCommand.valueOf(PostgreSQLReleaseSavepointStatement.class).orElse(null), is(PostgreSQLCommand.RELEASE));
+ assertThat(PostgreSQLCommand.RELEASE.getTag(), is("RELEASE"));
+ }
+
+ @Test
public void assertValueOfSetStatement() {
assertThat(PostgreSQLCommand.valueOf(PostgreSQLSetStatement.class).orElse(null), is(PostgreSQLCommand.SET));
assertThat(PostgreSQLCommand.SET.getTag(), is("SET"));
}
+
+ @Test
+ public void assertValueOfResetStatement() {
+ assertThat(PostgreSQLCommand.valueOf(PostgreSQLResetParameterStatement.class).orElse(null), is(PostgreSQLCommand.RESET));
+ assertThat(PostgreSQLCommand.RESET.getTag(), is("RESET"));
+ }
}