Merged in remove-namespace (pull request #35)

This commit is contained in:
RobAtticus NA 2017-01-19 17:29:30 +00:00
commit 564c4f2bbe
22 changed files with 216 additions and 236 deletions

View File

@ -2,12 +2,12 @@
-- PREFIX IO -- PREFIX IO
-- IO000 - GROUP: query errors -- IO000 - GROUP: query errors
-- IO001 - namespace does not exist -- IO001 - hypertable does not exist
-- IO002 - field does not exist -- IO002 - field does not exist
--IO100 - GROUP: DDL errors --IO100 - GROUP: DDL errors
--IO101 - operation not supported --IO101 - operation not supported
--IO102 - no partitioning field for namespace --IO102 - no partitioning field for hypertable
--IO103 - unknown index type --IO103 - unknown index type
--IO104 - illegal name/identifier. --IO104 - illegal name/identifier.

View File

@ -32,7 +32,7 @@ BEGIN
CREATE TYPE time_condition_type AS (from_time BIGINT, to_time BIGINT); --from_time inclusive; to_time exclusive CREATE TYPE time_condition_type AS (from_time BIGINT, to_time BIGINT); --from_time inclusive; to_time exclusive
CREATE TYPE ioql_query AS ( CREATE TYPE ioql_query AS (
namespace_name TEXT, -- NOT NULL hypertable_name TEXT, -- NOT NULL
select_items select_item [], -- NULL to return row, not null for aggregating select_items select_item [], -- NULL to return row, not null for aggregating
aggregate aggregate_type, --op, group_field and group_time aggregate aggregate_type, --op, group_field and group_time
time_condition time_condition_type, --time limits, from and to time_condition time_condition_type, --time limits, from and to
@ -44,7 +44,7 @@ BEGIN
CREATE TYPE time_range AS (start_time BIGINT, end_time BIGINT); CREATE TYPE time_range AS (start_time BIGINT, end_time BIGINT);
CREATE TYPE namespace_partition_type AS (namespace_name NAME, partition_number SMALLINT, total_partitions SMALLINT); CREATE TYPE hypertable_partition_type AS (hypertable_name NAME, partition_number SMALLINT, total_partitions SMALLINT);
END IF; END IF;
END END
$CREATETYPES$; $CREATETYPES$;
@ -53,7 +53,7 @@ $CREATETYPES$;
--------------------------------------------- ---------------------------------------------
CREATE OR REPLACE FUNCTION new_ioql_query( CREATE OR REPLACE FUNCTION new_ioql_query(
namespace_name TEXT, -- NOT NULL hypertable_name TEXT, -- NOT NULL
select_items select_item [] = NULL, select_items select_item [] = NULL,
aggregate aggregate_type = NULL, --op, group_field and group_time for aggregation, if NULL, not aggregating aggregate aggregate_type = NULL, --op, group_field and group_time for aggregation, if NULL, not aggregating
time_condition time_condition_type = NULL, --time limits, from and to time_condition time_condition_type = NULL, --time limits, from and to
@ -65,7 +65,7 @@ CREATE OR REPLACE FUNCTION new_ioql_query(
RETURNS ioql_query AS $BODY$ RETURNS ioql_query AS $BODY$
--TODO convert empty select_item to NULL? --TODO convert empty select_item to NULL?
SELECT ROW ( SELECT ROW (
namespace_name, hypertable_name,
select_items, select_items,
aggregate, aggregate,
time_condition, time_condition,
@ -125,5 +125,3 @@ CREATE OR REPLACE FUNCTION new_limit_by_field(
RETURNS limit_by_field_type AS $BODY$ RETURNS limit_by_field_type AS $BODY$
SELECT ROW (field, count) :: limit_by_field_type SELECT ROW (field, count) :: limit_by_field_type
$BODY$ LANGUAGE 'sql' STABLE; $BODY$ LANGUAGE 'sql' STABLE;

View File

@ -2,7 +2,7 @@ CREATE OR REPLACE FUNCTION no_cluster_table(query ioql_query)
RETURNS TABLE(json TEXT) LANGUAGE PLPGSQL STABLE AS RETURNS TABLE(json TEXT) LANGUAGE PLPGSQL STABLE AS
$BODY$ $BODY$
BEGIN BEGIN
RAISE EXCEPTION 'Namespace ''%'' does not exist', query.namespace_name RAISE EXCEPTION 'Hypertable ''%'' does not exist', query.hypertable_name
USING ERRCODE = 'IO001'; USING ERRCODE = 'IO001';
END END
$BODY$; $BODY$;

View File

@ -15,7 +15,7 @@ BEGIN
ioql_query_nonagg_sql(query, pe) ioql_query_nonagg_sql(query, pe)
END AS code END AS code
FROM partition_epoch pe FROM partition_epoch pe
WHERE pe.hypertable_name = query.namespace_name WHERE pe.hypertable_name = query.hypertable_name
) AS code_epoch; ) AS code_epoch;
IF NOT FOUND THEN IF NOT FOUND THEN
@ -49,10 +49,6 @@ LANGUAGE plpgsql STABLE;
CREATE OR REPLACE FUNCTION ioql_exec_query(query ioql_query) CREATE OR REPLACE FUNCTION ioql_exec_query(query ioql_query)
RETURNS TABLE(json TEXT) AS $BODY$ RETURNS TABLE(json TEXT) AS $BODY$
BEGIN BEGIN
-- IF to_regclass(get_cluster_name(get_namespace(query))::cstring) IS NULL THEN
-- RETURN QUERY SELECT * FROM no_cluster_table(query);
-- RETURN;
-- END IF;
RETURN QUERY EXECUTE format( RETURN QUERY EXECUTE format(
$$ $$
SELECT row_to_json(ans)::text SELECT row_to_json(ans)::text
@ -61,6 +57,3 @@ BEGIN
END END
$BODY$ $BODY$
LANGUAGE plpgsql STABLE; LANGUAGE plpgsql STABLE;

View File

@ -146,11 +146,11 @@ CREATE OR REPLACE FUNCTION get_partial_aggregate_column_def(query ioql_query)
SELECT CASE SELECT CASE
WHEN (query.aggregate).group_field IS NOT NULL THEN WHEN (query.aggregate).group_field IS NOT NULL THEN
format('%I %s, group_time %s, %s', (query.aggregate).group_field, format('%I %s, group_time %s, %s', (query.aggregate).group_field,
get_field_type(query.namespace_name, (query.aggregate).group_field), get_field_type(query.hypertable_name, (query.aggregate).group_field),
get_time_field_type(query.namespace_name), get_time_field_type(query.hypertable_name),
field_list) field_list)
ELSE ELSE
format('group_time %s, %s', get_time_field_type(query.namespace_name), field_list) format('group_time %s, %s', get_time_field_type(query.hypertable_name), field_list)
END END
FROM FROM
( (
@ -217,7 +217,7 @@ DECLARE
BEGIN BEGIN
select_clause := select_clause :=
'SELECT ' || get_partial_aggregate_sql(get_time_field(query.namespace_name), get_time_field_type(query.namespace_name), query.select_items, query.aggregate); 'SELECT ' || get_partial_aggregate_sql(get_time_field(query.hypertable_name), get_time_field_type(query.hypertable_name), query.select_items, query.aggregate);
RETURN base_query_raw( RETURN base_query_raw(
select_clause, select_clause,
@ -435,7 +435,7 @@ SELECT format('SELECT * FROM (%s) as combined_node ',
coalesce( coalesce(
string_agg(code_part, ' UNION ALL '), string_agg(code_part, ' UNION ALL '),
format('SELECT %s WHERE FALSE', format('SELECT %s WHERE FALSE',
get_combine_partial_aggregate_zero_value_sql(get_time_field_type(query.namespace_name), query.select_items, query.aggregate)) get_combine_partial_aggregate_zero_value_sql(get_time_field_type(query.hypertable_name), query.select_items, query.aggregate))
)) ))
-- query.limit_rows + 1, needed since a group can span across time. +1 guarantees group was closed -- query.limit_rows + 1, needed since a group can span across time. +1 guarantees group was closed
FROM FROM
@ -477,7 +477,7 @@ DECLARE
time_col_type regtype; time_col_type regtype;
BEGIN BEGIN
IF query.limit_time_periods IS NOT NULL THEN IF query.limit_time_periods IS NOT NULL THEN
time_col_type := get_time_field_type(query.namespace_name); time_col_type := get_time_field_type(query.hypertable_name);
trange := get_time_periods_limit(epoch, trange := get_time_periods_limit(epoch,
replica_id, replica_id,
combine_predicates(default_predicates(query, epoch), additional_constraints), combine_predicates(default_predicates(query, epoch), additional_constraints),
@ -485,7 +485,7 @@ BEGIN
query.limit_time_periods); query.limit_time_periods);
additional_constraints := combine_predicates( additional_constraints := combine_predicates(
format('%1$I >= %2$s AND %1$I <=%3$s', format('%1$I >= %2$s AND %1$I <=%3$s',
get_time_field(query.namespace_name), get_time_field(query.hypertable_name),
_sysinternal.time_literal_sql(trange.start_time, time_col_type), _sysinternal.time_literal_sql(trange.start_time, time_col_type),
_sysinternal.time_literal_sql(trange.end_time, time_col_type) _sysinternal.time_literal_sql(trange.end_time, time_col_type)
), ),
@ -513,6 +513,3 @@ BEGIN
RETURN grouped_sql; RETURN grouped_sql;
END END
$BODY$; $BODY$;

View File

@ -22,8 +22,8 @@ DECLARE
crn_row chunk_replica_node; crn_row chunk_replica_node;
partition_row partition; partition_row partition;
BEGIN BEGIN
time_col_name := get_time_field(query.namespace_name); time_col_name := get_time_field(query.hypertable_name);
time_col_type := get_time_field_type(query.namespace_name); time_col_type := get_time_field_type(query.hypertable_name);
IF epoch.partitioning_field = (query.limit_by_field).field THEN IF epoch.partitioning_field = (query.limit_by_field).field THEN
SELECT * SELECT *
@ -247,7 +247,7 @@ BEGIN
string_agg(code_part, ' UNION ALL '), string_agg(code_part, ' UNION ALL '),
(query.limit_by_field).count, (query.limit_by_field).count,
get_limit_clause(query.limit_rows), get_limit_clause(query.limit_rows),
get_time_field(query.namespace_name) get_time_field(query.hypertable_name)
) )
INTO STRICT code INTO STRICT code
FROM FROM
@ -265,7 +265,7 @@ BEGIN
$$, $$,
string_agg(code_part, ' UNION ALL '), string_agg(code_part, ' UNION ALL '),
get_limit_clause(query.limit_rows), get_limit_clause(query.limit_rows),
get_time_field(query.namespace_name) get_time_field(query.hypertable_name)
) )
INTO STRICT code INTO STRICT code
FROM FROM
@ -277,5 +277,3 @@ BEGIN
RETURN code; RETURN code;
END END
$BODY$; $BODY$;

View File

@ -19,7 +19,7 @@ BEGIN
SELECT hr.replica_id SELECT hr.replica_id
INTO STRICT query_replica_id INTO STRICT query_replica_id
FROM hypertable_replica hr FROM hypertable_replica hr
WHERE hr.hypertable_name = query.namespace_name WHERE hr.hypertable_name = query.hypertable_name
ORDER BY random() ORDER BY random()
LIMIT 1; LIMIT 1;
@ -27,7 +27,7 @@ BEGIN
SELECT DISTINCT crn.database_name SELECT DISTINCT crn.database_name
FROM partition_replica pr FROM partition_replica pr
INNER JOIN chunk_replica_node crn ON (crn.partition_replica_id = pr.id) INNER JOIN chunk_replica_node crn ON (crn.partition_replica_id = pr.id)
WHERE pr.hypertable_name = query.namespace_name AND WHERE pr.hypertable_name = query.hypertable_name AND
pr.replica_id = query_replica_id pr.replica_id = query_replica_id
) )
INTO database_names; INTO database_names;
@ -103,4 +103,3 @@ BEGIN
END END
$BODY$ $BODY$
LANGUAGE plpgsql STABLE; LANGUAGE plpgsql STABLE;

View File

@ -28,11 +28,11 @@ SELECT CASE
WHEN (query.aggregate).group_field IS NOT NULL THEN WHEN (query.aggregate).group_field IS NOT NULL THEN
ARRAY [ ARRAY [
format('%I %s', (query.aggregate).group_field, format('%I %s', (query.aggregate).group_field,
get_field_type(query.namespace_name, (query.aggregate).group_field)), get_field_type(query.hypertable_name, (query.aggregate).group_field)),
'time '|| get_time_field_type(query.namespace_name) ] || 'time '|| get_time_field_type(query.hypertable_name) ] ||
field_array field_array
ELSE ELSE
ARRAY ['time '|| get_time_field_type(query.namespace_name)] || ARRAY ['time '|| get_time_field_type(query.hypertable_name)] ||
field_array field_array
END END
FROM FROM

View File

@ -5,7 +5,7 @@ CREATE OR REPLACE FUNCTION get_result_field_array_nonagg(query ioql_query)
$BODY$ $BODY$
SELECT CASE SELECT CASE
WHEN query.select_items IS NULL THEN WHEN query.select_items IS NULL THEN
get_field_names(query.namespace_name) get_field_names(query.hypertable_name)
ELSE ELSE
ARRAY( ARRAY(
SELECT * SELECT *
@ -13,7 +13,7 @@ SELECT CASE
( (
( (
SELECT time_field AS field_name SELECT time_field AS field_name
FROM get_time_field(query.namespace_name) time_field FROM get_time_field(query.hypertable_name) time_field
WHERE time_field NOT IN ( WHERE time_field NOT IN (
SELECT field AS field_name SELECT field AS field_name
FROM unnest(query.select_items) FROM unnest(query.select_items)
@ -64,7 +64,7 @@ CREATE OR REPLACE FUNCTION get_result_field_def_array_nonagg(query ioql_query)
$BODY$ $BODY$
SELECT ARRAY( SELECT ARRAY(
SELECT format('%I %s', field, data_type) SELECT format('%I %s', field, data_type)
FROM get_field_names_and_types(query.namespace_name, FROM get_field_names_and_types(query.hypertable_name,
get_result_field_array_nonagg(query)) AS ft(field, data_type) get_result_field_array_nonagg(query)) AS ft(field, data_type)
) )
$BODY$; $BODY$;
@ -75,5 +75,3 @@ CREATE OR REPLACE FUNCTION get_result_column_def_list_nonagg(query ioql_query)
$BODY$ $BODY$
SELECT array_to_string(get_result_field_def_array_nonagg(query), ', ') SELECT array_to_string(get_result_field_def_array_nonagg(query), ', ')
$BODY$; $BODY$;

View File

@ -116,7 +116,7 @@ CREATE OR REPLACE FUNCTION default_predicates(query ioql_query, epoch partition_
RETURNS TEXT LANGUAGE SQL STABLE AS RETURNS TEXT LANGUAGE SQL STABLE AS
$BODY$ $BODY$
SELECT combine_predicates( SELECT combine_predicates(
get_time_predicate(get_time_field(query.namespace_name), get_time_field_type(query.namespace_name), query.time_condition), get_time_predicate(get_time_field(query.hypertable_name), get_time_field_type(query.hypertable_name), query.time_condition),
get_field_predicate_clause(query.field_condition), get_field_predicate_clause(query.field_condition),
get_select_field_predicate(query.select_items), get_select_field_predicate(query.select_items),
get_partitioning_predicate(query, epoch) get_partitioning_predicate(query, epoch)
@ -159,9 +159,9 @@ CREATE OR REPLACE FUNCTION get_orderby_clause_nonagg(query ioql_query)
$BODY$ $BODY$
SELECT CASE SELECT CASE
WHEN query.limit_by_field IS NOT NULL THEN WHEN query.limit_by_field IS NOT NULL THEN
format('ORDER BY %I DESC NULLS LAST, %s', get_time_field(query.namespace_name), (query.limit_by_field).field) format('ORDER BY %I DESC NULLS LAST, %s', get_time_field(query.hypertable_name), (query.limit_by_field).field)
ELSE ELSE
format('ORDER BY %I DESC NULLS LAST', get_time_field(query.namespace_name)) format('ORDER BY %I DESC NULLS LAST', get_time_field(query.hypertable_name))
END; END;
$BODY$; $BODY$;

View File

@ -13,7 +13,7 @@ SELECT format(
get_finalize_aggregate_sql(query.select_items, query.aggregate), get_finalize_aggregate_sql(query.select_items, query.aggregate),
get_partial_aggregate_column_def(query), get_partial_aggregate_column_def(query),
get_groupby_clause(query.aggregate), get_groupby_clause(query.aggregate),
query.namespace_name, query.hypertable_name,
query, query,
epoch epoch
) )
@ -41,8 +41,8 @@ BEGIN
get_limit_clause(query.limit_rows), get_limit_clause(query.limit_rows),
(query.aggregate).group_time, (query.aggregate).group_time,
query.limit_time_periods, query.limit_time_periods,
_sysinternal.extract_time_sql('time', get_time_field_type(query.namespace_name)), _sysinternal.extract_time_sql('time', get_time_field_type(query.hypertable_name)),
_sysinternal.extract_time_sql('without_limit.time', get_time_field_type(query.namespace_name)) _sysinternal.extract_time_sql('without_limit.time', get_time_field_type(query.hypertable_name))
); );
ELSE ELSE
RETURN format( RETURN format(
@ -60,6 +60,3 @@ BEGIN
END; END;
$BODY$ $BODY$
SET constraint_exclusion = ON; SET constraint_exclusion = ON;

View File

@ -14,10 +14,10 @@ BEGIN
$$, $$,
get_result_column_def_list_nonagg(query), get_result_column_def_list_nonagg(query),
query, query,
query.namespace_name, query.hypertable_name,
get_limit_clause(query.limit_rows), get_limit_clause(query.limit_rows),
epoch, epoch,
get_time_field(query.namespace_name) get_time_field(query.hypertable_name)
); );
END END
$BODY$; $BODY$;
@ -49,7 +49,7 @@ BEGIN
ioql_query_nonagg_without_limit_sql(query, epoch), ioql_query_nonagg_without_limit_sql(query, epoch),
get_limit_clause(query.limit_rows), get_limit_clause(query.limit_rows),
(query.limit_by_field).count, (query.limit_by_field).count,
get_time_field(query.namespace_name) get_time_field(query.hypertable_name)
); );
ELSE ELSE
RETURN format( RETURN format(
@ -64,7 +64,7 @@ BEGIN
get_result_column_list_nonagg(query), get_result_column_list_nonagg(query),
ioql_query_nonagg_without_limit_sql(query, epoch), ioql_query_nonagg_without_limit_sql(query, epoch),
get_limit_clause(query.limit_rows), get_limit_clause(query.limit_rows),
get_time_field(query.namespace_name) get_time_field(query.hypertable_name)
); );
END IF; END IF;
END; END;

View File

@ -12,7 +12,7 @@ CREATE OR REPLACE FUNCTION _sysinternal.on_create_node_insert_kafka_offset_node(
$BODY$ $BODY$
BEGIN BEGIN
IF TG_OP <> 'INSERT' THEN IF TG_OP <> 'INSERT' THEN
RAISE EXCEPTION 'Only inserts supported on namespace table' RAISE EXCEPTION 'Only inserts supported on node table'
USING ERRCODE = 'IO101'; USING ERRCODE = 'IO101';
END IF; END IF;
@ -49,7 +49,7 @@ DECLARE
remote_node node; remote_node node;
BEGIN BEGIN
IF TG_OP <> 'INSERT' THEN IF TG_OP <> 'INSERT' THEN
RAISE EXCEPTION 'Only inserts supported on namespace table' RAISE EXCEPTION 'Only inserts supported on kafka offset table'
USING ERRCODE = 'IO101'; USING ERRCODE = 'IO101';
END IF; END IF;

View File

@ -119,7 +119,7 @@ BEGIN
WHERE f.hypertable_name = get_field_names_and_types.hypertable_name AND WHERE f.hypertable_name = get_field_names_and_types.hypertable_name AND
f.name = field_name f.name = field_name
); );
RAISE 'Missing field "%" in namespace "%"', missing_field, hypertable_name RAISE 'Missing field "%" in hypertable "%"', missing_field, hypertable_name
USING ERRCODE = 'IO002'; USING ERRCODE = 'IO002';
END; END;
END IF; END IF;
@ -145,7 +145,7 @@ BEGIN
WHERE f.name = get_field_type.field_name AND f.hypertable_name = get_field_type.hypertable_name; WHERE f.name = get_field_type.field_name AND f.hypertable_name = get_field_type.hypertable_name;
IF NOT FOUND THEN IF NOT FOUND THEN
RAISE 'Missing field "%" in namespace "%"', field_name, hypertable_name RAISE 'Missing field "%" in hypertable "%"', field_name, hypertable_name
USING ERRCODE = 'IO002'; USING ERRCODE = 'IO002';
END IF; END IF;
RETURN data_type; RETURN data_type;

View File

@ -1,6 +1,6 @@
\c Test1 \c Test1
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs')); FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs'));
json json
----------------------------------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------
{"timeCustom":1257987600000000000,"device_id":"dev1","series_0":1.5,"series_1":1,"series_2":null,"series_bool":null} {"timeCustom":1257987600000000000,"device_id":"dev1","series_0":1.5,"series_1":1,"series_2":null,"series_bool":null}
@ -17,10 +17,10 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs'));
\set ON_ERROR_STOP 0 \set ON_ERROR_STOP 0
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'DoesNotExist')); FROM ioql_exec_query(new_ioql_query(hypertable_name => 'DoesNotExist'));
\set ON_ERROR_STOP 1 \set ON_ERROR_STOP 1
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT) aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT)
)); ));
@ -30,7 +30,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
(1 row) (1 row)
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT), aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT),
limit_rows => 1 limit_rows => 1
@ -41,7 +41,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
(1 row) (1 row)
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1') aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1')
)); ));
@ -55,7 +55,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
(5 rows) (5 rows)
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1'), aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1'),
limit_rows => 1 limit_rows => 1
@ -66,7 +66,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
(1 row) (1 row)
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1'), aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1'),
limit_time_periods => 1 limit_time_periods => 1
@ -81,7 +81,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
(5 rows) (5 rows)
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0')], select_items => ARRAY [new_select_item('series_0')],
limit_by_field => new_limit_by_field('device_id', 1) limit_by_field => new_limit_by_field('device_id', 1)
)); ));
@ -92,7 +92,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
(2 rows) (2 rows)
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0')], select_items => ARRAY [new_select_item('series_0')],
limit_rows => 1 limit_rows => 1
)); ));

