From 989f0414b72db77e0897042a2e5b06a601032d8c Mon Sep 17 00:00:00 2001 From: Maxwell Guo Date: Sat, 25 Jan 2025 00:27:51 +0800 Subject: [PATCH] Support CREATE TABLE LIKE with INDEXES patch by Maxwell Guo; reviewed by Stefan Miklosovic, Sam Tunnicliffe for CASSANDRA-19965 --- CHANGES.txt | 1 + doc/cql3/CQL.textile | 11 +- .../examples/BNF/create_table_like.bnf | 2 +- .../examples/CQL/create_table_like.cql | 3 + pylib/cqlshlib/cql3handling.py | 5 +- pylib/cqlshlib/test/test_cqlsh_completion.py | 28 +- src/antlr/Lexer.g | 1 + src/antlr/Parser.g | 12 +- .../statements/schema/CopyTableStatement.java | 69 +++- .../cassandra/schema/KeyspaceMetadata.java | 40 +- .../cql3/AlterSchemaStatementTest.java | 3 +- .../org/apache/cassandra/cql3/CQLTester.java | 32 +- .../schema/createlike/CreateLikeTest.java | 390 +++++++++++------- 13 files changed, 424 insertions(+), 173 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index b704cca5d4..269b8a8f45 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 5.1 + * Support CREATE TABLE LIKE WITH INDEXES (CASSANDRA-19965) * Invalidate relevant prepared statements on every change to TableMetadata (CASSANDRA-20318) * Add per type max size guardrails (CASSANDRA-19677) * Make it possible to abort all kinds of multi step operations (CASSANDRA-20217) diff --git a/doc/cql3/CQL.textile b/doc/cql3/CQL.textile index f819ec193d..87812fc19b 100644 --- a/doc/cql3/CQL.textile +++ b/doc/cql3/CQL.textile @@ -414,16 +414,19 @@ bc(syntax).. ::= CREATE ( TABLE | COLUMNFAMILY ) ( IF NOT EXISTS )? LIKE ( WITH