Definitely a nice addition to CQL.

Looking for inspiration at how Postgres and Mysql do that may also help with 
the final design (I like the WITH proposed by Stefan, but I would definitely 
take a look at the INCLUDING keyword proposed by Postgres).
https://www.postgresql.org/docs/current/sql-createtable.html
https://dev.mysql.com/doc/refman/8.4/en/create-table-like.html

On top of that, and as part of the interesting questions, I would like to add 
the permissions to the mix. Both the question about copying them over (with a 
WITH keyword probably), and the need for read permissions on the source table 
as well.

Bernardo

> On Aug 19, 2024, at 10:01 AM, Štefan Miklošovič <smikloso...@apache.org> 
> wrote:
> 
> BTW this would be cool to do as well:
> 
> ALTER TABLE ks.to_copy LIKE ks.tb WITH INDICES;
> 
> This would mean that if we create a copy of a table, later we can decide that 
> we need indices too, so we might "enrich" that table with indices from the 
> old one without necessarily explicitly re-creating them on that new table. 
> 
> On Mon, Aug 19, 2024 at 6:55 PM Štefan Miklošovič <smikloso...@apache.org 
> <mailto:smikloso...@apache.org>> wrote:
>> I think this is an interesting idea worth exploring. I definitely agree with 
>> Benjamin who raised important questions which needs to be answered first. 
>> Also, what about triggers?
>> 
>> It might be rather "easy" to come up with something simple but it should be 
>> a comprehensive solution with predictable behavior we all agree on.
>> 
>> If a keyspace of a new table does not exist we would need to create that one 
>> too before. For the simplicity, I would just make it a must to create it on 
>> same keyspace. We might iterate on that in the future.
>> 
>> UDTs are created per keyspace so there is nothing to re-create. We just need 
>> to reference it from a new table, right?
>> 
>> Indexes and MVs are interesting but in theory they might be re-created too.
>> 
>> Would it be appropriate to use something like this?
>> 
>> CREATE TABLE ks.tb_copy LIKE ks.tb WITH INDEXES AND VIEWS AND TRIGGERS .... 
>> 
>> Without "WITH" it would just copy a table with nothing else.
>> 
>> On Mon, Aug 19, 2024 at 6:10 PM guo Maxwell <cclive1...@gmail.com 
>> <mailto:cclive1...@gmail.com>> wrote:
>>> Hello, everyone:
>>> As  Jira CASSANDRA-7662 
>>> <https://issues.apache.org/jira/browse/CASSANDRA-7662> has described , we 
>>> would like to introduce a new grammer " CREATE TABLE LIKE " ,which  
>>> simplifies creating new tables duplicating the existing ones .
>>> The format may be like : CREATE TABLE <new_table> LIKE <old_table>
>>> 
>>> Before I implement this function, do you have any suggestions on this?
>>> 
>>> Looking forward to your reply!

Reply via email to