2015-12-10 10:22:49 +00:00
|
|
|
%% -------------------------------------------------------------------
|
|
|
|
%%
|
|
|
|
%% Copyright (c) 2015 Basho Technologies, Inc.
|
|
|
|
%%
|
|
|
|
%% This file is provided to you under the Apache License,
|
|
|
|
%% Version 2.0 (the "License"); you may not use this file
|
|
|
|
%% except in compliance with the License. You may obtain
|
|
|
|
%% a copy of the License at
|
|
|
|
%%
|
|
|
|
%% http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
%%
|
|
|
|
%% Unless required by applicable law or agreed to in writing,
|
|
|
|
%% software distributed under the License is distributed on an
|
|
|
|
%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
|
|
%% KIND, either express or implied. See the License for the
|
|
|
|
%% specific language governing permissions and limitations
|
|
|
|
%% under the License.
|
|
|
|
%%
|
|
|
|
%% -------------------------------------------------------------------
|
|
|
|
|
2016-01-11 17:40:38 +00:00
|
|
|
-module(ts_simple_activate_table_pass_2).
|
2015-12-10 10:22:49 +00:00
|
|
|
|
|
|
|
-behavior(riak_test).
|
|
|
|
|
|
|
|
-include_lib("eunit/include/eunit.hrl").
|
|
|
|
|
|
|
|
-export([confirm/0]).
|
|
|
|
|
|
|
|
confirm() ->
|
2016-11-01 14:03:48 +00:00
|
|
|
Cluster = ts_setup:start_cluster(1),
|
2015-12-10 10:22:49 +00:00
|
|
|
% individual assert matches to show line numbers in failures
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(Cluster, table_def("^"))
|
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(Cluster, table_def("$"))
|
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(Cluster, table_def("!"))
|
|
|
|
),
|
2015-12-10 10:52:41 +00:00
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
2015-12-10 14:44:01 +00:00
|
|
|
Cluster, table_def("mytable", "!", "series", "time"))
|
2015-12-10 10:52:41 +00:00
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
2015-12-10 14:44:01 +00:00
|
|
|
Cluster, table_def("mytable", "#@#@", "series", "time"))
|
2015-12-10 10:52:41 +00:00
|
|
|
),
|
2015-12-10 14:15:50 +00:00
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
2015-12-10 14:44:01 +00:00
|
|
|
Cluster, table_def("mytable", "\\", "series", "time"))
|
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
|
|
|
Cluster, table_def("mytable", "|", "series", "time"))
|
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
|
|
|
Cluster, table_def("mytable", "?", "series", "time"))
|
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
|
|
|
Cluster, table_def("mytable", "%", "series", "time"))
|
|
|
|
),
|
|
|
|
% backticks need to be escaped or sh will error
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
|
|
|
Cluster, table_def("mytable", "\\`", "series", "time"))
|
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
|
|
|
Cluster, table_def("mytable", "{", "series", "time"))
|
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
|
|
|
Cluster, table_def("mytable", "}", "series", "time"))
|
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
|
|
|
Cluster, table_def("mytable", "[", "series", "time"))
|
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
|
|
|
Cluster, table_def("mytable", "]", "series", "time"))
|
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
|
|
|
Cluster, table_def("mytable", ";", "series", "time"))
|
|
|
|
),
|
|
|
|
?assertMatch(
|
|
|
|
{error_creating_bucket_type, _},
|
|
|
|
create_and_activate_bucket_type(
|
|
|
|
Cluster, table_def("mytable", ":", "series", "time"))
|
2015-12-10 14:15:50 +00:00
|
|
|
),
|
2015-12-10 10:22:49 +00:00
|
|
|
pass.
|
|
|
|
|
|
|
|
%%
|
|
|
|
create_and_activate_bucket_type(Cluster, {TableName, DDL}) ->
|
2016-11-01 14:03:48 +00:00
|
|
|
{ok, Out} = ts_setup:create_bucket_type(Cluster, DDL, TableName, 3),
|
2015-12-10 10:22:49 +00:00
|
|
|
case iolist_to_binary(Out) of
|
|
|
|
<<"Error", _/binary>> ->
|
|
|
|
{error_creating_bucket_type, Out};
|
2015-12-10 10:52:41 +00:00
|
|
|
<<"Cannot create", _/binary>> ->
|
|
|
|
{error_creating_bucket_type, Out};
|
2015-12-10 10:22:49 +00:00
|
|
|
_ ->
|
|
|
|
Retries = 0,
|
2016-11-01 14:03:48 +00:00
|
|
|
ts_setup:activate_bucket_type(Cluster, TableName, Retries)
|
2015-12-10 10:22:49 +00:00
|
|
|
end.
|
|
|
|
|
|
|
|
%%
|
|
|
|
table_def(TableName) ->
|
2015-12-10 10:52:41 +00:00
|
|
|
table_def(TableName, "family", "series", "time").
|
|
|
|
|
|
|
|
%%
|
|
|
|
table_def(TableName, FamilyName, SeriesName, TimeName) ->
|
2015-12-10 10:22:49 +00:00
|
|
|
{TableName, lists:flatten(io_lib:format(
|
2015-12-10 14:15:50 +00:00
|
|
|
"CREATE TABLE ~s ("
|
|
|
|
" ~s VARCHAR NOT NULL,"
|
|
|
|
" ~s VARCHAR NOT NULL,"
|
|
|
|
" ~s TIMESTAMP NOT NULL,"
|
|
|
|
" PRIMARY KEY ((~s, ~s, quantum(~s, 15, 'm')), "
|
|
|
|
" ~s, ~s, ~s))",
|
2015-12-10 10:52:41 +00:00
|
|
|
[TableName,
|
|
|
|
FamilyName, SeriesName, TimeName, % column defs
|
|
|
|
FamilyName, SeriesName, TimeName, % partition key
|
|
|
|
FamilyName, SeriesName, TimeName]))}. % local key
|
|
|
|
|