Files
scylladb/validation.hh
Avi Kivity 69a385fd9d Introduce schema/ module
Schema related files are moved there. This excludes schema files that
also interact with mutations, because the mutation module depends on
the schema. Those files will have to go into a separate module.

Closes #12858
2023-02-15 11:01:50 +02:00

35 lines
865 B
C++

/*
* Copyright (C) 2015-present ScyllaDB
*
* Modified by ScyllaDB
*/
/*
* SPDX-License-Identifier: (AGPL-3.0-or-later and Apache-2.0)
*/
#pragma once
#include <seastar/core/sstring.hh>
#include "schema/schema_fwd.hh"
using namespace seastar;
class partition_key_view;
namespace data_dictionary {
class database;
}
namespace validation {
constexpr size_t max_key_size = std::numeric_limits<uint16_t>::max();
// Returns an error string if key is invalid, a disengaged optional otherwise.
std::optional<sstring> is_cql_key_invalid(const schema& schema, partition_key_view key);
void validate_cql_key(const schema& schema, partition_key_view key);
schema_ptr validate_column_family(data_dictionary::database db, const sstring& keyspace_name, const sstring& cf_name);
void validate_keyspace(data_dictionary::database db, const sstring& keyspace_name);
}