Commit Graph

4458 Commits (hack-local-execution)

Author SHA1 Message Date
Andres Freund 38f4722f6f Add tests for LEFT JOIN ON clauses preventing matches left/right. 2016-06-16 16:53:02 -07:00
Marco Slot 52bc209c37 Do not copy outer join clauses into WHERE 2016-06-16 16:42:32 -07:00
Andres Freund bac1ac93ef Merge pull request #604 from citusdata/fix_alter_extension
Fix Alter Extension
2016-06-16 14:35:30 -07:00
Metin Doslu 7d18488676 Drop function from public and create in pg_catalog
Fixes #600
2016-06-16 14:08:40 -07:00
Hanna Wischmann 48b5d15741 Fix the documentation link from Citus 5.0 to Citus 5.1 (#593) 2016-06-16 10:45:36 -07:00
Murat Tuncer 4465b1d495 Merge pull request #585 from citusdata/faster_regression_tests
Faster regression tests
2016-06-15 16:48:51 +03:00
Murat Tuncer 9cb6a022a5 Reduce regression test runtime
-Added 2 more schedules for task-tracker and multi-binary
 instead of running multi_schedule 3 times
-set task-tracker-delay for each long running schedule
2016-06-15 16:35:07 +03:00
Metin Döşlü 936fab3610 Merge pull request #588 from citusdata/fix/fix_550_append_shardId_before_escaping_table_names
Append shardId before escaping the table name
2016-06-15 14:48:11 +03:00
Burak Yucesoy 4a718d293b Append shardId before escaping the table name
Fixes #550, fixes #545

If table name contains special characters, it needs to be escaped. However in some cases,
we escape table name before appending shardId, which causes syntax error in the queries
sent to worker nodes. With this change we now append shardId before escaping table names.
2016-06-15 04:15:40 +03:00
Murat Tuncer 27bf5f2ab2 Merge pull request #586 from citusdata/fix_275_remove_variant_files_from_tests
Remove variant files from regression tests
2016-06-13 12:26:51 +03:00
Murat Tuncer 31df82ba7a Remove variant files
This checkin removes variant files we needed
due to differences in outputs of pg94 and pg95 runs.
However, variant file for test multi_upsert stays
since this file tests for a feature that does not
exist in pg94, and outputs are drastically different.
2016-06-13 12:12:06 +03:00
Ahmet Eren Basak bbf13be508 Merge pull request #591 from citusdata/fix_compile_time_warning_in_multi_logical_optimizer
Eliminate compile time warnings in multi_logical_optimizer.c
2016-06-10 12:33:18 +03:00
Eren 57256b3476 Eliminate compile time warnings in multi_logical_optimizer.c
This change removes some issues about mixed declarations
and code in TablePartitioningSupportsDistinct() and
WorkerExtendedOpNode() functions.
2016-06-10 12:27:12 +03:00
Murat Tuncer 4e4aab0f05 Merge pull request #563 from citusdata/fix/345_task_cleanup_logic
make task cleanup logic less error prone
2016-06-09 17:53:35 +03:00
Murat Tuncer bb3eee63e7 Refactor task tracker cleanup to enable workers receive cleanup jobs
Long sleep is replaced by multiple small sleeps. Maximum timeout
is also increased since we do not have to wait for that long most
of the cases.
2016-06-09 17:03:54 +03:00
Murat Tuncer c42c393cc5 Merge pull request #579 from citusdata/fix/569_count_distinct_crash
Fix crash in count distinct with filters in repartition subqueries
2016-06-09 12:01:07 +03:00
Murat Tuncer 0db413491c Fix crash in count distinct with filters in repartition subqueries
now copies all column references in count distinct aggreagete
to worker target list and group by. Master target list is
also updated to reflect changes in attribute order.

Fixes 569
2016-06-09 11:47:24 +03:00
Jason Petersen b31808a1c5
Merge amosbird:i64_affected_tuples into master 2016-06-08 10:35:40 -06:00
Jason Petersen d39508d8b3
Minor formatting/comment fixes 2016-06-08 10:34:07 -06:00
Amos Bird fd1b088208 Add overflow checks. 2016-06-08 10:30:03 +08:00
Amos Bird 107b926262 Eliminates the possibilities of counter overflows.
This patch uses scanint8 instead of pg_atoi to make sure the affected
tuples counter never gets overflow.
2016-06-08 10:30:03 +08:00
Burak Yücesoy 06f78652e7 Merge pull request #539 from citusdata/fix/fix_496_wrong_storage_type_for_foreign_tables
Fix wrong storage type for foreign tables
2016-06-08 04:48:00 +03:00
Burak Yücesoy 323f1151e0 Fix wrong storage type for foreign tables
Fixes #496

Previously we do not check whether table is foreign or not while creating empty
shards, and set storage type to 't'(Standard table) or 'c'(Columnar table). Now
if the table is foreign table(but not CStore foreign table) we set storage
type to 'f'(Foreign table). If it is CStore foreign table, we set its storage
type to 'c', i.e. columnar table have priority over foreign table.

Please note that 'c' is only used for CStore tables not for other possible
columnar stores at the moment. Possible improvement could be checking for other
columnar stores, though I am not sure if there is a way to check it for all
other columnar stores.
2016-06-08 04:12:01 +03:00
Jason Petersen 2f07395d65 Merge pull request #552 from citusdata/fail_on_remote_error
Improve error handling during failed modification PR

cr: @jasonmp85
2016-06-07 13:41:41 -06:00
Jason Petersen a19520b9bd
Add back test for INSERT where all placements fail
Since we now short-circuit on certain remote errors, we want to ensure
we preserve the old behavior of not modifying any placement states if
a non-short-circuiting error occurs on all placements.
2016-06-07 13:21:23 -06:00
Jason Petersen 48f4e5d1a5
Make ReportRemoteError's CONTEXT style-compliant
There's not a ton of documentation about what CONTEXT lines should look
like, but this seems like the most dominant pattern. Similarly, users
should expect lowercase, non-period strings.
2016-06-07 12:47:16 -06:00
Jason Petersen 9ba02928ac
Refactor ReportRemoteError to remove boolean arg
Broke it into two explicitly-named functions instead: WarnRemoteError
and ReraiseRemoteError.
2016-06-07 12:38:32 -06:00
Metin Doslu 7d0c90b398 Fail fast on constraint violations in router executor 2016-06-07 18:11:17 +03:00
Metin Doslu 15eed396b3 Update ereport format 2016-06-07 15:58:32 +03:00
Metin Döşlü 8bac89b663 Merge pull request #576 from citusdata/hash-partitioned_master_update_shard_statistics
Update only shard length on statistics update for hash/range-partitioned tables
2016-06-07 15:35:51 +03:00
Metin Doslu 28a16beba7 Update only shard length on statistics update for hash-partitioned
Update only the shard length on master_update_shard_statistics() call for
hash-partitioned tables.

Fixes #519.
2016-06-07 15:04:29 +03:00
Ahmet Eren Basak 8be3ca7c4b Merge pull request #575 from citusdata/tests_with_explicit_shardid_jobid
Set Explicit ShardId/JobId In Regression Tests
2016-06-07 15:02:01 +03:00
Eren 5512bb359a Set Explicit ShardId/JobId In Regression Tests
Fixes #271

This change sets ShardIds and JobIds for each test case. Before this change,
when a new test that somehow increments Job or Shard IDs is added, then
the tests after the new test should be updated.

ShardID and JobID sequences are set at the beginning of each file with the
following commands:

```
ALTER SEQUENCE pg_catalog.pg_dist_shardid_seq RESTART 290000;
ALTER SEQUENCE pg_catalog.pg_dist_jobid_seq RESTART 290000;
```

ShardIds and JobIds are multiples of 10000. Exceptions are:
- multi_large_shardid: shardid and jobid sequences are set to much larger values
- multi_fdw_large_shardid: same as above
- multi_join_pruning: Causes a race condition with multi_hash_pruning since
they are run in parallel.
2016-06-07 14:32:44 +03:00
Murat Tuncer 46fcbd1ff9 Merge pull request #548 from citusdata/feature/manual_ddl_propagation
Add enable_ddl_propagation flag to control automatic ddl propagation
2016-06-06 14:08:47 +03:00
Murat Tuncer 360e884de1 Add enable_ddl_propagation flag to control automatic ddl propagation 2016-06-06 13:42:46 +03:00
Murat Tuncer 3c0673be51 Merge pull request #535 from citusdata/fix/equality_operator_check
Change equality operator check for operator expressions
2016-06-06 12:51:28 +03:00
Murat Tuncer 20ba0f72a6 Change equality operator check for operator expressions 2016-06-06 12:34:16 +03:00
Burak Yücesoy d6b30a66db Merge pull request #536 from citusdata/fix/fix_302_update_test_to_create_hash_partitioned_table
Update regression tests where metadata edited manually
2016-06-04 17:10:22 +03:00
Burak Yücesoy 2f096cad74 Update regression tests where metadata edited manually
Fixes #302

Since our previous syntax did not allow creating hash partitioned tables,
some of the previous tests manually changed partition method to hash to
be able to test it. With this change we remove unnecessary workaround and
create hash distributed tables instead. Also in some tests metadata was
created manually. With this change we also fixed this issue.
2016-06-04 13:50:42 +00:00
Jason Petersen 29343b7340
Omit open- tracking branches from build 2016-06-03 18:01:36 -06:00
Jason Petersen 5fe36a7179
Add Travis step to sync master to open-master 2016-06-03 13:52:52 -06:00
Burak Yücesoy b9dc906ab5 Merge pull request #544 from citusdata/fix/fix_475_remove_only_clause_from_worker_queries
Remove ONLY clause from worker queries
2016-06-03 11:53:01 +03:00
Burak Yucesoy 5db357eb1a Remove ONLY clause from worker queries
Fixes #475

With this change we prevent addition of ONLY clause to queries prepared for
worker nodes. When we add ONLY clause we may miss the inherited tables in
worker nodes created by users manually.
2016-06-03 11:42:43 +03:00
Jason Petersen 027a7a717d Merge pull request #391 from citusdata/feature/rely-less-on-remote-task-check-interval
Prototype: Rely less on remote_task_check_interval.

cr: @jasonmp85
2016-06-02 12:34:25 -06:00
Andres Freund 3dac0a4d14
Rely less on remote_task_check_interval.
When executing queries with citus.task_executor = 'real-time', query
execution could, so far, spend a significant amount of time
sleeping. That's because we were
a) sleeping after several phases of query execution, even if we're not
   waiting for network IO
