mirror of https://github.com/citusdata/citus.git
Merge pull request #2957 from citusdata/dont-distribute-aggregate-named-invalid
Begin searching AggregateNames from 1, not 0pull/2963/head
commit
d23185d077
|
@ -2896,7 +2896,9 @@ GetAggregateType(Oid aggFunctionId)
|
||||||
}
|
}
|
||||||
|
|
||||||
aggregateCount = lengthof(AggregateNames);
|
aggregateCount = lengthof(AggregateNames);
|
||||||
for (aggregateIndex = 0; aggregateIndex < aggregateCount; aggregateIndex++)
|
|
||||||
|
Assert(AGGREGATE_INVALID_FIRST == 0);
|
||||||
|
for (aggregateIndex = 1; aggregateIndex < aggregateCount; aggregateIndex++)
|
||||||
{
|
{
|
||||||
const char *aggregateName = AggregateNames[aggregateIndex];
|
const char *aggregateName = AggregateNames[aggregateIndex];
|
||||||
if (strncmp(aggregateName, aggregateProcName, NAMEDATALEN) == 0)
|
if (strncmp(aggregateName, aggregateProcName, NAMEDATALEN) == 0)
|
||||||
|
|
|
@ -544,7 +544,6 @@ COPY articles_single_shard TO stdout;
|
||||||
DEBUG: Creating router plan
|
DEBUG: Creating router plan
|
||||||
DEBUG: Plan is router executable
|
DEBUG: Plan is router executable
|
||||||
50 10 anjanette 19519
|
50 10 anjanette 19519
|
||||||
-- error out for queries with aggregates
|
|
||||||
SELECT avg(word_count)
|
SELECT avg(word_count)
|
||||||
FROM articles
|
FROM articles
|
||||||
WHERE author_id = 2;
|
WHERE author_id = 2;
|
||||||
|
@ -556,6 +555,16 @@ DETAIL: distribution column value: 2
|
||||||
12356.400000000000
|
12356.400000000000
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
-- error out on unsupported aggregate
|
||||||
|
SET client_min_messages to 'NOTICE';
|
||||||
|
CREATE AGGREGATE public.invalid(int) (
|
||||||
|
sfunc = int4pl,
|
||||||
|
stype = int
|
||||||
|
);
|
||||||
|
SELECT invalid(word_count) FROM articles;
|
||||||
|
ERROR: unsupported aggregate function invalid
|
||||||
|
DROP AGGREGATE invalid(int);
|
||||||
|
SET client_min_messages to 'DEBUG2';
|
||||||
-- max, min, sum, count is somehow implemented
|
-- max, min, sum, count is somehow implemented
|
||||||
-- differently in distributed planning
|
-- differently in distributed planning
|
||||||
SELECT max(word_count) as max, min(word_count) as min,
|
SELECT max(word_count) as max, min(word_count) as min,
|
||||||
|
|
|
@ -488,7 +488,6 @@ COPY articles_single_shard TO stdout;
|
||||||
DEBUG: Creating router plan
|
DEBUG: Creating router plan
|
||||||
DEBUG: Plan is router executable
|
DEBUG: Plan is router executable
|
||||||
50 10 anjanette 19519
|
50 10 anjanette 19519
|
||||||
-- error out for queries with aggregates
|
|
||||||
SELECT avg(word_count)
|
SELECT avg(word_count)
|
||||||
FROM articles
|
FROM articles
|
||||||
WHERE author_id = 2;
|
WHERE author_id = 2;
|
||||||
|
@ -500,6 +499,16 @@ DETAIL: distribution column value: 2
|
||||||
12356.400000000000
|
12356.400000000000
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
-- error out on unsupported aggregate
|
||||||
|
SET client_min_messages to 'NOTICE';
|
||||||
|
CREATE AGGREGATE public.invalid(int) (
|
||||||
|
sfunc = int4pl,
|
||||||
|
stype = int
|
||||||
|
);
|
||||||
|
SELECT invalid(word_count) FROM articles;
|
||||||
|
ERROR: unsupported aggregate function invalid
|
||||||
|
DROP AGGREGATE invalid(int);
|
||||||
|
SET client_min_messages to 'DEBUG2';
|
||||||
-- max, min, sum, count is somehow implemented
|
-- max, min, sum, count is somehow implemented
|
||||||
-- differently in distributed planning
|
-- differently in distributed planning
|
||||||
SELECT max(word_count) as max, min(word_count) as min,
|
SELECT max(word_count) as max, min(word_count) as min,
|
||||||
|
|
|
@ -271,11 +271,24 @@ SELECT id
|
||||||
-- copying from a single shard table does not require the master query
|
-- copying from a single shard table does not require the master query
|
||||||
COPY articles_single_shard TO stdout;
|
COPY articles_single_shard TO stdout;
|
||||||
|
|
||||||
-- error out for queries with aggregates
|
|
||||||
SELECT avg(word_count)
|
SELECT avg(word_count)
|
||||||
FROM articles
|
FROM articles
|
||||||
WHERE author_id = 2;
|
WHERE author_id = 2;
|
||||||
|
|
||||||
|
-- error out on unsupported aggregate
|
||||||
|
SET client_min_messages to 'NOTICE';
|
||||||
|
|
||||||
|
CREATE AGGREGATE public.invalid(int) (
|
||||||
|
sfunc = int4pl,
|
||||||
|
stype = int
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT invalid(word_count) FROM articles;
|
||||||
|
|
||||||
|
DROP AGGREGATE invalid(int);
|
||||||
|
|
||||||
|
SET client_min_messages to 'DEBUG2';
|
||||||
|
|
||||||
-- max, min, sum, count is somehow implemented
|
-- max, min, sum, count is somehow implemented
|
||||||
-- differently in distributed planning
|
-- differently in distributed planning
|
||||||
SELECT max(word_count) as max, min(word_count) as min,
|
SELECT max(word_count) as max, min(word_count) as min,
|
||||||
|
@ -313,5 +326,4 @@ SELECT * FROM articles TABLESAMPLE BERNOULLI (0) WHERE author_id = 1;
|
||||||
SELECT * FROM articles TABLESAMPLE SYSTEM (100) WHERE author_id = 1 ORDER BY id;
|
SELECT * FROM articles TABLESAMPLE SYSTEM (100) WHERE author_id = 1 ORDER BY id;
|
||||||
SELECT * FROM articles TABLESAMPLE BERNOULLI (100) WHERE author_id = 1 ORDER BY id;
|
SELECT * FROM articles TABLESAMPLE BERNOULLI (100) WHERE author_id = 1 ORDER BY id;
|
||||||
|
|
||||||
|
|
||||||
SET client_min_messages to 'NOTICE';
|
SET client_min_messages to 'NOTICE';
|
||||||
|
|
Loading…
Reference in New Issue