Commit Graph

5411 Commits (912e80d4cc7a5ad180c78a8a6019ac86fda3ffb6)

Author SHA1 Message Date
Nils Dijk 912e80d4cc
hacky prototype for partial count(...) pushdown 2021-12-01 14:42:33 +01:00
Nils Dijk 88e639283c
pluggable optimizations 2021-12-01 12:54:44 +01:00
Nils Dijk 3e88dde672
partial group by optimization 2021-12-01 12:54:44 +01:00
Nils Dijk ffc73634a8
prepare group optimizations to be extensible 2021-12-01 12:54:43 +01:00
Nils Dijk 4542265dbf
try repartition grouping 2021-12-01 12:54:43 +01:00
Nils Dijk 1eb418de89
refactor agg pushdown and prevent illegal repartition paths to be generated 2021-12-01 12:54:43 +01:00
Nils Dijk a55331d934
iterate on cost model 2021-12-01 12:54:43 +01:00
Nils Dijk 0341d9fe80
reindent pathbased planner 2021-12-01 12:54:43 +01:00
Nils Dijk 51d498e2c2
wip for repartition join 2021-12-01 12:54:43 +01:00
Nils Dijk 071cae2f6d
fix check for outer rel to take mapped varno's into account 2021-12-01 12:54:42 +01:00
Nils Dijk 2a67d0057d
implement parameterized inner loops 2021-12-01 12:54:42 +01:00
Nils Dijk 9a4b1c2a49
disable postgis dependency 2021-12-01 12:54:42 +01:00
Nils Dijk 29010333cf
make compatible with pg14 2021-12-01 12:54:42 +01:00
Nils Dijk 7ee4646e96
use patternmatcher for join pushdown 2021-12-01 12:54:42 +01:00
Nils Dijk f4c5f9e2ea
remove liblwgeom from dependencies in citus 2021-12-01 12:54:41 +01:00
Nils Dijk 089650db11
rewriting tree to distributed plan 2021-12-01 12:54:41 +01:00
Nils Dijk 1aa86f6b1c
more simplification and removal of unused code 2021-12-01 12:54:41 +01:00
Nils Dijk 4362502bb5
generic way of matching fields for Var/Const 2021-12-01 12:54:41 +01:00
Nils Dijk 2b4072ebe8
rework the capture logic 2021-12-01 12:54:41 +01:00
Nils Dijk 766ed2ad33
collapse closing braces as suggested by dim 2021-12-01 12:54:40 +01:00
Nils Dijk cc84b48fd1
formatting and cleanup 2021-12-01 12:54:40 +01:00
Nils Dijk e3953b2459
prototype of pattern matcher 2021-12-01 12:54:40 +01:00
Nils Dijk bac16a3785
basic geo partitioning planning 2021-12-01 12:54:40 +01:00
Nils Dijk ec994a3a9c
add sql script to initialize a geo distributed table 2021-12-01 12:54:40 +01:00
Nils Dijk ff187ce5e1
expand shard model for geo distribution 2021-12-01 12:54:40 +01:00
Nils Dijk 6bc9209baf
update pg and citus 2021-12-01 12:54:39 +01:00
Nils Dijk b5ac6d2048
add broadcast optimization rule 2021-12-01 12:54:39 +01:00
Nils Dijk f952d9c614
easily add new join optimization functions 2021-12-01 12:54:39 +01:00
Nils Dijk 6b8e0a6105
fix subtle bug in adding to a list we are iterating over 2021-12-01 12:54:39 +01:00
Nils Dijk 23b11b470b
add paths for joins instead of rewriting them 2021-12-01 12:54:39 +01:00
Nils Dijk 84068f79b2
fix refactor and renames 2021-12-01 12:54:38 +01:00
Nils Dijk 2e178d21d6
fix targetlist to prevent projection that failed 2021-12-01 12:54:38 +01:00
Nils Dijk 5cef5b20a3
simple group by push down 2021-12-01 12:54:38 +01:00
Nils Dijk e570149c0a
propagate partition value during joins 2021-12-01 12:54:38 +01:00
Nils Dijk 30d9380f46
implement beginning of shard pruning 2021-12-01 12:54:38 +01:00
Nils Dijk ffa33b096a
Add support for optimising nested loop a bit (primary key lookup). 2021-12-01 12:54:38 +01:00
Nils Dijk 2937d4edc9
Fix misread of colocation id 2021-12-01 12:54:37 +01:00
Nils Dijk f858efd2f2
Implement beginnings of join pushdown 2021-12-01 12:54:37 +01:00
Nils Dijk b361386e05
Record the colocation id on the DU 2021-12-01 12:54:37 +01:00
Nils Dijk 8d73ff6779
Define a custom path structure 2021-12-01 12:54:37 +01:00
Nils Dijk 9acf41a9d9
Remove RTE reference from DU 2021-12-01 12:54:37 +01:00
Nils Dijk 00083afeaa
Use path object to recreate range table entry etc 2021-12-01 12:54:36 +01:00
Nils Dijk 285f1b1d1e
move path based planner to its own files 2021-12-01 12:54:36 +01:00
Nils Dijk fc0e6a1094
hacky hack for double distributed join 2021-12-01 12:54:36 +01:00
Nils Dijk aa3f283d02
support multiple remote scans 2021-12-01 12:54:36 +01:00
Nils Dijk 0d55755951
recreate query struct for sub paths 2021-12-01 12:54:36 +01:00
Nils Dijk 8f7037da63
beginning of set_rel_pathlist_hook to plan query on distributed table 2021-12-01 12:54:34 +01:00
Önder Kalacı ab365a335d
Merge pull request #5486 from citusdata/disable_node_async
Allow disabling node(s) when multiple failures happen
2021-12-01 10:48:49 +01:00
Onder Kalaci 549edcabb6 Allow disabling node(s) when multiple failures happen
As of master branch, Citus does all the modifications to replicated tables
(e.g., reference tables and distributed tables with replication factor > 1),
via 2PC and avoids any shardstate=3. As a side-effect of those changes,
handling node failures for replicated tables change.

With this PR, when one (or multiple) node failures happen, the users would
see query errors on modifications. If the problem is intermitant, that's OK,
once the node failure(s) recover by themselves, the modification queries would
succeed. If the node failure(s) are permenant, the users should call
`SELECT citus_disable_node(...)` to disable the node. As soon as the node is
disabled, modification would start to succeed. However, now the old node gets
behind. It means that, when the node is up again, the placements should be
re-created on the node. First, use `SELECT citus_activate_node()`. Then, use
`SELECT replicate_table_shards(...)` to replicate the missing placements on
the re-activated node.
2021-12-01 10:19:48 +01:00
Halil Ozan Akgül 6feb009834
Merge pull request #5499 from citusdata/fix_enterprise_fails
Fix enterprise fails
2021-11-30 16:16:30 +03:00