Commit Graph

972 Commits (99642306eda8c711470eb2cb7afe8c8686d64852)

Author SHA1 Message Date
velioglu d7e244792f 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ü de1e0c5eb1 Merge pull request #1185 from citusdata/custom_plan
Use CustomScan API for query execution
2017-03-14 11:39:16 +02:00
Metin Doslu 76ab7040cb 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 2a6188d8a1 Initial temp table removal implementation 2017-03-14 12:09:49 +02:00
Jason Petersen 73e0e2a79a Revert "Remove unused SendCommandToWorker"
This reverts commit c8c308c109.
2017-03-13 15:48:51 -06:00
Murat Tuncer faf1f9ec99 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 7abc7080f2 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 b1aec5b403 Merge pull request #1263 from citusdata/docker-engine
Newer docker installation instructions

cr: @jasonmp85
2017-03-08 16:18:49 -07:00
Joe Nelson 10a5309b20 Use curl everywhere and prevent nested shell session 2017-03-08 15:43:26 -07:00
Joe Nelson 387f779fe0 More consistent references to Docker products 2017-03-08 15:43:26 -07:00
Joe Nelson 44524e879f Link to (for now) newest docker-compose binary 2017-03-08 15:43:26 -07:00
Joe Nelson a037c42418 Make outermost list ordered to emphasize the sequence 2017-03-08 15:43:25 -07:00
Joe Nelson 194a47f449 Docker download url has changed 2017-03-08 15:43:25 -07:00
Joe Nelson 61285ba367 Link to the new tutorial as well 2017-03-08 15:43:25 -07:00
Joe Nelson f0cec85c77 Native docker on mac, plus smoother instructions 2017-03-08 15:43:24 -07:00
Brian Cloutier ebc7779457 Remove unused SendCommandToWorker 2017-03-08 16:30:23 +03:00
Jason Petersen f1e7b1e180 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 aed36acfeb Remove unused master_stage_shard_{placement_,}row 2017-03-07 11:59:26 +03:00
Brian Cloutier 9f876986e2 Remove unused master_get_round_robin_candidate_nodes 2017-03-07 11:51:24 +03:00
Brian Cloutier c3e9bb880b Remove master_get_local_first_candidate_nodes 2017-03-07 11:50:59 +03:00
Andres Freund 99d660c45f 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 c16712c1c1 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 e718b10ce9 Remove default clause from shard DDL when sequences are used 2017-03-01 17:32:48 +03:00
Marco Slot 0a31d33cf9 Fix spelling in master_initialize_node_metadata comment 2017-03-01 12:27:50 +01:00
Jason Petersen e08c73f135 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 d3653051ab Rename misleading allowEmpty parameter
Last bit of PR feedback.
2017-02-28 22:48:00 -07:00
Marco Slot ba764be3bb Address review feedback in create_distributed_table data loading 2017-02-28 17:39:45 +01:00
Marco Slot 29b1fb97c5 Address review feedback in COPY refactoring 2017-02-28 17:39:45 +01:00
Marco Slot 92c8d6cf54 Use CitusCopyDestReceiver for regular COPY 2017-02-28 17:24:45 +01:00
Marco Slot 10e1131516 Load data into distributed table on creation 2017-02-28 17:24:45 +01:00
Marco Slot ae9d2be84e Add CitusCopyDestReceiver infrastructure 2017-02-28 17:24:45 +01:00
Burak Velioglu 4314102643 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 291f6f3bd2 Merge branch 'master' into disallow_master_appy_delete_on_hash 2017-02-24 10:40:23 +02:00
Burak Velioglu ab1800492b 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 a19770c6c8 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ü 859ec7d153 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 f73c0c2ab5 Get reproducible costs between different PostgreSQL versions 2017-02-22 15:40:02 +02:00
Burak Velioglu fa112e9c99 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ü f97883aa99 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 a4f2bf1266 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 3f93bcd960 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 99ebe06af5 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 e4e88d569f 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 a62fd862a8 Update links to Documentation to 6.1 2017-02-10 17:02:18 -08:00
Jason Petersen 9e3f586da3 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 10afe08cd9 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
Önder Kalacı 786fa439c6 Merge pull request #1213 from citusdata/fix_fkey_crash
Bugfix for creating foreign key
2017-02-07 10:26:11 +02:00
Onder Kalaci 49ed391b3e Bugfix for creating foreign key
This commit fixes crash for adding foreign keys without
specifying the referenced column crashes the backend.
2017-02-07 09:34:24 +02:00
Brian Cloutier 0c5373c28e Utility hook does nothing if the extension is not loaded 2017-02-02 17:48:31 +02:00
Brian Cloutier bd6c39215b Set a memory context when throwing deferred errors 2017-02-02 15:14:21 +02:00