Cassandra. describe keyspace. Syntax error - cassandra

I followed this Tutorial and managed to create 'ContactsList' keyspace at the server with cassandra-cli. However, when I am trying to describe the following keyspace, I am getting strange error:
[default#unknown] describe keyspace ContactList;
Syntax error at position 9: no viable alternative at input 'keyspace'
I am using Apache Cassandra 1.1 (Documentation of "describe keyspace" is here)
Thank you for the help.

Those docs are for CQL, which you can use on the command line with cqlsh.
If you want to use cassandra-cli, the syntax is describe <keyspacename>; i.e. without the 'keyspace'.

Related

Is Cassandra Update IF statement where the condition is an inequality expression supported?

Is UPDATE IF [condition] where [condition] is an inequality, supported by Cassandra CQL?
I had a look over the language reference and it seems that CQL should not be able to support the inequality through its grammar. I used the language reference from here: https://cassandra.apache.org/doc/cql3/CQL.html#updateStmt
What is confusing is that using the C# driver or CQLSH the query is executed successfully, but when doing the same thing from Datasax DevCenter I get an error.
I'm using a query similar to the one below:
UPDATE product
SET edit_date = [new_value]
WHERE customer_id = '4' AND code = 'AMZ-ISMDB'
IF edit_date < [new_value]
The results are as follows:
Datasax DevCenter throws an error when trying to execute the script snippet. The error I get is complaining about the inequality in the UPDATE IF part of the script.
There is one syntax error in the current script (see details below).
Please fix it and try again.
Line 29: no viable alternative at input '<'
If I use CLINQ with the Datasax C# driver the query is generated as above and when executed the update is persisted if the new edit_date is after the existing edit_date which is the expected behaviour.
Using CQLSH the query runs successfully and the update is persisted
The issue is most likely that DevCenter has not been updated to support the latest syntax.
Inequality conditions were added in:
CASSANDRA-6839
Looks like they missed updating the docs when that was added. I open CASSANDRA-10752 to get that fixed.
This issue has been fixed in DevCenter version 1.6.0.

DevCenter reports syntax error but same CQL runs on cqlsh

I was trying to create a User Defined Function using Devcenter.
http://docs.datastax.com/en/cql/3.3/cql/cql_using/useCreateUDF.html
The following example was taken from the above link.
CREATE OR REPLACE FUNCTION fLog (input double) CALLED ON NULL INPUT RETURNS double LANGUAGE java AS 'return Double.valueOf(Math.log(input.doubleValue()));';
It works in cqlsh but fails in DevCenter with the following error. Based on how fast I get the response, I think DevCenter does a local syntax check and aborts execution as it thinks the query is wrong.
I am using Cassandra 2.2.3 and DevCenter 1.4.1
DevCenter does perform it's own grammar syntax checking as well as semantic validation.
This is a DevCenter bug - the column name "input" is not being allowed by the grammar in this context because it's also a CQL keyword that's incorrectly not being allowed here.
A suggested workaround until a fix is available is to change the name of the column, e.g. "inputvalue".
As it says "No viable alternative at input 'input'"
It seems like 'input' is a reserved keyword in Devcenter and not in the CQLSH.
Try using another name for the variable.

InvalidRequestException Keyspace keyspace1 does not exist

I'm trying to connect to a Datastax Community Edition server 2.1.2 via JDBC but I keep getting the following error no matter what I try to do, even when issuing a very basic command like select * from system_traces.events;
InvalidRequestException(why:Keyspace 'keyspace1' does not exist)
Issuing that same command via cqlsh works properly, so it seems to be a JDBC issue.
InvalidRequestException(why:Keyspace 'keyspace1' does not exist)
at org.apache.cassandra.cql.jdbc.CassandraConnection.<init>(CassandraConnection.java:229):229
at org.apache.cassandra.cql.jdbc.CassandraDriver.connect(CassandraDriver.java:92):92
at java.sql.DriverManager.getConnection(DriverManager.java:664):664
at java.sql.DriverManager.getConnection(DriverManager.java:270):270
at railo.commons.db.DBUtil.getConnection(DBUtil.java:109):109
at railo.runtime.db.DatasourceConnectionPool.loadDatasourceConnection(DatasourceConnectionPool.java:89):89
at railo.runtime.db.DatasourceConnectionPool.getDatasourceConnection(DatasourceConnectionPool.java:81):81
at railo.runtime.db.DatasourceManagerImpl.getConnection(DatasourceManagerImpl.java:65):65
at railo.runtime.tag.Query.executeDatasoure(Query.java:696):696 ...
Any ideas? TIA!
InvalidRequestException(why:Keyspace 'keyspace1' does not exist)
This exception means you are trying to query for a keyspace (in this case "Keyspace1") that hasn't yet been added to Cassandra. Try creating the keyspace before querying it.
You're probably doing a select (SELECT * FROM "Keyspace1"."Standard1") that you're not seeing or passing initialisation parameters to JDBC telling it to connect to Keyspace1. Verify that your code isn't looking for the non-existent keyspace by searching through the queries you have, specifically looking for Keyspace1 (or "Keyspace1" since in this case the keyspace name is case-sensitive).
On a side-note, "Keyspace1"."Standard1" tend to be the standard ks.cf pair used for cassandra examples so it would be good to scan your code for them to make sure that they are created before they are queried.

Create table using cqlsh does not return to prompt

I am trying to create a table using cqlsh with composite primary key but it doesn't return to the cqlsh prompt. The cqlsh and cassandra versions are cqlsh 3.1.7 | Cassandra 1.2.13.2. Can we not create composite primary key using cqlsh? Have tried Dbeaver but that also fails reporting mismatched input ',' expecting EOF. Are there any other clients that allow to create?
Any suggestions would be helpful.
I tried your CREATE TABLE command on the same version of Cassandra using cql 3 and it just worked. It failed using cql 2.
If you're still using cql 2, that's likely the source of your problem.

who has a whole cassandra jdbc example which can run in eclipse?

the example may include:
create keyspace and columnfamily
insert data
select/get data and show in Console
because I found this http://cassandra.apache.org/doc/cql/CQL.html is hard to me
thank you for attention , I got it http://niranjandubey.blogspot.com/2012/11/cassandra-jdbc-to-perform-crud.html.
But I also need a FILE-read-write example of cassandra (may be using datastax?)

Resources