All of the drivers also have keyspace / table metadata. For instance: https://datastax.github.io/python-driver/api/cassandra/metadata.html <https://datastax.github.io/python-driver/api/cassandra/metadata.html>
I’d be *really* careful how you use this. A lot of teams want to just deploy their code to a couple hundred servers and let them race to apply the ALTER. That will not be a fun time. I advise against using LWT to manage this as well. If you’re looking to apply schema changes like this, I’d let a single app server manage it and avoid the headache of concurrency. Jon > On Feb 6, 2018, at 8:13 PM, Irtiza Ali <i...@an10.io> wrote: > > Hello, > > this link might also be helpful to you for querying table schema. > > Link: > https://docs.datastax.com/en/cql/3.3/cql/cql_using/useQuerySystemTable.html > <https://docs.datastax.com/en/cql/3.3/cql/cql_using/useQuerySystemTable.html> > > Best, Iriiza > > > > On Tue, Feb 6, 2018 at 9:55 PM, Oliver Ruebenacker <cur...@gmail.com > <mailto:cur...@gmail.com>> wrote: > > Hello, > > Is there a describe query in CQL? I don't see one on > http://cassandra.apache.org/doc/latest/cql/index.html > <http://cassandra.apache.org/doc/latest/cql/index.html>. > > I also can't find such a query in the DataStax Java driver API. > > Thanks! > > Best, Oliver > > On Tue, Feb 6, 2018 at 11:48 AM, Irtiza Ali <i...@an10.io > <mailto:i...@an10.io>> wrote: > Hello. > > Another thing that you can try is the use the describe table query to get the > table schema and parse it. Once done you can check whether column exists or > not. > > > With Regards > Irtiza Ali > > On 6 Feb 2018 21:35, "Oliver Ruebenacker" <cur...@gmail.com > <mailto:cur...@gmail.com>> wrote: > Thanks for the response! > > So, the best solution I can come up with is catching the > InvalidQueryException and check whether its message contains the phrase > "conflicts with an existing column". Seems to work, but super-ugly. > > I do assume that in general, if a request fails, it does not permanently > change the data in Cassandra, right? > > It would be great if alter-add could have an if-not-exists clause. Would > that be hard to implement? > > I could not find a standard CQL way of asking what columns exist. Did I > miss it? Would it be hard to implement? > > I get that we're only eventually consistent anyway. > > Thanks! > > Best, Oliver > > On Mon, Feb 5, 2018 at 5:12 PM, Rahul Singh <rahul.xavier.si...@gmail.com > <mailto:rahul.xavier.si...@gmail.com>> wrote: > Yeah, you can handle the exception — what i meant that it wouldnt cause harm > to the DB > > -- > Rahul Singh > rahul.si...@anant.us <mailto:rahul.si...@anant.us> > > Anant Corporation > > On Feb 5, 2018, 5:07 PM -0500, Oliver Ruebenacker <cur...@gmail.com > <mailto:cur...@gmail.com>>, wrote: >> Well, it does throw an InvalidQueryException if the column already exists. >> >> On Mon, Feb 5, 2018 at 4:44 PM, Rahul Singh <rahul.xavier.si...@gmail.com >> <mailto:rahul.xavier.si...@gmail.com>> wrote: >> Since CQL != SQL, there’s isnt a syntatical way. Just run the alter table >> command and it shouldn't be an issue if its there. >> >> -- >> Rahul Singh >> rahul.si...@anant.us <mailto:rahul.si...@anant.us> >> >> Anant Corporation >> >> On Feb 5, 2018, 4:15 PM -0500, Oliver Ruebenacker <cur...@gmail.com >> <mailto:cur...@gmail.com>>, wrote: >>> >>> Hello, >>> >>> What's the easiest way to add a column to a table but only if it does not >>> exist? Thanks! >>> >>> Best, Oliver >>> >>> -- >>> Oliver Ruebenacker >>> Senior Software Engineer, Diabetes Portal >>> <http://www.type2diabetesgenetics.org/>, Broad Institute >>> <http://www.broadinstitute.org/> >>> >> >> >> >> -- >> Oliver Ruebenacker >> Senior Software Engineer, Diabetes Portal >> <http://www.type2diabetesgenetics.org/>, Broad Institute >> <http://www.broadinstitute.org/> >> > > > > -- > Oliver Ruebenacker > Senior Software Engineer, Diabetes Portal > <http://www.type2diabetesgenetics.org/>, Broad Institute > <http://www.broadinstitute.org/> > > > > > -- > Oliver Ruebenacker > Senior Software Engineer, Diabetes Portal > <http://www.type2diabetesgenetics.org/>, Broad Institute > <http://www.broadinstitute.org/> > >