Commit Graph

2848 Commits (f5b038e2bc9d60ddac59b03ecca857a0e8a8244b)

Author SHA1 Message Date
Philip Dubé f5b038e2bc Fixes from testing. Seems to be working 2019-10-18 18:45:40 +00:00
Philip Dubé 070ffc785f Fix compile issues 2019-10-18 18:45:40 +00:00
Philip Dubé 1545cb312c Sketched out rest of how mark_aggregate_for_distributed_execution should look like 2019-10-18 18:45:40 +00:00
Philip Dubé 020921f1eb Fixes from testing with create_distributed_function 2019-10-18 18:45:40 +00:00
Philip Dubé 47318ee7e0 Fix logging messages a bit 2019-10-18 18:45:40 +00:00
Philip Dubé 79f4fdbc89 Use pg_dist_object, remove pg_dist_enabled_custom_aggregates 2019-10-18 18:45:40 +00:00
Philip Dubé ec4f8b23e7 Update expected/multi_metadata_access 2019-10-18 18:45:40 +00:00
Philip Dubé dd5916ef3a Move custom aggregates into a not-default path, add pg_dist_enabled_custom_aggregates to have a set of allowed aggregates as it's possible for aggregates to not be compatible with this implementation 2019-10-18 18:45:40 +00:00
Philip Dubé 9d19f2d810 aggregate_utils: remove elog debugging 2019-10-18 18:45:40 +00:00
Philip Dubé d1aefe240b Now able to figure out that the average of 1,2,3 is 2. Next: clean up all the logspam, make sure value_init is being handled properly everywhere 2019-10-18 18:45:40 +00:00
Philip Dubé 5b25204dda Gets as far as calling array_send, which seems to be getting an invalid array, maybe a memory context issue 2019-10-18 18:45:40 +00:00
Philip Dubé 22c6dc7f84 Fix compiling against pg12 2019-10-18 18:45:40 +00:00
Philip Dubé 17ed25e09a Fix multi_logical_optimizer merge regression. aggregate_utils still needs fixing 2019-10-18 18:45:40 +00:00
Philip Dubé 5d6ee5104b Get things working enough that code is executing & giving nonsense like avg() wanting to create arrays with 16777216 dimensions 2019-10-18 18:45:40 +00:00
Philip Dubé 1a7bf4ca2c Initial sketch of aggregate expression transforms 2019-10-18 18:45:40 +00:00
Philip Dubé c801889e08 return the right bytes 2019-10-18 18:45:40 +00:00
Philip Dubé baef1d2f85 Clean up code to point that it compiles 2019-10-18 18:45:40 +00:00
Philip Dubé 186f632f88 ReleaseSysCache in logical_optimizer 2019-10-18 18:45:40 +00:00
Philip Dubé a82fa8831c First rough draft of aggregate logic done. Still need query rewriting logic before being able to test 2019-10-18 18:45:40 +00:00
Philip Dubé 77fc5f91ab Pseudocode mostly restored from deleting my repo yesterday, started writing broken pseudo-C 2019-10-18 18:45:40 +00:00
Philip Dubé 40a5e3128b Initial custom aggregates. Very WIP. Only a branch because I like backups. Will squash someday 2019-10-18 18:45:40 +00:00
Philip Dubé c32bd459f4 create_distributed_function: accept aggregates 2019-10-18 18:45:40 +00:00
Halil Ozan Akgül 210a6cc04b
Merge pull request #3111 from citusdata/refresh_materialized_view_with_subquery
Refresh Materialized View with Subquery
2019-10-17 16:07:35 +03:00
Halil Ozan Akgul 5f04ac774f Adds the tests for refresh materialized views 2019-10-17 16:00:56 +03:00
Önder Kalacı e065933928 Remove all the non-adaptive test schedules (#3112)
Just because we'll remove the executors soon, and it doesn't
make sense to keep them running.

I'll remove the tests files with a follow-up commit, but it seems
safe to remove them from circleci now.
2019-10-17 10:39:31 +03:00
Jelte Fennema 7abedc38b0
Support subqueries in HAVING (#3098)
Areas for further optimization:
- Don't save subquery results to a local file on the coordinator when the subquery is not in the having clause
- Push the the HAVING with subquery to the workers if there's a group by on the distribution column
- Don't push down the results to the workers when we don't push down the HAVING clause, only the coordinator needs it

Fixes #520
Fixes #756
Closes #2047
2019-10-16 16:40:14 +02:00
Onur TIRTIR 3bfb2a078b
Make changes on if-statement in ExtractRangeTableList for furhter walker types (#3110) 2019-10-16 15:50:09 +03:00
Onur TIRTIR d5f83dc110
Refactor range table walkers (#3109) 2019-10-16 01:20:49 +03:00
SaitTalhaNisanci 94a7e6475c
Remove copyright years (#2918)
* Update year as 2012-2019

* Remove copyright years
2019-10-15 17:44:30 +03:00
Jelte Fennema 9b2f4d71ac
Make sure some MX tests use defined shard_ids (#3103) 2019-10-12 22:46:14 +02:00
Philip Dubé 74cb168205 Remove Postgres 10 support 2019-10-11 21:56:56 +00:00
SaitTalhaNisanci 95633416f7 remove pg10 from pg upgrade tests (#3102) 2019-10-11 10:30:06 +02:00
Hadi Moshayedi 3fb9c63890
Merge pull request #3100 from citusdata/fix_typo
Fix a typo
2019-10-10 11:16:11 -07:00
Hadi Moshayedi b50d216536 Fix a typo 2019-10-10 10:44:41 -07:00
Philip Dubé 4063e7ca67 CALL delegation: apply strip_implicit_coercions to distribution argument 2019-10-10 17:42:43 +00:00
Philip Dubé 7ffd78b6e0 isolation_multiuser_locking
Introduce a test which checks that locks are only acquired when a user has necessary permissions
Currently tests REINDEX, CREATE INDEX, TRUNCATE
2019-10-10 16:58:41 +00:00
Philip Dubé dd490b6376 Cache whether an object is in pg_dist_object. Avoids redundant lookups for non-distributed objects 2019-10-10 14:50:38 +00:00
Hanefi Onaldi 2a47cff7b7
Bump citus to 9.0.0 2019-10-09 11:33:58 +03:00
Jelte Fennema f0f702c604
Add sane editorconfig settings (#3051)
- UNIX line endings
- utf8
- newline at end of file
- trim trailing whitespace
2019-10-08 15:07:01 +02:00
SaitTalhaNisanci 83667436f7
add support to run citus upgrade tests locally (#3083)
* add support to run citus upgrade tests locally

* dont build tars if they already exist

* use current code instead of master for upgrade

* always build the current code

* copy the current citus code to have isolated citus upgrade tests

* fix configure and simplify copy
2019-10-08 15:32:44 +03:00
Nils Dijk 4a4a220945
Fix enum add value order and pg12 (#3082)
DESCRIPTION: Fix order for enum values and correctly support pg12

PG 12 introduces `ALTER TYPE ... ADD VALUE ...` during transactions. Earlier versions would error out when called in a transaction, hence we connect to workers outside of the transaction which could cause inconsistencies on pg12 now that postgres doesn't error with this syntax anymore.

During the implementation of this fix it became apparent there was an error with the ordering of enum labels when the type was recreated. A patch and test have been included.
2019-10-07 17:16:19 +02:00
Jelte Fennema 01da11f264
Change citus truncate trigger to AFTER and add more upgrade tests (#3070)
* Add more upgrade tests

* Fix citus trigger generation after upgrade

citus_truncate_trigger runs before truncate when created by create_distributed_table:
492d1b2cba/src/backend/distributed/commands/create_distributed_table.c (L1163)

* Remove pg_dist_jobid_seq
2019-10-07 16:43:04 +02:00
SaitTalhaNisanci bffd110446
use citus instead of citusdata repo (#3077) 2019-10-07 12:03:42 +03:00
Onder Kalaci 3be72ce42f Make sure that distributed functions always have the correct user
Objectives:

(a) both super user and regular user should have the correct owner for the function on the worker
(b) The transactional semantics would work fine for both super user and regular user
(c) non-super-user and non-function owner would get a reasonable error message if tries to distribute the function

Co-authored-by: @serprex
2019-10-04 21:38:49 +00:00
SaitTalhaNisanci c547664fae
Add Citus upgrade tests with its job (#3003)
* Add initial citus upgrade test

* Add restart databases and run tests in all nodes

* Add output for citus versions 8.0 8.1 8.2 and 8.3

* Add verify step for citus upgrade

* Add target for citus upgrade test in makefile

* Add check citus upgrade job

* Fix installation file path and add missing tar

* Run citus upgrade for v8.0 v8.1 v8.2 and v8.3

* Create upgrade_common file and rename upgrade check

* Add pg version to citus upgrade test

* Test with postgres 10 and 11 in citus upgrade tests

* Add readme for citus upgrade test

* Add some basic tests to citus upgrade tests

* Add citus upgrade mixed mode test

* Remove citus artifacts before installing another one

* Refactor citus upgrade test according to reviews

* quick and dirty rewrite of citus upgrade tests to support local execution.

I think we need to change the makefile in such a way that the tar files can be injected from the circle ci config file.

Also I removed some of the citus version checks you had to not have the requirement to pass that in separately from the pre tar file. I am not super happy with it, but two flags that need to be kept in sync is also not desirable. Instead I print out the citus version that is installed per node. This will not cause a failure if they are not what one would expect but it lets us verify we are running the expected version.

* use latest citusupgradetester in circleci

* update readme and use common alias for upgrade_common import
2019-10-04 17:44:49 +03:00
Marco Slot 144a4f4cfa
Merge pull request #3075 from citusdata/fix/citus_schema_grant
Grant usage on schema citus to public
2019-10-04 13:22:57 +02:00
Marco Slot 1a3a174f67 Grant usage on schema citus to public 2019-10-04 12:26:08 +02:00
Marco Slot c15ddfb63f
Merge pull request #3068 from citusdata/fix_metadata_sync_locks
Don't block for locks in SyncMetadataToNodes()
2019-10-04 12:24:57 +02:00
Marco Slot 89377ee578 Move RowExclusiveLock to start in SyncMetadataToNodes 2019-10-04 12:07:41 +02:00
Hadi Moshayedi 217db2a03e Don't block for locks in SyncMetadataToNodes() 2019-10-03 16:53:36 -07:00