[ https://issues.apache.org/jira/browse/CASSANDRA-3553?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jackson Chung updated CASSANDRA-3553: ------------------------------------- Description: the summary is probably confusing, so here is an example: {noformat} [default@testks] describe testcf; ColumnFamily: testcf Key Validation Class: org.apache.cassandra.db.marshal.UTF8Type Default column value validator: org.apache.cassandra.db.marshal.LongType Columns sorted by: org.apache.cassandra.db.marshal.LongType {noformat} notice both column and column value are under LongType in the cli (without assume): [default@testks] set testcf['foo'][1293843587]=30; null InvalidRequestException(why:(Expected 8 or 0 byte long (2)) [testks][testcf][1293843587] failed validation) at org.apache.cassandra.thrift.Cassandra$insert_result.read(Cassandra.java:15198) at org.apache.cassandra.thrift.Cassandra$Client.recv_insert(Cassandra.java:858) at org.apache.cassandra.thrift.Cassandra$Client.insert(Cassandra.java:830) at org.apache.cassandra.cli.CliClient.executeSet(CliClient.java:902) at org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:216) at org.apache.cassandra.cli.CliMain.processStatementInteractive(CliMain.java:220) at org.apache.cassandra.cli.CliMain.main(CliMain.java:346) so the above so the value cannot be validated, so now lets try to change the column name also: [default@testks] set testcf['foo'][30]=30; null InvalidRequestException(why:(Expected 8 or 0 byte long (2)) [testks][testcf][30] failed validation) at org.apache.cassandra.thrift.Cassandra$insert_result.read(Cassandra.java:15198) at org.apache.cassandra.thrift.Cassandra$Client.recv_insert(Cassandra.java:858) at org.apache.cassandra.thrift.Cassandra$Client.insert(Cassandra.java:830) at org.apache.cassandra.cli.CliClient.executeSet(CliClient.java:902) at org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:216) at org.apache.cassandra.cli.CliMain.processStatementInteractive(CliMain.java:220) at org.apache.cassandra.cli.CliMain.main(CliMain.java:346) now lets set value with 8 characters: [default@testks] set testcf['foo'][30]=12345678; Value inserted. so that shows column is fine, only the value part is not fine. put it in assume or long() works: [default@testks] assume testcf validator as long; Assumption for column family 'testcf' added successfully. [default@testks] set testcf['foo'][30]=30; Value inserted. or (restart to a new session to un-assume): [default@testks] set testcf['foo'][30]=long(30); Value inserted. was: the summary is probably confusion, so here is an example: {noformat} [default@testks] describe testcf; ColumnFamily: testcf Key Validation Class: org.apache.cassandra.db.marshal.UTF8Type Default column value validator: org.apache.cassandra.db.marshal.LongType Columns sorted by: org.apache.cassandra.db.marshal.LongType {noformat} notice both column and column value are under LongType in the cli (without assume): [default@testks] set testcf['foo'][1293843587]=30; null InvalidRequestException(why:(Expected 8 or 0 byte long (2)) [testks][testcf][1293843587] failed validation) at org.apache.cassandra.thrift.Cassandra$insert_result.read(Cassandra.java:15198) at org.apache.cassandra.thrift.Cassandra$Client.recv_insert(Cassandra.java:858) at org.apache.cassandra.thrift.Cassandra$Client.insert(Cassandra.java:830) at org.apache.cassandra.cli.CliClient.executeSet(CliClient.java:902) at org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:216) at org.apache.cassandra.cli.CliMain.processStatementInteractive(CliMain.java:220) at org.apache.cassandra.cli.CliMain.main(CliMain.java:346) so the above so the value cannot be validated, so now lets try to change the column name also: [default@testks] set testcf['foo'][30]=30; null InvalidRequestException(why:(Expected 8 or 0 byte long (2)) [testks][testcf][30] failed validation) at org.apache.cassandra.thrift.Cassandra$insert_result.read(Cassandra.java:15198) at org.apache.cassandra.thrift.Cassandra$Client.recv_insert(Cassandra.java:858) at org.apache.cassandra.thrift.Cassandra$Client.insert(Cassandra.java:830) at org.apache.cassandra.cli.CliClient.executeSet(CliClient.java:902) at org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:216) at org.apache.cassandra.cli.CliMain.processStatementInteractive(CliMain.java:220) at org.apache.cassandra.cli.CliMain.main(CliMain.java:346) now lets set value with 8 characters: [default@testks] set testcf['foo'][30]=12345678; Value inserted. so that shows column is fine, only the value part is not fine. put it in assume or long() works: [default@testks] assume testcf validator as long; Assumption for column family 'testcf' added successfully. [default@testks] set testcf['foo'][30]=30; Value inserted. or (restart to a new session to un-assume): [default@testks] set testcf['foo'][30]=long(30); Value inserted. > value validator in the cli does not pick up > ------------------------------------------- > > Key: CASSANDRA-3553 > URL: https://issues.apache.org/jira/browse/CASSANDRA-3553 > Project: Cassandra > Issue Type: Bug > Reporter: Jackson Chung > Priority: Minor > > the summary is probably confusing, so here is an example: > {noformat} > [default@testks] describe testcf; > ColumnFamily: testcf > Key Validation Class: org.apache.cassandra.db.marshal.UTF8Type > Default column value validator: org.apache.cassandra.db.marshal.LongType > Columns sorted by: org.apache.cassandra.db.marshal.LongType > {noformat} > notice both column and column value are under LongType > in the cli (without assume): > [default@testks] set testcf['foo'][1293843587]=30; > null > InvalidRequestException(why:(Expected 8 or 0 byte long (2)) > [testks][testcf][1293843587] failed validation) > at > org.apache.cassandra.thrift.Cassandra$insert_result.read(Cassandra.java:15198) > at > org.apache.cassandra.thrift.Cassandra$Client.recv_insert(Cassandra.java:858) > at > org.apache.cassandra.thrift.Cassandra$Client.insert(Cassandra.java:830) > at org.apache.cassandra.cli.CliClient.executeSet(CliClient.java:902) > at > org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:216) > at > org.apache.cassandra.cli.CliMain.processStatementInteractive(CliMain.java:220) > at org.apache.cassandra.cli.CliMain.main(CliMain.java:346) > so the above so the value cannot be validated, so now lets try to change the > column name also: > [default@testks] set testcf['foo'][30]=30; > null > InvalidRequestException(why:(Expected 8 or 0 byte long (2)) > [testks][testcf][30] failed validation) > at > org.apache.cassandra.thrift.Cassandra$insert_result.read(Cassandra.java:15198) > at > org.apache.cassandra.thrift.Cassandra$Client.recv_insert(Cassandra.java:858) > at > org.apache.cassandra.thrift.Cassandra$Client.insert(Cassandra.java:830) > at org.apache.cassandra.cli.CliClient.executeSet(CliClient.java:902) > at > org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:216) > at > org.apache.cassandra.cli.CliMain.processStatementInteractive(CliMain.java:220) > at org.apache.cassandra.cli.CliMain.main(CliMain.java:346) > now lets set value with 8 characters: > [default@testks] set testcf['foo'][30]=12345678; > Value inserted. > so that shows column is fine, only the value part is not fine. put it in > assume or long() works: > [default@testks] assume testcf validator as long; > Assumption for column family 'testcf' added successfully. > [default@testks] set testcf['foo'][30]=30; > Value inserted. > or (restart to a new session to un-assume): > [default@testks] set testcf['foo'][30]=long(30); > Value inserted. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira