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! >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>