View File

@ -72,7 +72,7 @@ SELECT * FROM PUBLIC."testNs";
(5 rows) (5 rows)
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs')); FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs'));
json json
------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------
{"timeCustom":"2009-11-12T01:00:00","device_id":"dev1","series_0":1.5,"series_1":1,"series_2":null,"series_bool":null} {"timeCustom":"2009-11-12T01:00:00","device_id":"dev1","series_0":1.5,"series_1":1,"series_2":null,"series_bool":null}
@ -86,7 +86,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs'));
The next 2 queries will differ in output between UTC and EST since the mod is on the 100th hour UTC The next 2 queries will differ in output between UTC and EST since the mod is on the 100th hour UTC
SET timezone = 'UTC'; SET timezone = 'UTC';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((100 * 60 * 60 * 1e6) :: BIGINT)
)); ));
@ -97,7 +97,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
SET timezone = 'EST'; SET timezone = 'EST';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((100 * 60 * 60 * 1e6) :: BIGINT)
)); ));
@ -110,7 +110,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
The rest of the queries will be the same in output between UTC and EST The rest of the queries will be the same in output between UTC and EST
SET timezone = 'UTC'; SET timezone = 'UTC';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT)
)); ));
@ -122,7 +122,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
SET timezone = 'EST'; SET timezone = 'EST';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT)
)); ));
@ -134,7 +134,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
SET timezone = 'UTC'; SET timezone = 'UTC';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT)
)); ));
@ -146,7 +146,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
SET timezone = 'EST'; SET timezone = 'EST';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT)
)); ));
@ -158,7 +158,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
SET timezone = 'UTC'; SET timezone = 'UTC';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
time_condition=>new_time_condition(1257894000000000,1257987600000000) --microseconds time_condition=>new_time_condition(1257894000000000,1257987600000000) --microseconds
)); ));
json json
@ -170,7 +170,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
SET timezone = 'EST'; SET timezone = 'EST';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
time_condition=>new_time_condition(1257894000000000,1257987600000000) --microseconds time_condition=>new_time_condition(1257894000000000,1257987600000000) --microseconds
)); ));
json json
@ -182,7 +182,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
SET timezone = 'UTC'; SET timezone = 'UTC';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT), aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT),
limit_time_periods => 2 limit_time_periods => 2
@ -194,7 +194,7 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
SET timezone = 'EST'; SET timezone = 'EST';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT), aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT),
limit_time_periods => 2 limit_time_periods => 2