b) sleeping for a fixed amount of time when waiting for network IO;
   often a lot longer than actually required.
Just reducing the amount of time slept isn't a real solution, because
that just increases CPU usage.

Instead have the real-time executor's ManageTaskExecution return whether
a task is currently being processed, waiting for reads or writes, or
failed. When all tasks are waiting for IO use poll() to wait for IO
readyness.

That requires to slightly redefine how connection timeouts are handled:
before we counted the number of times ManageTaskExecution() was called,
and compared that with the timeout divided by the task check
interval. That, if processing of tasks took a while, could significantly
increase the time till a timeout occurred. Because it was based on the
ManageTaskExecution() being called on a constant interval, this approach
isn't feasible anymore.  Instead measure the actual time since
connection establishment was started. That could in theory, if task
processing takes a very long time, lead to few passes over
PQconnectPoll().

The problem of sleeping too much also exists for the 'task-tracker'
executor, but is generally less problematic there, as processing the
individual tasks usually will take longer. That said, for e.g. the
regression tests it'd be helpful to use a similar approach.
2016-06-02 12:11:16 -06:00
Metin Döşlü ae8ba2ac52 Merge pull request #570 from citusdata/move_master_update_shard_statistics_to_pg_catalog
Move master_update_shard_statistics() to pg_catalog

cr: @marcocitus
2016-06-02 13:22:44 +03:00
Metin Doslu d4c4eaa9ff Move master_update_shard_statistics() to pg_catalog
Fixes #546
2016-06-02 10:52:47 +03:00
Jason Petersen 87d6a7e897
Merge branch amosbird:remove-redundant-functions
Closes #523
cr: @jasonmp85
2016-05-27 15:13:53 -06:00
Jason Petersen e774f22ed4
Fix formatting
Checking in citus_indent output.
2016-05-27 15:13:28 -06:00
Amos Bird 92788a0d9c
Remove redundant implementations of error funcs.
This patch does some basic cleaning jobs. It removes duplicated
implementations of ReportRemoteError() and related ones and adjusts
regression tests.
2016-05-27 15:12:59 -06:00