Search in sources :

Example 1 with AlterUser

use of org.h2.command.ddl.AlterUser in project h2database by h2database.

the class Parser method parseAlterUser.

private AlterUser parseAlterUser() {
    String userName = readUniqueIdentifier();
    if (readIf("SET")) {
        AlterUser command = new AlterUser(session);
        command.setType(CommandInterface.ALTER_USER_SET_PASSWORD);
        command.setUser(database.getUser(userName));
        if (readIf("PASSWORD")) {
            command.setPassword(readExpression());
        } else if (readIf("SALT")) {
            command.setSalt(readExpression());
            read("HASH");
            command.setHash(readExpression());
        } else {
            throw getSyntaxError();
        }
        return command;
    } else if (readIf("RENAME")) {
        read("TO");
        AlterUser command = new AlterUser(session);
        command.setType(CommandInterface.ALTER_USER_RENAME);
        command.setUser(database.getUser(userName));
        String newName = readUniqueIdentifier();
        command.setNewName(newName);
        return command;
    } else if (readIf("ADMIN")) {
        AlterUser command = new AlterUser(session);
        command.setType(CommandInterface.ALTER_USER_ADMIN);
        User user = database.getUser(userName);
        command.setUser(user);
        if (readIf("TRUE")) {
            command.setAdmin(true);
        } else if (readIf("FALSE")) {
            command.setAdmin(false);
        } else {
            throw getSyntaxError();
        }
        return command;
    }
    throw getSyntaxError();
}
Also used : AlterUser(org.h2.command.ddl.AlterUser) User(org.h2.engine.User) DropUser(org.h2.command.ddl.DropUser) CreateUser(org.h2.command.ddl.CreateUser) ValueString(org.h2.value.ValueString) AlterUser(org.h2.command.ddl.AlterUser)

Example 2 with AlterUser

use of org.h2.command.ddl.AlterUser 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

AlterUser (org.h2.command.ddl.AlterUser)2 ValueString (org.h2.value.ValueString)2 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 LinkedHashSet (java.util.LinkedHashSet)1 AlterTableAddConstraint (org.h2.command.ddl.AlterTableAddConstraint)1 AlterTableDropConstraint (org.h2.command.ddl.AlterTableDropConstraint)1 AlterTableRenameConstraint (org.h2.command.ddl.AlterTableRenameConstraint)1 CreateUser (org.h2.command.ddl.CreateUser)1 DropUser (org.h2.command.ddl.DropUser)1 AlterTableSet (org.h2.command.dml.AlterTableSet)1 NoOperation (org.h2.command.dml.NoOperation)1 Set (org.h2.command.dml.Set)1 TransactionCommand (org.h2.command.dml.TransactionCommand)1 User (org.h2.engine.User)1