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

Reply via email to