Search in sources :

Example 1 with TransactionCommand

use of org.h2.command.dml.TransactionCommand in project h2database by h2database.

the class Parser method parsePrepare.

private Prepared parsePrepare() {
    if (readIf("COMMIT")) {
        TransactionCommand command = new TransactionCommand(session, CommandInterface.PREPARE_COMMIT);
        command.setTransactionName(readUniqueIdentifier());
        return command;
    }
    String procedureName = readAliasIdentifier();
    if (readIf("(")) {
        ArrayList<Column> list = New.arrayList();
        for (int i = 0; ; i++) {
            Column column = parseColumnForTable("C" + i, true);
            list.add(column);
            if (readIf(")")) {
                break;
            }
            read(",");
        }
    }
    read("AS");
    Prepared prep = parsePrepared();
    PrepareProcedure command = new PrepareProcedure(session);
    command.setProcedureName(procedureName);
    command.setPrepared(prep);
    return command;
}
Also used : AlterTableRenameColumn(org.h2.command.ddl.AlterTableRenameColumn) AlterTableAlterColumn(org.h2.command.ddl.AlterTableAlterColumn) Column(org.h2.table.Column) ExpressionColumn(org.h2.expression.ExpressionColumn) IndexColumn(org.h2.table.IndexColumn) PrepareProcedure(org.h2.command.ddl.PrepareProcedure) TransactionCommand(org.h2.command.dml.TransactionCommand) ValueString(org.h2.value.ValueString) AlterTableRenameConstraint(org.h2.command.ddl.AlterTableRenameConstraint) AlterTableAddConstraint(org.h2.command.ddl.AlterTableAddConstraint) AlterTableDropConstraint(org.h2.command.ddl.AlterTableDropConstraint)

Example 2 with TransactionCommand

use of org.h2.command.dml.TransactionCommand in project h2database by h2database.

the class Parser method parseRollback.

private TransactionCommand parseRollback() {
    TransactionCommand command;
    if (readIf("TRANSACTION")) {
        command = new TransactionCommand(session, CommandInterface.ROLLBACK_TRANSACTION);
        command.setTransactionName(readUniqueIdentifier());
        return command;
    }
    if (readIf("TO")) {
        read("SAVEPOINT");
        command = new TransactionCommand(session, CommandInterface.ROLLBACK_TO_SAVEPOINT);
        command.setSavepointName(readUniqueIdentifier());
    } else {
        readIf("WORK");
        command = new TransactionCommand(session, CommandInterface.ROLLBACK);
    }
    return command;
}
Also used : TransactionCommand(org.h2.command.dml.TransactionCommand)

Example 3 with TransactionCommand

use of org.h2.command.dml.TransactionCommand in project h2database by h2database.

the class Parser method parseCommit.

private TransactionCommand parseCommit() {
    TransactionCommand command;
    if (readIf("TRANSACTION")) {
        command = new TransactionCommand(session, CommandInterface.COMMIT_TRANSACTION);
        command.setTransactionName(readUniqueIdentifier());
        return command;
    }
    command = new TransactionCommand(session, CommandInterface.COMMIT);
    readIf("WORK");
    return command;
}
Also used : TransactionCommand(org.h2.command.dml.TransactionCommand)

Example 4 with TransactionCommand

use of org.h2.command.dml.TransactionCommand in project h2database by h2database.

the class Parser method parseBegin.

private TransactionCommand parseBegin() {
    TransactionCommand command;
    if (!readIf("WORK")) {
        readIf("TRANSACTION");
    }
    command = new TransactionCommand(session, CommandInterface.BEGIN);
    return command;
}
Also used : TransactionCommand(org.h2.command.dml.TransactionCommand)

Example 5 with TransactionCommand

use of org.h2.command.dml.TransactionCommand in project h2database by h2database.

the class Parser method parseSet.

