This simple approach resonates with me.  I think the Cassandra doc uses
"INDEXES" as the plural for index, i.e.:
https://cassandra.apache.org/doc/stable/cassandra/cql/indexes.html

-Dave

On Thu, Oct 17, 2024 at 2:39 PM Štefan Miklošovič <smikloso...@apache.org>
wrote:

> Well we could do something like:
>
>
> CREATE TABLE ks.tb_copy LIKE ks.tb WITH INDICES AND TRIGGERS AND
> compaction = {'class': '.... } AND ...
>
>
> but I can admit it might be seen as an overreach and I am not sure at all
> how it would look like in the implementation because we would need to
> distinguish WITH INDICES from table options.
>
>
> I would
>
>    1. +0 on ALL. - we don't need this. If we have just INDICES, TRIGGERS,
>    VIEWS at this point, I don't think enumerating it all is too much to ask.
>    This is just an implementation detail and if we find it necessary we can
>    add it later. If you feel strongly about this then add that but it is not
>    absolutely necessary.
>    2. omit OPTIONS - aren't all options copied by default? That is the
>    goal of the CEP, no? We might just use normal CQL while overriding
>    from the base table
>    3. mix keywords like TRIGGERS / INDICES / CONSTRAINTS into normal
>    table creation statement
>
>
>
> On Thu, Oct 17, 2024 at 3:20 PM Yifan Cai <yc25c...@gmail.com> wrote:
>
>> I would second Štefan's option for functionality simplicity. It seems to
>> be unnecessary to have the keywords for both inclusion and exclusion in the
>> CEP. If needed, the exclusion (WITHOUT) can be introduced later. It would
>> still be backward compatible.
>>
>> Regarding "CREATE TABLE ks.tb_copy LIKE ks.tb WITH compaction = {'class':
>> '.... } AND ... ", I think it only overrides the table options. The CEP
>> suggests the coarse-grained keyword for each category like table options,
>> indexes, etc. The functionality provided is not identical.
>>
>> I understand that the suggestions are to make operators' life easier by
>> achieving table creation in a single statement. What is being proposed in
>> the CEP seems to be at a good balance point. Operators can alter the table
>> options if needed in the follow-up ALTER table statement.
>>
>> - Yifan
>>
>>
>>
>> On Thu, Oct 17, 2024 at 1:41 PM Štefan Miklošovič <smikloso...@apache.org>
>> wrote:
>>
>>> I think we are starting to complicate it. For me the most important
>>> question is who is actually this feature for? If people want to just
>>> prototype something fast or they just want to have "the same table just
>>> under a different name", I think that is going to be used in 99% of cases.
>>>
>>>
>>>
>>> My assumption of using WITH which I think I proposed first (4th post in
>>> this thread) was to just blindly copy the most important "parts" logically
>>> related to a table, be it indices, materialized views, or triggers and
>>> enable / disable them as we wish. If no "WITH" is used, then we just get a
>>> table with nothing else. "WITH" will opt-in into that.
>>>
>>>
>>> Seeing us contemplating using "INCLUDING" and "EXCLUDING" on individual
>>> options makes me sad a little bit. I think we are over-engineering this. I
>>> just don't see a reasonable use-case where users would need to cherry-pick
>>> what they want and what not. Isn't that just too complicated? If a table
>>> being copied drifts away too much from the original one then users would be
>>> better off with creating a brand new table with CQL as they are used to,
>>> not dealing with "copying" at all. More we drift from what the original
>>> table was like, the less useful this feature is.
>>>
>>> On Wed, Oct 16, 2024 at 10:03 PM Dave Herrington <he...@rhinosource.com>
>>> wrote:
>>>
>>>> Sorry that I overlooked the definition of the default in the CEP.  I
>>>> did look for it but I didn’t see it.
>>>>
>>>> I think the default behavior you explained makes perfect sense & what
>>>> one would expect.
>>>>
>>>> I like the flexibility of INCLUDING and EXCLUDING that you are
>>>> considering.
>>>>
>>>> Would it make sense to use WITH for table options, which would make it
>>>> easy (and less confusing IMHO) to override the defaults from the source
>>>> table, then use INCLUDING/EXCLUDING for all non-table options such as
>>>> constraints and indices?
>>>>
>>>> It seems this would be easier to document as well, as it could just
>>>> point to the CREATE TABLE doc for the options, rather than trying to
>>>> explain a bunch of keywords that map to table options.
>>>>
>>>> -Dave
>>>>
>>>> David A. Herrington II
>>>> President and Chief Engineer
>>>> RhinoSource, Inc.
>>>>
>>>> *Data Lake Architecture, Cloud Computing and Advanced Analytics.*
>>>>
>>>> www.rhinosource.com
>>>>
>>>>
>>>> On Wed, Oct 16, 2024 at 7:57 PM guo Maxwell <cclive1...@gmail.com>
>>>> wrote:
>>>>
>>>>> To yifan :
>>>>> At the beginning of the period, I also thought about adding the
>>>>> keyword ALL, refer to pg
>>>>> <https://www.postgresql.org/docs/current/sql-createtable.html> ,
>>>>> but  I give up when writing cep as I find that there may be not so many
>>>>> properties (only three) to copy for C* and
>>>>> It is possible to decide what is needed and what is not in a very
>>>>> simple cql, as our ALL is only three properties here. I want to keep it as
>>>>> simple as possible (based on the advice given by Benjamin), So I grouped
>>>>> the properties of the table into one category and expressed it with
>>>>> OPTION keyword.
>>>>>
>>>>> But if we are going to split the first keyword OPTION  to COMPRESSION
>>>>> 、COMPACTION、COMMENT and so on. I am +1 on adding ALL back as the 
>>>>> properties
>>>>> are so many and it is simple to use ALL instead of
>>>>> list all properties. Besides I may change my keyword WITH to INCLUDING
>>>>> and adding another keyword EXCLUDING to flexibly copy table
>>>>> properties through simple sql statements, like using   1 not  2
>>>>>
>>>>>
>>>>>    1.  CREATE TABLE newTb like oldTb INCLUDING ALL EXCLUDING INDEXES
>>>>>    AND COMMENTS.
>>>>>    2.  CREATE TABLE newTb like oldTb INCLUDING COMPRESSION
>>>>>    CONSTRAINTS GENERATED IDENTITY STATISTICS STORAGE
>>>>>
>>>>> Conclusion: If there may be more keywords to consider in the future,
>>>>> such as more than 4 , I am +1 on adding ALL back .
>>>>>
>>>>> To Dave :
>>>>>    Default behavior is only copy column name, data type ,data mask ,
>>>>> you can see more detail from  CEP-43
>>>>> <https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-43++Apache+Cassandra+CREATE+TABLE++LIKE>
>>>>> .
>>>>>
>>>>>
>>>>> Patrick McFadin <pmcfa...@gmail.com> 于2024年10月17日周四 06:43写道:
>>>>>
>>>>>> +1 That makes much more sense in my experience.
>>>>>>
>>>>>> On Wed, Oct 16, 2024 at 12:12 PM Dave Herrington <
>>>>>> he...@rhinosource.com> wrote:
>>>>>>
>>>>>>> I'm coming at this with both a deep ANSI SQL background as well as
>>>>>>> CQL background.
>>>>>>>
>>>>>>> Defining the default behavior is the starting point.  What gets
>>>>>>> copied if we do "CREATE TABLE new_table LIKE original_table;" without a
>>>>>>> WITH clause?
>>>>>>>
>>>>>>> Then, you build on that with the specific WITH options.  WITH ALL
>>>>>>> catches everything.
>>>>>>>
>>>>>>> -Dave
>>>>>>>
>>>>>>> On Wed, Oct 16, 2024 at 11:16 AM Yifan Cai <yc25c...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> "WITH ALL" seems to be a natural addition to the directives. What
>>>>>>>> do you think about adding the fifth keyword ALL to retain all fields 
>>>>>>>> of the
>>>>>>>> table schema?
>>>>>>>>
>>>>>>>> For instance, CREATE TABLE new_table LIKE original_table WITH ALL,
>>>>>>>> it replicates options, indexes, triggers, constraints and any 
>>>>>>>> applicable
>>>>>>>> kinds that are introduced in the future.
>>>>>>>>
>>>>>>>> - Yifan
>>>>>>>>
>>>>>>>> On Wed, Oct 16, 2024 at 7:46 AM guo Maxwell <cclive1...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Disscussed with Bernardo on slack,and +1 with his advice on adding
>>>>>>>>> a fourth keyword.
>>>>>>>>>
>>>>>>>>> The keyword would be  CONSTRAINTS , any more suggestion ?
>>>>>>>>>
>>>>>>>>> guo Maxwell <cclive1...@gmail.com>于2024年10月16日 周三上午9:55写道:
>>>>>>>>>
>>>>>>>>>> Hi yifan,
>>>>>>>>>> Thanks for bringing this up. The SELECT permission on the
>>>>>>>>>> original table is needed. Mysql and PG all have mentioned this, and 
>>>>>>>>>> I also
>>>>>>>>>> specifically noticed this in my code.
>>>>>>>>>>
>>>>>>>>>> I probably missed this in the cep documentation. 😅
>>>>>>>>>>
>>>>>>>>>> Yifan Cai <yc25c...@gmail.com> 于2024年10月16日周三 07:46写道:
>>>>>>>>>>
>>>>>>>>>>> Thanks for creating the CEP! I think it is missing Bernardo's
>>>>>>>>>>> comment on "the need for read permissions on the source table".
>>>>>>>>>>>
>>>>>>>>>>> CreateTableStatement does not check the permissions outside of
>>>>>>>>>>> the enclosing keyspace. Having the SELECT permission on the 
>>>>>>>>>>> original table
>>>>>>>>>>> is a requirement for CREATE TABLE LIKE.
>>>>>>>>>>>
>>>>>>>>>>> - Yifan
>>>>>>>>>>>
>>>>>>>>>>> On Sun, Sep 29, 2024 at 11:01 PM guo Maxwell <
>>>>>>>>>>> cclive1...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hello, everyone ,
>>>>>>>>>>>> I have finished the doc for CEP-43 for CREATE_TABLE_LIKE
>>>>>>>>>>>> <https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-43++Apache+Cassandra+CREATE+TABLE++LIKE>
>>>>>>>>>>>>  as
>>>>>>>>>>>> said before, looking forward to your suggestions.
>>>>>>>>>>>>
>>>>>>>>>>>> Štefan Miklošovič <smikloso...@apache.org> 于2024年9月25日周三
>>>>>>>>>>>> 03:51写道:
>>>>>>>>>>>>
>>>>>>>>>>>>> I am sorry I do not follow what you mean, maybe an example
>>>>>>>>>>>>> would help.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Tue, Sep 24, 2024 at 6:18 PM guo Maxwell <
>>>>>>>>>>>>> cclive1...@gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> If there are multiple schema information changes in one ddl
>>>>>>>>>>>>>> statement, will there be schema conflicts in extreme cases?
>>>>>>>>>>>>>> For example, our statement contains both table creation and
>>>>>>>>>>>>>> index creation.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> guo Maxwell <cclive1...@gmail.com>于2024年9月24日 周二下午8:12写道:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> +1 on splitting this task  and adding the ability to copy
>>>>>>>>>>>>>>> tables through different keyspaces in the future.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Štefan Miklošovič <smikloso...@apache.org> 于2024年9月23日周一
>>>>>>>>>>>>>>> 22:05写道:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> If we have this table
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> CREATE TABLE ks.tb2 (
>>>>>>>>>>>>>>>>     id int PRIMARY KEY,
>>>>>>>>>>>>>>>>     name text
>>>>>>>>>>>>>>>> );
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I can either specify name of an index on my own like this:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> CREATE INDEX name_index ON ks.tb2 (name) ;
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> or I can let Cassandra to figure that name on its own:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> CREATE INDEX ON ks.tb2 (name) ;
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> in that case it will name that index "tb2_name_idx".
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Hence, I would expect that when we do
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> ALTER TABLE ks.to_copy LIKE ks.tb2 WITH INDICES;
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Then ks.to_copy table will have an index which is called
>>>>>>>>>>>>>>>> "to_copy_name_idx" without me doing anything.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> For types, we do not need to do anything when we deal with
>>>>>>>>>>>>>>>> the same keyspace. For simplicity, I mentioned that we might 
>>>>>>>>>>>>>>>> deal with the
>>>>>>>>>>>>>>>> same keyspace scenario only for now and iterate on that in the 
>>>>>>>>>>>>>>>> future.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Mon, Sep 23, 2024 at 8:53 AM guo Maxwell <
>>>>>>>>>>>>>>>> cclive1...@gmail.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Hello everyone,
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Cep is being written, and I encountered some problems
>>>>>>>>>>>>>>>>> during the process. I would like to discuss them with you. If 
>>>>>>>>>>>>>>>>> you read the
>>>>>>>>>>>>>>>>> description of this CASSANDRA-7662
>>>>>>>>>>>>>>>>> <https://issues.apache.org/jira/browse/CASSANDRA-7662>,
>>>>>>>>>>>>>>>>> we will find that initially the original creator of this jira 
>>>>>>>>>>>>>>>>> did not
>>>>>>>>>>>>>>>>> intend to implement structural copying of indexes, views, and 
>>>>>>>>>>>>>>>>> triggers
>>>>>>>>>>>>>>>>> only the column and its data type.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> However, after investigating some db related syntax and
>>>>>>>>>>>>>>>>> function implementation, I found that it may be necessary for 
>>>>>>>>>>>>>>>>> us to provide
>>>>>>>>>>>>>>>>> some rich syntax to support the replication of indexes, 
>>>>>>>>>>>>>>>>> views, etc.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> In order to support selective copy of the basic structure
>>>>>>>>>>>>>>>>> of the table (columns and types), table options, 
>>>>>>>>>>>>>>>>> table-related indexes,
>>>>>>>>>>>>>>>>> views, triggers, etc. We need some new syntax, it seems that 
>>>>>>>>>>>>>>>>> the syntax of
>>>>>>>>>>>>>>>>> pg is relatively comprehensive, it use the keyword 
>>>>>>>>>>>>>>>>> INCLUDING/EXCLUDING to
>>>>>>>>>>>>>>>>> flexibly control the removal and retention of indexes, table 
>>>>>>>>>>>>>>>>> information,
>>>>>>>>>>>>>>>>> etc. see pg create table like
>>>>>>>>>>>>>>>>> <https://www.postgresql.org/docs/8.1/sql-createtable.html>
>>>>>>>>>>>>>>>>> , the new created index name is different from the original 
>>>>>>>>>>>>>>>>> table's index
>>>>>>>>>>>>>>>>> name , seenewly copied index names are different from
>>>>>>>>>>>>>>>>> original
>>>>>>>>>>>>>>>>> <https://github.com/postgres/postgres/blob/master/doc/src/sgml/ref/create_table.sgml#L749>
>>>>>>>>>>>>>>>>> , the name is based on some rule.
>>>>>>>>>>>>>>>>> Mysql is relatively simple and copies columns and indexes
>>>>>>>>>>>>>>>>> by default. see mysql create table like
>>>>>>>>>>>>>>>>> <https://dev.mysql.com/doc/refman/8.4/en/create-table-like.html>
>>>>>>>>>>>>>>>>> and the newly created index name is the same with the 
>>>>>>>>>>>>>>>>> original table's
>>>>>>>>>>>>>>>>> index name.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> So for Casandra, I hope it can also support the
>>>>>>>>>>>>>>>>> information copy of index and even view/trigger. And I also 
>>>>>>>>>>>>>>>>> hope to be able
>>>>>>>>>>>>>>>>> to flexibly decide which information is copied like pg.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Besides, I think the copy can happen between different
>>>>>>>>>>>>>>>>> keyspaces. And UDT needs to be taken into account.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> But as we know the index/view/trigger name are all under
>>>>>>>>>>>>>>>>> keyspace level, so it seems that the newly created index name 
>>>>>>>>>>>>>>>>> (or view
>>>>>>>>>>>>>>>>> name/ trigger name) must be different from the original 
>>>>>>>>>>>>>>>>> tables' ,otherwise
>>>>>>>>>>>>>>>>>  names would clash .
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> So regarding the above problem, one idea I have is that
>>>>>>>>>>>>>>>>> for newly created types, indexes and views under different 
>>>>>>>>>>>>>>>>> keyspaces and
>>>>>>>>>>>>>>>>> the same keyspace, we first generate random names for them, 
>>>>>>>>>>>>>>>>> and then we can
>>>>>>>>>>>>>>>>> add the ability of modifying the names(for 
>>>>>>>>>>>>>>>>> types/indexes/views/triggers) so
>>>>>>>>>>>>>>>>> that users can manually change the names.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> guo Maxwell <cclive1...@gmail.com> 于2024年9月20日周五 08:06写道:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> No,I think still need some discuss on grammar detail
>>>>>>>>>>>>>>>>>> after I finish the first version
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Patrick McFadin <pmcfa...@gmail.com>于2024年9月20日
>>>>>>>>>>>>>>>>>> 周五上午2:24写道:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Is this CEP ready for a VOTE thread?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Sat, Aug 24, 2024 at 8:56 PM guo Maxwell <
>>>>>>>>>>>>>>>>>>> cclive1...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Thank you for your replies, I will prepare a CEP later.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Patrick McFadin <pmcfa...@gmail.com> 于2024年8月20日周二
>>>>>>>>>>>>>>>>>>>> 02:11写道:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> +1 This is a CEP
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> On Mon, Aug 19, 2024 at 10:50 AM Jon Haddad <
>>>>>>>>>>>>>>>>>>>>> j...@jonhaddad.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Given the fairly large surface area for this, i think
>>>>>>>>>>>>>>>>>>>>>> it should be a CEP.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> —
>>>>>>>>>>>>>>>>>>>>>> Jon Haddad
>>>>>>>>>>>>>>>>>>>>>> Rustyrazorblade Consulting
>>>>>>>>>>>>>>>>>>>>>> rustyrazorblade.com
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On Mon, Aug 19, 2024 at 10:44 AM Bernardo Botella <
>>>>>>>>>>>>>>>>>>>>>> conta...@bernardobotella.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> 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> 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> 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!
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> -Dave
>>>>>>>
>>>>>>> David A. Herrington II
>>>>>>> President and Chief Engineer
>>>>>>> RhinoSource, Inc.
>>>>>>>
>>>>>>> *Data Lake Architecture, Cloud Computing and Advanced Analytics.*
>>>>>>>
>>>>>>> www.rhinosource.com
>>>>>>>
>>>>>>

-- 
-Dave

David A. Herrington II
President and Chief Engineer
RhinoSource, Inc.

*Data Lake Architecture, Cloud Computing and Advanced Analytics.*

www.rhinosource.com

Reply via email to