public void checkAccess(ClientState state) throws UnauthorizedException, InvalidRequestException { CFMetaData baseTable = View.findBaseTable(keyspace(), columnFamily()); if (baseTable != null) state.hasColumnFamilyAccess(keyspace(), baseTable.cfName, Permission.ALTER); }
expr = new AlterViewStatement(name, attrs);
expr = new AlterViewStatement(name, attrs);
public void checkAccess(ClientState state) throws UnauthorizedException, InvalidRequestException { CFMetaData baseTable = View.findBaseTable(keyspace(), columnFamily()); if (baseTable != null) state.hasColumnFamilyAccess(keyspace(), baseTable.cfName, Permission.ALTER); }
expr = new AlterViewStatement(name, attrs);
public void checkAccess(ClientState state) throws UnauthorizedException, InvalidRequestException { CFMetaData baseTable = View.findBaseTable(keyspace(), columnFamily()); if (baseTable != null) state.hasColumnFamilyAccess(keyspace(), baseTable.cfName, Permission.ALTER); }
public Event.SchemaChange announceMigration(QueryState queryState, boolean isLocalOnly) throws RequestValidationException { CFMetaData meta = validateColumnFamily(keyspace(), columnFamily()); if (!meta.isView()) throw new InvalidRequestException("Cannot use ALTER MATERIALIZED VIEW on Table"); ViewDefinition viewCopy = Schema.instance.getView(keyspace(), columnFamily()).copy(); if (attrs == null) throw new InvalidRequestException("ALTER MATERIALIZED VIEW WITH invoked, but no parameters found"); attrs.validate(); TableParams params = attrs.asAlteredTableParams(viewCopy.metadata.params); if (params.gcGraceSeconds == 0) { throw new InvalidRequestException("Cannot alter gc_grace_seconds of a materialized view to 0, since this " + "value is used to TTL undelivered updates. Setting gc_grace_seconds too " + "low might cause undelivered updates to expire before being replayed."); } if (params.defaultTimeToLive > 0) { throw new InvalidRequestException("Cannot set or alter default_time_to_live for a materialized view. " + "Data in a materialized view always expire at the same time than " + "the corresponding data in the parent table."); } viewCopy.metadata.params(params); MigrationManager.announceViewUpdate(viewCopy, isLocalOnly); return new Event.SchemaChange(Event.SchemaChange.Change.UPDATED, Event.SchemaChange.Target.TABLE, keyspace(), columnFamily()); }
public Event.SchemaChange announceMigration(QueryState queryState, boolean isLocalOnly) throws RequestValidationException { CFMetaData meta = validateColumnFamily(keyspace(), columnFamily()); if (!meta.isView()) throw new InvalidRequestException("Cannot use ALTER MATERIALIZED VIEW on Table"); ViewDefinition viewCopy = Schema.instance.getView(keyspace(), columnFamily()).copy(); if (attrs == null) throw new InvalidRequestException("ALTER MATERIALIZED VIEW WITH invoked, but no parameters found"); attrs.validate(); TableParams params = attrs.asAlteredTableParams(viewCopy.metadata.params); if (params.gcGraceSeconds == 0) { throw new InvalidRequestException("Cannot alter gc_grace_seconds of a materialized view to 0, since this " + "value is used to TTL undelivered updates. Setting gc_grace_seconds too " + "low might cause undelivered updates to expire before being replayed."); } if (params.defaultTimeToLive > 0) { throw new InvalidRequestException("Cannot set or alter default_time_to_live for a materialized view. " + "Data in a materialized view always expire at the same time than " + "the corresponding data in the parent table."); } viewCopy.metadata.params(params); MigrationManager.announceViewUpdate(viewCopy, isLocalOnly); return new Event.SchemaChange(Event.SchemaChange.Change.UPDATED, Event.SchemaChange.Target.TABLE, keyspace(), columnFamily()); }
public Event.SchemaChange announceMigration(QueryState queryState, boolean isLocalOnly) throws RequestValidationException { CFMetaData meta = validateColumnFamily(keyspace(), columnFamily()); if (!meta.isView()) throw new InvalidRequestException("Cannot use ALTER MATERIALIZED VIEW on Table"); ViewDefinition viewCopy = Schema.instance.getView(keyspace(), columnFamily()).copy(); if (attrs == null) throw new InvalidRequestException("ALTER MATERIALIZED VIEW WITH invoked, but no parameters found"); attrs.validate(); TableParams params = attrs.asAlteredTableParams(viewCopy.metadata.params); if (params.gcGraceSeconds == 0) { throw new InvalidRequestException("Cannot alter gc_grace_seconds of a materialized view to 0, since this " + "value is used to TTL undelivered updates. Setting gc_grace_seconds too " + "low might cause undelivered updates to expire before being replayed."); } if (params.defaultTimeToLive > 0) { throw new InvalidRequestException("Cannot set or alter default_time_to_live for a materialized view. " + "Data in a materialized view always expire at the same time than " + "the corresponding data in the parent table."); } viewCopy.metadata.params(params); MigrationManager.announceViewUpdate(viewCopy, isLocalOnly); return new Event.SchemaChange(Event.SchemaChange.Change.UPDATED, Event.SchemaChange.Target.TABLE, keyspace(), columnFamily()); }