View File

@ -8,54 +8,54 @@
\c Test1 \c Test1
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs')); FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs'));
\set ON_ERROR_STOP 0 \set ON_ERROR_STOP 0
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'DoesNotExist')); FROM ioql_exec_query(new_ioql_query(hypertable_name => 'DoesNotExist'));
\set ON_ERROR_STOP 1 \set ON_ERROR_STOP 1
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT) aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT)
)); ));
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT), aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT),
limit_rows => 1 limit_rows => 1
)); ));
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1') aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1')
)); ));
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1'), aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1'),
limit_rows => 1 limit_rows => 1
)); ));
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1'), aggregate => new_aggregate((100 * 60 * 60 * 1e9) :: BIGINT, 'series_1'),
limit_time_periods => 1 limit_time_periods => 1
)); ));
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0')], select_items => ARRAY [new_select_item('series_0')],
limit_by_field => new_limit_by_field('device_id', 1) limit_by_field => new_limit_by_field('device_id', 1)
)); ));
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0')], select_items => ARRAY [new_select_item('series_0')],
limit_rows => 1 limit_rows => 1
)); ));

View File

@ -46,18 +46,18 @@ SELECT * FROM PUBLIC."testNs";
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs')); FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs'));
\echo 'The next 2 queries will differ in output between UTC and EST since the mod is on the 100th hour UTC' \echo 'The next 2 queries will differ in output between UTC and EST since the mod is on the 100th hour UTC'
SET timezone = 'UTC'; SET timezone = 'UTC';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((100 * 60 * 60 * 1e6) :: BIGINT)
)); ));
SET timezone = 'EST'; SET timezone = 'EST';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((100 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((100 * 60 * 60 * 1e6) :: BIGINT)
)); ));
@ -66,13 +66,13 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
SET timezone = 'UTC'; SET timezone = 'UTC';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT)
)); ));
SET timezone = 'EST'; SET timezone = 'EST';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT)
)); ));
@ -81,13 +81,13 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
SET timezone = 'UTC'; SET timezone = 'UTC';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT)
)); ));
SET timezone = 'EST'; SET timezone = 'EST';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT) aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT)
)); ));
@ -95,26 +95,26 @@ FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs',
SET timezone = 'UTC'; SET timezone = 'UTC';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
time_condition=>new_time_condition(1257894000000000,1257987600000000) --microseconds time_condition=>new_time_condition(1257894000000000,1257987600000000) --microseconds
)); ));
SET timezone = 'EST'; SET timezone = 'EST';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
time_condition=>new_time_condition(1257894000000000,1257987600000000) --microseconds time_condition=>new_time_condition(1257894000000000,1257987600000000) --microseconds
)); ));
SET timezone = 'UTC'; SET timezone = 'UTC';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT), aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT),
limit_time_periods => 2 limit_time_periods => 2
)); ));
SET timezone = 'EST'; SET timezone = 'EST';
SELECT * SELECT *
FROM ioql_exec_query(new_ioql_query(namespace_name => 'testNs', FROM ioql_exec_query(new_ioql_query(hypertable_name => 'testNs',
select_items => ARRAY [new_select_item('series_0', 'SUM')], select_items => ARRAY [new_select_item('series_0', 'SUM')],
aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT), aggregate => new_aggregate((1 * 60 * 60 * 1e6) :: BIGINT),
limit_time_periods => 2 limit_time_periods => 2

View File

@ -7,31 +7,31 @@ message test_result;
success boolean; success boolean;
BEGIN BEGIN
PERFORM test_utils.test_query(new_ioql_query(namespace_name => 'emptyNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name => 'emptyNs',
select_items => ARRAY[new_select_item('nUm_1'::text, select_items => ARRAY[new_select_item('nUm_1'::text,
NULL::aggregate_function_type)]), 'test_outputs', 'empty_result'); NULL::aggregate_function_type)]), 'test_outputs', 'empty_result');
PERFORM test_utils.test_query(new_ioql_query(namespace_name => 'emptyNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name => 'emptyNs',
select_items => ARRAY[new_select_item('nUm_1'::text, 'SUM'::aggregate_function_type)], select_items => ARRAY[new_select_item('nUm_1'::text, 'SUM'::aggregate_function_type)],
aggregate => new_aggregate(2592000000000000, NULL)), 'test_outputs', 'empty_result'); aggregate => new_aggregate(2592000000000000, NULL)), 'test_outputs', 'empty_result');
PERFORM test_utils.test_query(new_ioql_query(namespace_name => 'emptyNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name => 'emptyNs',
select_items => ARRAY[new_select_item('nUm_1'::text, 'AVG'::aggregate_function_type)], select_items => ARRAY[new_select_item('nUm_1'::text, 'AVG'::aggregate_function_type)],
aggregate => new_aggregate(2592000000000000, NULL)), 'test_outputs', 'empty_result'); aggregate => new_aggregate(2592000000000000, NULL)), 'test_outputs', 'empty_result');
PERFORM test_utils.test_query(new_ioql_query(namespace_name => 'emptyNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name => 'emptyNs',
select_items => ARRAY[new_select_item('nUm_1'::text, 'MAX'::aggregate_function_type)], select_items => ARRAY[new_select_item('nUm_1'::text, 'MAX'::aggregate_function_type)],
aggregate => new_aggregate(2592000000000000, NULL)), 'test_outputs', 'empty_result'); aggregate => new_aggregate(2592000000000000, NULL)), 'test_outputs', 'empty_result');
PERFORM test_utils.test_query(new_ioql_query(namespace_name => 'emptyNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name => 'emptyNs',
select_items => ARRAY[new_select_item('nUm_1'::text, 'MIN'::aggregate_function_type)], select_items => ARRAY[new_select_item('nUm_1'::text, 'MIN'::aggregate_function_type)],
aggregate => new_aggregate(2592000000000000, NULL)), 'test_outputs', 'empty_result'); aggregate => new_aggregate(2592000000000000, NULL)), 'test_outputs', 'empty_result');
PERFORM test_utils.test_query(new_ioql_query(namespace_name => 'emptyNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name => 'emptyNs',
select_items => ARRAY[new_select_item('nUm_1'::text, 'COUNT'::aggregate_function_type)], select_items => ARRAY[new_select_item('nUm_1'::text, 'COUNT'::aggregate_function_type)],
aggregate => new_aggregate(2592000000000000, NULL)), 'test_outputs', 'empty_result'); aggregate => new_aggregate(2592000000000000, NULL)), 'test_outputs', 'empty_result');
PERFORM test_utils.test_query(new_ioql_query(namespace_name => 'emptyNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name => 'emptyNs',
select_items => ARRAY[new_select_item('nUm_1'::text, 'SUM'::aggregate_function_type)], select_items => ARRAY[new_select_item('nUm_1'::text, 'SUM'::aggregate_function_type)],
aggregate => new_aggregate(2592000000000000, 'device_id')), 'test_outputs', 'empty_result'); aggregate => new_aggregate(2592000000000000, 'device_id')), 'test_outputs', 'empty_result');

