citus/src/include/distributed
Andres Freund 970c81f589 Hack up PREPARE/EXECUTE for nearly all distributed queries.
All router, real-time, task-tracker plannable queries should now have
full prepared statement support (and even use router when possible),
unless they don't go through the custom plan interface (which
basically just affects LANGUAGE SQL (not plpgsql) functions).

This is achieved by forcing postgres' planner to always choose a
custom plan, by assigning very low costs to plans with bound
parameters (i.e. ones were the postgres planner replanned the query
upon EXECUTE with all parameter values provided), instead of the
generic one.

This requires some trickery, because for custom plans to work the
costs for a non-custom plan have to be known, which means we can't
error out when planning the generic plan.  Instead we have to return a
"faux" plan, that'd trigger an error message if executed.  But due to
the custom plan logic that plan will likely (unless called by an SQL
function, or because we can't support that query for some reason) not
be executed; instead the custom plan will be chosen.
2017-01-23 09:23:50 -08:00
..
citus_clauses.h Simplify code and fix include guards in citus_clauses 2016-07-13 11:45:51 -07:00
citus_nodefuncs.h Support for deferred error messages. 2017-01-23 09:23:50 -08:00
citus_nodes.h Support for deferred error messages. 2017-01-23 09:23:50 -08:00
citus_ruleutils.h Add Sequence Support for MX Tables 2017-01-18 09:43:38 +03:00
colocation_utils.h Add upgrade_to_reference_table 2017-01-02 17:54:42 +02:00
connection_management.h Refactor CheckShardPlacements() and improve support for node removal 2017-01-12 20:10:10 +02:00
deparse_shard_query.h Add explicit RelationShards mapping to tasks 2016-12-23 10:23:43 +01:00
distribution_column.h Change return type of BuildDistributionKeyFromColumnName() to Var * 2016-10-20 10:59:31 +03:00
errormessage.h Support for deferred error messages. 2017-01-23 09:23:50 -08:00
hash_helpers.h Add some basic helpers to make use of dynahash hashtables easier. 2016-12-06 14:15:36 -08:00
listutils.h Add worker transaction and transaction recovery infrastructure 2016-10-18 14:18:14 +03:00
master_metadata_utility.h Add replication_model GUC 2017-01-23 09:05:14 -07:00
master_protocol.h Refactor get_shard_id_for_distribution_column() and other minor changes 2017-01-20 14:38:01 +02:00
metadata_cache.h Cache ShardPlacements in metadata cache. 2017-01-10 18:14:18 -08:00
metadata_sync.h Add a function to delete shard metadata from MX nodes 2017-01-20 14:38:01 +02:00
multi_client_executor.h Move multi_client_executor.[ch] ontop of connection_management.[ch]. 2016-12-07 11:44:24 -08:00
multi_copy.h Propagate DDL Commands with 2PC 2016-07-19 10:44:11 +03:00
multi_executor.h Support PostgreSQL 9.6 2016-10-18 16:23:55 -06:00
multi_explain.h Remove citus.explain_multi_logical/physical_plan. 2017-01-20 12:31:19 -08:00
multi_join_order.h Add replication_model GUC 2017-01-23 09:05:14 -07:00
multi_logical_optimizer.h Add view support 2017-01-13 09:39:42 +03:00
multi_logical_planner.h Add view support 2017-01-13 09:39:42 +03:00
multi_master_planner.h Update copyright dates 2016-03-23 17:14:37 -06:00
multi_physical_planner.h Make router planner error handling more flexible. 2017-01-23 09:23:50 -08:00
multi_planner.h Hack up PREPARE/EXECUTE for nearly all distributed queries. 2017-01-23 09:23:50 -08:00
multi_resowner.h Update copyright dates 2016-03-23 17:14:37 -06:00
multi_router_executor.h Add an enable_deadlock_prevention flag to allow router transactions to expand to multiple nodes 2017-01-22 17:31:24 +01:00
multi_router_planner.h Make router planner error handling more flexible. 2017-01-23 09:23:50 -08:00
multi_server_executor.h Add citus.node_connection_timeout GUC 2016-12-20 14:11:37 +03:00
multi_shard_transaction.h Remove remnants of commit_protocol.[ch]. 2017-01-21 09:01:15 -08:00
multi_utility.h Add enable_ddl_propagation flag to control automatic ddl propagation 2016-06-06 13:42:46 +03:00
pg_dist_colocation.h Final refactoring 2016-10-20 11:29:11 +03:00
pg_dist_local_group.h Add metadata infrastructure for pg_dist_local_group table 2016-10-17 11:52:18 +03:00
pg_dist_node.h Add hasmetadata column to pg_dist_node 2016-10-17 11:52:18 +03:00
pg_dist_partition.h Use 2PC for reference table modification 2017-01-04 12:46:35 +02:00
pg_dist_shard.h Drop shardalias 2016-10-14 11:03:26 +03:00
pg_dist_shard_placement.h Introduce placement IDs. 2016-10-07 11:59:20 -07:00
pg_dist_transaction.h Add worker transaction and transaction recovery infrastructure 2016-10-18 14:18:14 +03:00
placement_connection.h Centralized shard/placement connection and state management. 2017-01-09 13:13:02 -08:00
reference_table_utils.h Remove placement metadata of reference tables after master_remove_node 2017-01-16 11:24:56 +03:00
relay_utility.h Foreign Constraint Support for create_distributed_table and shard move 2016-10-21 15:38:55 +03:00
remote_commands.h Consistently libpq forward declaration in remote_commands.h. 2017-01-21 09:01:14 -08:00
remote_transaction.h Coordinated remote transaction management. 2016-12-12 15:18:12 -08:00
resource_lock.h Enable evaluation of stable functions in INSERT..SELECT 2016-12-23 12:47:21 +01:00
shardinterval_utils.h Add binary search capability to ShardIndex() 2016-12-30 18:55:34 +02:00
task_tracker.h Move task tracker lwlocks into their own tranche. 2016-09-30 16:06:49 -06:00
task_tracker_protocol.h Update copyright dates 2016-03-23 17:14:37 -06:00
test_helper_functions.h Quick fix for possible segfault in PurgeConnection 2016-07-29 00:12:56 -06:00
transaction_management.h Port master_append_table_to_shard to new connection API (#1149) 2017-01-23 15:57:44 +02:00
transaction_recovery.h Remove unused LogPreparedTransactions() function. 2017-01-06 09:15:01 -08:00
transmit.h Fix #469 2016-05-26 12:03:36 +03:00
worker_manager.h Error on Unsupported Features on Workers 2017-01-02 16:03:45 +03:00
worker_protocol.h Refactor get_shard_id_for_distribution_column() and other minor changes 2017-01-20 14:38:01 +02:00
worker_transaction.h Propagate node add/remove to the nodes with hasmetadata=true 2016-12-02 14:43:32 +03:00