private Prepared parseSet() {
    if (readIf("@")) {
        Set command = new Set(session, SetTypes.VARIABLE);
        command.setString(readAliasIdentifier());
        readIfEqualOrTo();
        command.setExpression(readExpression());
        return command;
    } else if (readIf("AUTOCOMMIT")) {
        readIfEqualOrTo();
        boolean value = readBooleanSetting();
        int setting = value ? CommandInterface.SET_AUTOCOMMIT_TRUE : CommandInterface.SET_AUTOCOMMIT_FALSE;
        return new TransactionCommand(session, setting);
    } else if (readIf("MVCC")) {
        readIfEqualOrTo();
        boolean value = readBooleanSetting();
        Set command = new Set(session, SetTypes.MVCC);
        command.setInt(value ? 1 : 0);
        return command;
    } else if (readIf("EXCLUSIVE")) {
        readIfEqualOrTo();
        Set command = new Set(session, SetTypes.EXCLUSIVE);
        command.setExpression(readExpression());
        return command;
    } else if (readIf("IGNORECASE")) {
        readIfEqualOrTo();
        boolean value = readBooleanSetting();
        Set command = new Set(session, SetTypes.IGNORECASE);
        command.setInt(value ? 1 : 0);
        return command;
    } else if (readIf("PASSWORD")) {
        readIfEqualOrTo();
        AlterUser command = new AlterUser(session);
        command.setType(CommandInterface.ALTER_USER_SET_PASSWORD);
        command.setUser(session.getUser());
        command.setPassword(readExpression());
        return command;
    } else if (readIf("SALT")) {
        readIfEqualOrTo();
        AlterUser command = new AlterUser(session);
        command.setType(CommandInterface.ALTER_USER_SET_PASSWORD);
        command.setUser(session.getUser());
        command.setSalt(readExpression());
        read("HASH");
        command.setHash(readExpression());
        return command;
    } else if (readIf("MODE")) {
        readIfEqualOrTo();
        Set command = new Set(session, SetTypes.MODE);
        command.setString(readAliasIdentifier());
        return command;
    } else if (readIf("COMPRESS_LOB")) {
        readIfEqualOrTo();
        Set command = new Set(session, SetTypes.COMPRESS_LOB);
        if (currentTokenType == VALUE) {
            command.setString(readString());
        } else {
            command.setString(readUniqueIdentifier());
        }
        return command;
    } else if (readIf("DATABASE")) {
        readIfEqualOrTo();
        read("COLLATION");
        return parseSetCollation();
    } else if (readIf("COLLATION")) {
        readIfEqualOrTo();
        return parseSetCollation();
    } else if (readIf("BINARY_COLLATION")) {
        readIfEqualOrTo();
        return parseSetBinaryCollation();
    } else if (readIf("CLUSTER")) {
        readIfEqualOrTo();
        Set command = new Set(session, SetTypes.CLUSTER);
        command.setString(readString());
        return command;
    } else if (readIf("DATABASE_EVENT_LISTENER")) {
        readIfEqualOrTo();
        Set command = new Set(session, SetTypes.DATABASE_EVENT_LISTENER);
        command.setString(readString());
        return command;
    } else if (readIf("ALLOW_LITERALS")) {
        readIfEqualOrTo();
        Set command = new Set(session, SetTypes.ALLOW_LITERALS);
        if (readIf("NONE")) {
            command.setInt(Constants.ALLOW_LITERALS_NONE);
        } else if (readIf("ALL")) {
            command.setInt(Constants.ALLOW_LITERALS_ALL);
        } else if (readIf("NUMBERS")) {
            command.setInt(Constants.ALLOW_LITERALS_NUMBERS);
        } else {
            command.setInt(readPositiveInt());
        }
        return command;
    } else if (readIf("DEFAULT_TABLE_TYPE")) {
        readIfEqualOrTo();
        Set command = new Set(session, SetTypes.DEFAULT_TABLE_TYPE);
        if (readIf("MEMORY")) {
            command.setInt(Table.TYPE_MEMORY);
        } else if (readIf("CACHED")) {
            command.setInt(Table.TYPE_CACHED);
        } else {
            command.setInt(readPositiveInt());
        }
        return command;
    } else if (readIf("CREATE")) {
        readIfEqualOrTo();
        // Derby compatibility (CREATE=TRUE in the database URL)
        read();
        return new NoOperation(session);
    } else if (readIf("HSQLDB.DEFAULT_TABLE_TYPE")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("PAGE_STORE")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("CACHE_TYPE")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("FILE_LOCK")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("DB_CLOSE_ON_EXIT")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("AUTO_SERVER")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("AUTO_SERVER_PORT")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("AUTO_RECONNECT")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("ASSERT")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("ACCESS_MODE_DATA")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("OPEN_NEW")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("JMX")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("PAGE_SIZE")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("RECOVER")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("NAMES")) {
        // Quercus PHP MySQL driver compatibility
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("SCOPE_GENERATED_KEYS")) {
        readIfEqualOrTo();
        read();
        return new NoOperation(session);
    } else if (readIf("SCHEMA")) {
        readIfEqualOrTo();
        Set command = new Set(session, SetTypes.SCHEMA);
        command.setString(readAliasIdentifier());
        return command;
    } else if (readIf("DATESTYLE")) {
        // PostgreSQL compatibility
        readIfEqualOrTo();
        if (!readIf("ISO")) {
            String s = readString();
            if (!equalsToken(s, "ISO")) {
                throw getSyntaxError();
            }
        }
        return new NoOperation(session);
    } else if (readIf("SEARCH_PATH") || readIf(SetTypes.getTypeName(SetTypes.SCHEMA_SEARCH_PATH))) {
        readIfEqualOrTo();
        Set command = new Set(session, SetTypes.SCHEMA_SEARCH_PATH);
        ArrayList<String> list = New.arrayList();
        list.add(readAliasIdentifier());
        while (readIf(",")) {
            list.add(readAliasIdentifier());
        }
        command.setStringArray(list.toArray(new String[0]));
        return command;
    } else if (readIf("JAVA_OBJECT_SERIALIZER")) {
        readIfEqualOrTo();
        return parseSetJavaObjectSerializer();
    } else {
        if (isToken("LOGSIZE")) {
            // HSQLDB compatibility
            currentToken = SetTypes.getTypeName(SetTypes.MAX_LOG_SIZE);
        }
        if (isToken("FOREIGN_KEY_CHECKS")) {
            // MySQL compatibility
            currentToken = SetTypes.getTypeName(SetTypes.REFERENTIAL_INTEGRITY);
        }
        int type = SetTypes.getType(currentToken);
        if (type < 0) {
            throw getSyntaxError();
        }
        read();
        readIfEqualOrTo();
        Set command = new Set(session, type);
        command.setExpression(readExpression());
        return command;
    }
}
Also used : Set(org.h2.command.dml.Set) LinkedHashSet(java.util.LinkedHashSet) AlterTableSet(org.h2.command.dml.AlterTableSet) HashSet(java.util.HashSet) NoOperation(org.h2.command.dml.NoOperation) ArrayList(java.util.ArrayList) TransactionCommand(org.h2.command.dml.TransactionCommand) AlterUser(org.h2.command.ddl.AlterUser) ValueString(org.h2.value.ValueString) AlterTableRenameConstraint(org.h2.command.ddl.AlterTableRenameConstraint) AlterTableAddConstraint(org.h2.command.ddl.AlterTableAddConstraint) AlterTableDropConstraint(org.h2.command.ddl.AlterTableDropConstraint)

Aggregations

TransactionCommand (org.h2.command.dml.TransactionCommand)6 AlterTableAddConstraint (org.h2.command.ddl.AlterTableAddConstraint)2 AlterTableDropConstraint (org.h2.command.ddl.AlterTableDropConstraint)2 AlterTableRenameConstraint (org.h2.command.ddl.AlterTableRenameConstraint)2 ValueString (org.h2.value.ValueString)2 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 LinkedHashSet (java.util.LinkedHashSet)1 AlterTableAlterColumn (org.h2.command.ddl.AlterTableAlterColumn)1 AlterTableRenameColumn (org.h2.command.ddl.AlterTableRenameColumn)1 AlterUser (org.h2.command.ddl.AlterUser)1 PrepareProcedure (org.h2.command.ddl.PrepareProcedure)1 AlterTableSet (org.h2.command.dml.AlterTableSet)1 NoOperation (org.h2.command.dml.NoOperation)1 Set (org.h2.command.dml.Set)1 ExpressionColumn (org.h2.expression.ExpressionColumn)1 Column (org.h2.table.Column)1 IndexColumn (org.h2.table.IndexColumn)1