View File

@ -8,7 +8,7 @@ success boolean;
BEGIN BEGIN
BEGIN BEGIN
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'UNKNOWN_HT'), 'test_outputs', 'empty_result'); PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'UNKNOWN_HT'), 'test_outputs', 'empty_result');
EXCEPTION WHEN SQLSTATE 'IO001' THEN EXCEPTION WHEN SQLSTATE 'IO001' THEN
SELECT assert.ok('End of test.') INTO message; SELECT assert.ok('End of test.') INTO message;
RETURN message; RETURN message;
@ -31,7 +31,7 @@ success boolean;
BEGIN BEGIN
BEGIN BEGIN
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('field_does_not_exist'::text,NULL::aggregate_function_type)]), 'test_outputs', 'empty_result'); select_items=>ARRAY[new_select_item('field_does_not_exist'::text,NULL::aggregate_function_type)]), 'test_outputs', 'empty_result');
EXCEPTION WHEN SQLSTATE 'IO002' THEN EXCEPTION WHEN SQLSTATE 'IO002' THEN
SELECT assert.ok('End of test.') INTO message; SELECT assert.ok('End of test.') INTO message;

View File

@ -6,297 +6,297 @@ DECLARE
message test_result; message test_result;
success boolean; success boolean;
BEGIN BEGIN
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs'), 'test_outputs', 'output_0'); PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs'), 'test_outputs', 'output_0');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs'), 'test_outputs', 'output_0'); PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs'), 'test_outputs', 'output_0');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,NULL::aggregate_function_type)]), 'test_outputs', 'output_1'); select_items=>ARRAY[new_select_item('nUm_1'::text,NULL::aggregate_function_type)]), 'test_outputs', 'output_1');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('bool_1'::text,NULL::aggregate_function_type)]), 'test_outputs', 'output_2'); select_items=>ARRAY[new_select_item('bool_1'::text,NULL::aggregate_function_type)]), 'test_outputs', 'output_2');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('string_1'::text,NULL::aggregate_function_type)]), 'test_outputs', 'output_3'); select_items=>ARRAY[new_select_item('string_1'::text,NULL::aggregate_function_type)]), 'test_outputs', 'output_3');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('field_only_dev2'::text,NULL::aggregate_function_type)]), 'test_outputs', 'output_4'); select_items=>ARRAY[new_select_item('field_only_dev2'::text,NULL::aggregate_function_type)]), 'test_outputs', 'output_4');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('field_only_ref2'::text,NULL::aggregate_function_type)]), 'test_outputs', 'output_5'); select_items=>ARRAY[new_select_item('field_only_ref2'::text,NULL::aggregate_function_type)]), 'test_outputs', 'output_5');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs',limit_rows=>2), 'test_outputs', 'output_7'); PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',limit_rows=>2), 'test_outputs', 'output_7');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
limit_by_field=>new_limit_by_field('device_id',1)), 'test_outputs', 'output_8'); limit_by_field=>new_limit_by_field('device_id',1)), 'test_outputs', 'output_8');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
limit_by_field=>new_limit_by_field('string_1',2)), 'test_outputs', 'output_9'); limit_by_field=>new_limit_by_field('string_1',2)), 'test_outputs', 'output_9');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
limit_by_field=>new_limit_by_field('string_2',1)), 'test_outputs', 'output_10'); limit_by_field=>new_limit_by_field('string_2',1)), 'test_outputs', 'output_10');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,NULL::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,NULL::aggregate_function_type)],
limit_by_field=>new_limit_by_field('string_2',1)), 'test_outputs', 'output_11'); limit_by_field=>new_limit_by_field('string_2',1)), 'test_outputs', 'output_11');
/* /*
Should throw error as field_only_dev2 is not distinct, bug filed Should throw error as field_only_dev2 is not distinct, bug filed
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
limit_by_field=>new_limit_by_field('field_only_dev2',1)), 'test_outputs', 'output_12'); limit_by_field=>new_limit_by_field('field_only_dev2',1)), 'test_outputs', 'output_12');
*/ */
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
time_condition=>new_time_condition(NULL,910738800000000000), time_condition=>new_time_condition(NULL,910738800000000000),
limit_by_field=>new_limit_by_field('device_id',1)), 'test_outputs', 'output_13'); limit_by_field=>new_limit_by_field('device_id',1)), 'test_outputs', 'output_13');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,NULL::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,NULL::aggregate_function_type)],
time_condition=>new_time_condition(NULL,910738800000000000), time_condition=>new_time_condition(NULL,910738800000000000),
limit_by_field=>new_limit_by_field('device_id',1)), 'test_outputs', 'output_14'); limit_by_field=>new_limit_by_field('device_id',1)), 'test_outputs', 'output_14');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
time_condition=>new_time_condition(NULL,1257987600000000000)), 'test_outputs', 'output_15'); time_condition=>new_time_condition(NULL,1257987600000000000)), 'test_outputs', 'output_15');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
time_condition=>new_time_condition(NULL,1257987601000000000)), 'test_outputs', 'output_16'); time_condition=>new_time_condition(NULL,1257987601000000000)), 'test_outputs', 'output_16');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
time_condition=>new_time_condition(1257894000000000000,NULL)), 'test_outputs', 'output_17'); time_condition=>new_time_condition(1257894000000000000,NULL)), 'test_outputs', 'output_17');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
time_condition=>new_time_condition(1257987600000000000,NULL)), 'test_outputs', 'output_18'); time_condition=>new_time_condition(1257987600000000000,NULL)), 'test_outputs', 'output_18');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
time_condition=>new_time_condition(1257894000000000000,1257987600000000000)), time_condition=>new_time_condition(1257894000000000000,1257987600000000000)),
'test_outputs', 'output_19'); 'test_outputs', 'output_19');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
time_condition=>new_time_condition(1257894000000000000,1257987601000000000)), time_condition=>new_time_condition(1257894000000000000,1257987601000000000)),
'test_outputs', 'output_20'); 'test_outputs', 'output_20');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','=',1.5::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','=',1.5::text)])),
'test_outputs', 'output_21'); 'test_outputs', 'output_21');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','=',1.6::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','=',1.6::text)])),
'test_outputs', 'output_22'); 'test_outputs', 'output_22');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','!=',1.6::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','!=',1.6::text)])),
'test_outputs', 'output_23'); 'test_outputs', 'output_23');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','!=',1.5::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','!=',1.5::text)])),
'test_outputs', 'output_24'); 'test_outputs', 'output_24');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','>',1.4::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','>',1.4::text)])),
'test_outputs', 'output_25'); 'test_outputs', 'output_25');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','>',1.5::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','>',1.5::text)])),
'test_outputs', 'output_26'); 'test_outputs', 'output_26');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','>=',1.5::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','>=',1.5::text)])),
'test_outputs', 'output_27'); 'test_outputs', 'output_27');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','>=',1.51::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','>=',1.51::text)])),
'test_outputs', 'output_28'); 'test_outputs', 'output_28');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','<',1.6::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','<',1.6::text)])),
'test_outputs', 'output_29'); 'test_outputs', 'output_29');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','<',1.5::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','<',1.5::text)])),
'test_outputs', 'output_30'); 'test_outputs', 'output_30');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','<=',1.5::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','<=',1.5::text)])),
'test_outputs', 'output_31'); 'test_outputs', 'output_31');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','<=',1.49::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','<=',1.49::text)])),
'test_outputs', 'output_32'); 'test_outputs', 'output_32');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev1'::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev1'::text)])),
'test_outputs', 'output_33'); 'test_outputs', 'output_33');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev2'::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev2'::text)])),
'test_outputs', 'output_34'); 'test_outputs', 'output_34');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev3'::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev3'::text)])),
'test_outputs', 'output_35'); 'test_outputs', 'output_35');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','!=','dev2'::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','!=','dev2'::text)])),
'test_outputs', 'output_36'); 'test_outputs', 'output_36');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','=',1.5::text), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','=',1.5::text),
new_field_predicate('num_2','=',0.0::text)])), 'test_outputs', 'output_37'); new_field_predicate('num_2','=',0.0::text)])), 'test_outputs', 'output_37');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','=',1.5::text), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('nUm_1','=',1.5::text),
new_field_predicate('num_2','=',2.0::text)])), 'test_outputs', 'output_38'); new_field_predicate('num_2','=',2.0::text)])), 'test_outputs', 'output_38');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('num_2','=',1.0::text), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('num_2','=',1.0::text),
new_field_predicate('num_2','=',2.0::text)])), 'test_outputs', 'output_39'); new_field_predicate('num_2','=',2.0::text)])), 'test_outputs', 'output_39');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('OR',ARRAY[new_field_predicate('nUm_1','=',1.5::text), field_condition=>new_field_condition('OR',ARRAY[new_field_predicate('nUm_1','=',1.5::text),
new_field_predicate('num_2','=',0.0::text)])), 'test_outputs', 'output_40'); new_field_predicate('num_2','=',0.0::text)])), 'test_outputs', 'output_40');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('OR',ARRAY[new_field_predicate('nUm_1','=',1.5::text), field_condition=>new_field_condition('OR',ARRAY[new_field_predicate('nUm_1','=',1.5::text),
new_field_predicate('num_2','=',2.0::text)])), 'test_outputs', 'output_41'); new_field_predicate('num_2','=',2.0::text)])), 'test_outputs', 'output_41');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
field_condition=>new_field_condition('OR',ARRAY[new_field_predicate('num_2','=',1.0::text), field_condition=>new_field_condition('OR',ARRAY[new_field_predicate('num_2','=',1.0::text),
new_field_predicate('num_2','=',2.0::text)])), 'test_outputs', 'output_42'); new_field_predicate('num_2','=',2.0::text)])), 'test_outputs', 'output_42');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,NULL)), 'test_outputs', 'output_43'); aggregate=>new_aggregate(2592000000000000,NULL)), 'test_outputs', 'output_43');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL)), 'test_outputs', 'output_44'); aggregate=>new_aggregate(3600000000000,NULL)), 'test_outputs', 'output_44');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'MAX'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'MAX'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,NULL)), 'test_outputs', 'output_45'); aggregate=>new_aggregate(2592000000000000,NULL)), 'test_outputs', 'output_45');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'MAX'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'MAX'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL)), 'test_outputs', 'output_46'); aggregate=>new_aggregate(3600000000000,NULL)), 'test_outputs', 'output_46');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'MIN'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'MIN'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,NULL)), 'test_outputs', 'output_47'); aggregate=>new_aggregate(2592000000000000,NULL)), 'test_outputs', 'output_47');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'MIN'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'MIN'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL)), 'test_outputs', 'output_48'); aggregate=>new_aggregate(3600000000000,NULL)), 'test_outputs', 'output_48');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'AVG'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'AVG'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,NULL)), 'test_outputs', 'output_49'); aggregate=>new_aggregate(2592000000000000,NULL)), 'test_outputs', 'output_49');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'AVG'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'AVG'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL)), 'test_outputs', 'output_50'); aggregate=>new_aggregate(3600000000000,NULL)), 'test_outputs', 'output_50');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,NULL)), 'test_outputs', 'output_51'); aggregate=>new_aggregate(2592000000000000,NULL)), 'test_outputs', 'output_51');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL)), 'test_outputs', 'output_52'); aggregate=>new_aggregate(3600000000000,NULL)), 'test_outputs', 'output_52');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,NULL), aggregate=>new_aggregate(2592000000000000,NULL),
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev1'::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev1'::text)])),
'test_outputs', 'output_53'); 'test_outputs', 'output_53');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,NULL), aggregate=>new_aggregate(2592000000000000,NULL),
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev2'::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev2'::text)])),
'test_outputs', 'output_54'); 'test_outputs', 'output_54');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,NULL), aggregate=>new_aggregate(2592000000000000,NULL),
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev3'::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev3'::text)])),
'test_outputs', 'output_55'); 'test_outputs', 'output_55');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,NULL), aggregate=>new_aggregate(2592000000000000,NULL),
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','!=','dev2'::text)])), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','!=','dev2'::text)])),
'test_outputs', 'output_56'); 'test_outputs', 'output_56');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'MAX'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'MAX'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,NULL), aggregate=>new_aggregate(2592000000000000,NULL),
time_condition=>new_time_condition(1257894000000000000,1257987600000000000), time_condition=>new_time_condition(1257894000000000000,1257987600000000000),
field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev1'::text)]), field_condition=>new_field_condition('AND',ARRAY[new_field_predicate('device_id','=','dev1'::text)]),
limit_rows=>100), 'test_outputs', 'output_57'); limit_rows=>100), 'test_outputs', 'output_57');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL),limit_time_periods=>2), 'test_outputs', 'output_58'); aggregate=>new_aggregate(3600000000000,NULL),limit_time_periods=>2), 'test_outputs', 'output_58');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL),limit_time_periods=>200), 'test_outputs', 'output_59'); aggregate=>new_aggregate(3600000000000,NULL),limit_time_periods=>200), 'test_outputs', 'output_59');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL),limit_rows=>1), 'test_outputs', 'output_60'); aggregate=>new_aggregate(3600000000000,NULL),limit_rows=>1), 'test_outputs', 'output_60');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL),limit_rows=>200), 'test_outputs', 'output_61'); aggregate=>new_aggregate(3600000000000,NULL),limit_rows=>200), 'test_outputs', 'output_61');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL),limit_rows=>200,limit_time_periods=>2), aggregate=>new_aggregate(3600000000000,NULL),limit_rows=>200,limit_time_periods=>2),
'test_outputs', 'output_62'); 'test_outputs', 'output_62');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'SUM'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL),limit_rows=>200,limit_time_periods=>200), aggregate=>new_aggregate(3600000000000,NULL),limit_rows=>200,limit_time_periods=>200),
'test_outputs', 'output_63'); 'test_outputs', 'output_63');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('field_only_dev2'::text,'SUM'::aggregate_function_type)], select_items=>ARRAY[new_select_item('field_only_dev2'::text,'SUM'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,NULL),limit_time_periods=>1), 'test_outputs', 'output_64'); aggregate=>new_aggregate(3600000000000,NULL),limit_time_periods=>1), 'test_outputs', 'output_64');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,'num_2')), 'test_outputs', 'output_65'); aggregate=>new_aggregate(3600000000000,'num_2')), 'test_outputs', 'output_65');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,'string_2')), 'test_outputs', 'output_66'); aggregate=>new_aggregate(3600000000000,'string_2')), 'test_outputs', 'output_66');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,'num_2'),limit_time_periods=>1), 'test_outputs', 'output_67'); aggregate=>new_aggregate(3600000000000,'num_2'),limit_time_periods=>1), 'test_outputs', 'output_67');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,'string_2'),limit_time_periods=>1), 'test_outputs', 'output_68'); aggregate=>new_aggregate(3600000000000,'string_2'),limit_time_periods=>1), 'test_outputs', 'output_68');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,'num_2')), 'test_outputs', 'output_69'); aggregate=>new_aggregate(2592000000000000,'num_2')), 'test_outputs', 'output_69');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,'string_2')), 'test_outputs', 'output_70'); aggregate=>new_aggregate(2592000000000000,'string_2')), 'test_outputs', 'output_70');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(2592000000000000,'field_only_dev2')), 'test_outputs', 'output_71'); aggregate=>new_aggregate(2592000000000000,'field_only_dev2')), 'test_outputs', 'output_71');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('nUm_1'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,'field_only_dev2'),limit_time_periods=>1), aggregate=>new_aggregate(3600000000000,'field_only_dev2'),limit_time_periods=>1),
'test_outputs', 'output_72'); 'test_outputs', 'output_72');
PERFORM test_utils.test_query(new_ioql_query(namespace_name=>'33_testNs', PERFORM test_utils.test_query(new_ioql_query(hypertable_name=>'33_testNs',
select_items=>ARRAY[new_select_item('device_id'::text,'COUNT'::aggregate_function_type)], select_items=>ARRAY[new_select_item('device_id'::text,'COUNT'::aggregate_function_type)],
aggregate=>new_aggregate(3600000000000,'device_id'),limit_rows=>1), 'test_outputs', 'output_73'); aggregate=>new_aggregate(3600000000000,'device_id'),limit_rows=>1), 'test_outputs', 'output_73');

View File

@ -15,7 +15,7 @@ QUERY_DB=${QUERY_DB:-Test1}
if [ "$#" -ne 2 ] ; then if [ "$#" -ne 2 ] ; then
echo "usage: $0 query outputfile" echo "usage: $0 query outputfile"
echo "ex: $0 \"new_ioql_query(namespace_name => '33_testNs')\" result.csv " echo "ex: $0 \"new_ioql_query(hypertable_name => '33_testNs')\" result.csv "
echo "NOTE ! This script will not populate the db. You have to make sure the right data is imported before the query" echo "NOTE ! This script will not populate the db. You have to make sure the right data is imported before the query"
exit 1 exit 1
fi fi