github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/rowexec/version_history.txt (about) 1 - Version: 6 (MinAcceptedVersion: 6) 2 - The producer<->consumer (FlowStream RPC) protocol has changed: the 3 consumer_signal.handshake field was introduced. The handshake messages are 4 sent by the server-side of FlowStream informing the producer of the 5 consumer's status. The messages would cause a server running the previous 6 version to erroneously think that the consumer has sent a drain signal, 7 therefore MinAcceptedVersion was increased. 8 - Version: 7 (MinAcceptedVersion: 6) 9 - Three new aggregations (SQRDIFF, FINAL_VARIANCE, FINAL_STDDEV) were 10 introduced to support local and final aggregation of the builtin 11 functions STDDEV and VARIANCE. These new aggregations would be unrecognized 12 by a server running older versions, hence the version bump. However, a 13 server running v7 can still process all plans from servers running v6, 14 thus the MinAcceptedVersion is kept at 6. 15 - Version: 8 (MinAcceptedVersion: 6) 16 - An InterleavedReaderJoiner processor was introduced to enable more 17 efficient joins between interleaved tables. The new processor spec would be 18 unrecognized by a server running older versions, hence the version bump. 19 Servers running v8 can still execute regular joins between interleaved 20 tables from servers running v6, thus the MinAcceptedVersion is kept at 6. 21 - Version: 9 (MinAcceptedVersion: 6) 22 - Many changes were made without bumping the version. These changes involved 23 changes to the semantics of existing processors. These changes include: 24 - Two new join types (LEFT_SEMI, LEFT_ANTI) were added to the JoinType enum 25 to support new types of joins that can be used to improve performance of 26 certain queries. The new join types would not be recognized by a server 27 with an old version number. 28 - The JoinReaderSpec was modified by adding three new properties 29 (lookup_columns, on_expr, and index_map) to enable the JoinReader to perform 30 lookup joins enabling more efficient joins for certain queries. Old server 31 versions would not recognize these new properties. 32 - Two new join types (INTERSECT_ALL, EXCEPT_ALL) were added to the sqlbase.JoinType 33 enum to support INTERSECT and EXCEPT queries. These "set operation" queries 34 can now be planned by DistSQL, and older versions will not be capable of 35 supporting these queries. 36 - The ARRAY_AGG and JSON_AGG aggregate functions were added to the 37 AggregatorSpec_Func enum. Older versions will not recognize these new enum 38 members, and will not be able to support aggregations with either. 39 - IMPORT was changed to support importing CSVs with no primary key specified. 40 This required a change to the CSV proto semantics, making old and new 41 versions mutually incompatible. This was an EXPERIMENTAL feature in 1.1 and 42 thus we do not bump the MinAcceptedVersion, even though IMPORT in mixed 43 clusters without primary keys will succeed with incorrect results. 44 - TableReader was extended to support physical checks. Old versions would not 45 recognize these new fields. 46 - Version: 10 (MinAcceptedVersion: 6) 47 - The AlgebraicSetOp processor was removed, as it is not used. It was never 48 used in plans, but its absence does change the ProcessorCoreUnion message, 49 so a version bump is required. 50 - Version: 11 (MinAcceptedVersion: 6) 51 - The txn field in the SetupFlowRequest is made nullable. Backfiller flows 52 no longer pass in a txn (it was passed by the gateway, but unused by the 53 remote processors before). 54 - Version: 12 (MinAcceptedVersion: 6) 55 - The AggregatorSpec has a new OrderedGroupCols field, which older versions 56 will not recognize. 57 - Version: 13 (MinAcceptedVersion: 6) 58 - Add NumRows to ValuesSpec (used for zero-column case). The implementation 59 tolerates this field being unset in existing planning cases (at lest one 60 column). 61 - Version: 14 (MinAcceptedVersion: 6) 62 - Enhancements to lookup joins. They now support joining against secondary 63 indexes as well as left outer joins. Left join support required two 64 additional fields on JoinReaderSpec: index_filter_expr and type. 65 - Add support for processing queries with tuples in DistSQL. Old versions 66 would not recognize the new tuple field in the proto. (This change was 67 introduced without bumping the version.) 68 - Version: 15 (MinAcceptedVersion: 6) 69 - Add SRF support via a new ProjectSet processor. The new processor spec 70 would not be recognized by old versions. 71 - Version: 17 (MinAcceptedVersion: 6) 72 - Add scalar vs non-scalar designation to aggregator. 73 - Version: 18 (MinAcceptedVersion: 6) 74 - New EvalContext field. 75 - Version: 19 (MinAcceptedVersion: 6) 76 - More EvalContext fields. 77 - Version: 20 (MinAcceptedVersion: 6) 78 - Add labels to tuple types. 79 - Version: 21 (MinAcceptedVersion: 6) 80 - Permit non-public (mutation) columns in TableReader return values, when 81 requested. The new processor spec would be ignored by old versions. 82 - MinAcceptedVersion: 21 83 - Bump in preparation for the 2.1 release. A large amount of changes 84 in both IMPORT and SQL execution have merged since 2.0. We have not 85 adequately tested them in skewed version clusters to have confidence 86 that they are compatible. We decided it was safer to bump the min 87 version to prevent possible bugs at the cost of performance during 88 the upgrade. 89 - Version: 22 (MinAcceptedVersion: 21) 90 - Change date math to better align with PostgreSQL: 91 https://github.com/cockroachdb/cockroach/pull/31146 92 - Version: 23 (MinAcceptedVersion: 23) 93 - Refactoring of window functions. The main changes were reusing of renders 94 whenever possible (for arguments and OVER clauses) which changed the way 95 that information is propagated to windowers - a new field ArgsIdxs was 96 introduced in place of ArgIdxStart and ArgCount. Another field was added 97 to specify the output column for each window function (previously, this 98 was derived from ArgIdxStart during execution). 99 - Version: 24 (MinAcceptedVersion: 24) 100 - Remove the unused index filter expression field from the lookup join spec. 101 - Version: 25 (MinAcceptedVersion: 24) 102 - Add locking strength and wait policy fields to TableReader, JoinReader, 103 IndexSkipTableReader, and InterleavedReaderJoiner spec. 104 - Version: 26 (MinAcceptedVersion: 24) 105 - Add the numeric tuple field accessor and the ByIndex field to ColumnAccessExpr. 106 - Version: 27 (MinAcceptedVersion: 27) 107 - Change how DArray datums are hashed for distinct and aggregation operations. 108 - Version: 28 (MinAcceptedVersion: 28) 109 - The CORR aggregate function has been added which will not be recognized 110 by older nodes. However, new nodes can process plans from older nodes, 111 so MinAcceptedVersion is unchanged. 112 - Version: 29 (MinAcceptedVersion: 29) 113 - The hashing of DArray datums was changed and is incompatible with the 114 existing method of hashing DArrays.