Commit Graph

876 Commits (1fa2a25695025d284023ec2a2e71a13d892f7929)

Author SHA1 Message Date
Jason Petersen 1fa2a25695 Set tab size for GitHub display
Hooray!
2017-03-22 13:03:39 -06:00
Murat Tuncer 4e5736a09d Merge pull request #1142 from citusdata/bugfix/750_router_modify_errors
Rephrase router modify errors
2017-03-16 14:52:25 +02:00
Murat Tuncer c4734d7d94 Rephrase router modify errors
generic "distributed modifications must target exactly one shard"
message is replaced by more context aware error messages.
2017-03-16 15:09:10 +03:00
Burak Velioglu 729272aa53 Merge pull request #1267 from citusdata/add_udf_to_get_size_of_table
Add udfs to get size of table
2017-03-16 15:02:11 +03:00
velioglu e32aff1a26 Size UDFs implemented
citus_table_size, citus_relation_size and citus_total_relation_size UDFs are implemented.
2017-03-16 13:50:30 +03:00
Metin Döşlü d9c08c10f4 Merge pull request #1185 from citusdata/custom_plan
Use CustomScan API for query execution
2017-03-14 11:39:16 +02:00
Metin Doslu 1f838199f8 Use CustomScan API for query execution
Custom Scan is a node in the planned statement which helps external providers
to abstract data scan not just for foreign data wrappers but also for regular
relations so you can benefit your version of caching or hardware optimizations.
This sounds like only an abstraction on the data scan layer, but we can use it
as an abstraction for our distributed queries. The only thing we need to do is
to find distributable parts of the query, plan for them and replace them with
a Citus Custom Scan. Then, whenever PostgreSQL hits this custom scan node in
its Vulcano style execution, it will call our callback functions which run
distributed plan and provides tuples to the upper node as it scans a regular
relation. This means fewer code changes, fewer bugs and more supported features
for us!

First, in the distributed query planner phase, we create a Custom Scan which
wraps the distributed plan. For real-time and task-tracker executors, we add
this custom plan under the master query plan. For router executor, we directly
pass the custom plan because there is not any master query. Then, we simply let
the PostgreSQL executor run this plan. When it hits the custom scan node, we
call the related executor parts for distributed plan, fill the tuple store in
the custom scan and return results to PostgreSQL executor in Vulcano style,
a tuple per XXX_ExecScan() call.

* Modify planner to utilize Custom Scan node.
* Create different scan methods for different executors.
* Use native PostgreSQL Explain for master part of queries.
2017-03-14 12:17:51 +02:00
Andres Freund 52358fe891 Initial temp table removal implementation 2017-03-14 12:09:49 +02:00
Jason Petersen 6f4886cd11
Revert "Remove unused SendCommandToWorker"
This reverts commit c8c308c109.
2017-03-13 15:48:51 -06:00
Murat Tuncer 1599e943e7 Merge pull request #1272 from citusdata/router_planner_range_partitioned
Enable router planner for queries on range partitioned table
2017-03-09 16:18:12 +02:00
Murat Tuncer f657a744d5 Enable router planner for queries on range partitioned tables
Router planner now supports queries using range partitioned
tables. Queries on append partitioned tables are still not
supported.
2017-03-09 16:39:15 +03:00
Jason Petersen e060252431 Merge pull request #1263 from citusdata/docker-engine
Newer docker installation instructions

cr: @jasonmp85
2017-03-08 16:18:49 -07:00
Joe Nelson b2dd568dba
Use curl everywhere and prevent nested shell session 2017-03-08 15:43:26 -07:00
Joe Nelson 0aec20c8b3
More consistent references to Docker products 2017-03-08 15:43:26 -07:00
Joe Nelson f5ce760ad3
Link to (for now) newest docker-compose binary 2017-03-08 15:43:26 -07:00
Joe Nelson a86398fbe3
Make outermost list ordered to emphasize the sequence 2017-03-08 15:43:25 -07:00
Joe Nelson e8ef19ed30
Docker download url has changed 2017-03-08 15:43:25 -07:00
Joe Nelson 02129b1860
Link to the new tutorial as well 2017-03-08 15:43:25 -07:00
Joe Nelson 8e876bd9c6
Native docker on mac, plus smoother instructions 2017-03-08 15:43:24 -07:00
Brian Cloutier c8c308c109 Remove unused SendCommandToWorker 2017-03-08 16:30:23 +03:00
Jason Petersen f5fbf1e621 Merge pull request #1255 from citusdata/remove-unused-func
Remove unused metadata functions.

cr: @jasonmp85
2017-03-07 16:37:54 -07:00
Brian Cloutier a2ba565a9e Remove unused master_stage_shard_{placement_,}row 2017-03-07 11:59:26 +03:00
Brian Cloutier 95936ff481 Remove unused master_get_round_robin_candidate_nodes 2017-03-07 11:51:24 +03:00
Brian Cloutier 807beb7bc0 Remove master_get_local_first_candidate_nodes 2017-03-07 11:50:59 +03:00
Andres Freund fa5b8fb39f Fix SendRemoteCommandParams() handling of a NULL MultiConnection->pgConn. (#1271)
Previously we'd segfault in PQisnonblocking() which, contrary to other
libpq calls, doesn't handle a NULL PQconn (because there'd be no
appropriate return value for that).

cr: @jasonmp85
2017-03-03 12:02:15 -07:00
Murat Tuncer 0a58a7b2c1 Merge pull request #1264 from citusdata/bugfix/1251_remove_default_value
Remove default clause from shard DDL when sequences are used
2017-03-01 21:03:40 +02:00
Murat Tuncer 72027f2eba Remove default clause from shard DDL when sequences are used 2017-03-01 17:32:48 +03:00
Marco Slot bab1b65491 Fix spelling in master_initialize_node_metadata comment 2017-03-01 12:27:50 +01:00
Jason Petersen 33b58f8e26 Merge pull request #1117 from citusdata/create_table_data_migration
Migrate data on create_distributed_table

cr: @jasonmp85
2017-02-28 22:55:06 -07:00
Jason Petersen 047825c6ca
Rename misleading allowEmpty parameter
Last bit of PR feedback.
2017-02-28 22:48:00 -07:00
Marco Slot 56d4d375c2 Address review feedback in create_distributed_table data loading 2017-02-28 17:39:45 +01:00
Marco Slot db98c28354 Address review feedback in COPY refactoring 2017-02-28 17:39:45 +01:00
Marco Slot d74fb764b1 Use CitusCopyDestReceiver for regular COPY 2017-02-28 17:24:45 +01:00
Marco Slot d11eca7d4a Load data into distributed table on creation 2017-02-28 17:24:45 +01:00
Marco Slot bf3541cb24 Add CitusCopyDestReceiver infrastructure 2017-02-28 17:24:45 +01:00
Burak Velioglu 424745a49a Merge pull request #1246 from citusdata/disallow_master_appy_delete_on_hash
Disallow master_apply_delete_command on hash distributed table
2017-02-24 10:47:49 +02:00
Burak Velioglu e158c7ae67 Merge branch 'master' into disallow_master_appy_delete_on_hash 2017-02-24 10:40:23 +02:00
Burak Velioglu ac16d4f15f Merge pull request #1248 from citusdata/fix_error_message_of_start_metadata_sync
Fix error message of start_metadata_sync_to_node
2017-02-22 17:13:47 +02:00
velioglu 4dbb69cfc3 Fix error message of start_metadata_sync_to_node
Single quotation mark is added around nodename to make the
error code consistent with master_add_node usage.
2017-02-22 18:03:58 +03:00
Metin Döşlü e3e1436680 Merge pull request #1252 from citusdata/reproducible_costs
Get reproducible costs between different PostgreSQL versions
2017-02-22 16:04:21 +02:00
Metin Doslu ee425871ee Get reproducible costs between different PostgreSQL versions 2017-02-22 15:40:02 +02:00
Burak Velioglu 49812ddfa0 Disallow master_apply_delete_command on hash distributed table
Delete operation is blocked for any table distributed by hash using master_apply_delete_command. Suggested master_modify_multiple_shards command as a hint.
2017-02-22 11:54:46 +03:00
Metin Döşlü b8e4763a1a Merge pull request #1242 from citusdata/debug4_to_debug2
Use DEBUG2 instead of DEBUG4 in INSERT SELECT tests & debug message
2017-02-20 13:29:31 +02:00
Andres Freund 9721e80901 Use DEBUG2 instead of DEBUG4 in INSERT SELECT tests & debug message.
During later work the transaction debug output will change (as it will
in postgres 10), which makes it hard to see actual changes in the
INSERT ... SELECT ... test.  Reduce to DEBUG2 after changing a debug
message to that log level.
2017-02-20 12:56:16 +02:00
Eren Başak 5184fc1d92 Merge pull request #1206 from citusdata/for_statement_replication_on_old_apis
Enforce statement based replication on old APIs and non-hash tables
2017-02-16 10:45:09 -08:00
Eren Basak df9cf346ee Enforce statement based replication on old APIs and non-hash tables
This change ignores `citus.replication_model` setting and uses the
statement based replication in

- Tables distributed via the old `master_create_distributed_table` function
- Append and range partitioned tables, even if created via
`create_distributed_table` function

This seems like the easiest solution to #1191, without changing the existing
behavior and harming existing users with custom scripts.

This change also prevents RF>1 on streaming replicated tables on `master_create_worker_shards`

Prior to this change, `master_create_worker_shards` command was not checking
the replication model of the target table, thus allowing RF>1 with streaming
replicated tables. With this change, `master_create_worker_shards` errors
out on the case.
2017-02-16 10:37:53 -08:00
sumedhpathak 1ba078caea Merge pull request #1226 from citusdata/6.1-docs-changes
Update links to Documentation in Readme to 6.1
2017-02-10 17:12:26 -08:00
sumedhpathak bb1d782384 Update links to Documentation to 6.1 2017-02-10 17:02:18 -08:00
Jason Petersen bc21da6f6f Add 6.1.0 CHANGELOG entries (#1219)
This is probably missing some stuff, but is my edit of the initial list
compiled by Burak.

cr: @craigkerstiens
2017-02-09 17:05:17 -07:00
Jason Petersen ad19b668ac Fix tests broken by new PostgreSQL patch releases (#1220)
PostgreSQL 9.5.6 and 9.6.2 were released today and broke several tests
by adding TABLESPACE pg_default output to some DDL commands. Fixed all
occurrences.

cr: @anarazel
2017-02-09 16:53:02 -07:00