Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-12606

CQLSSTableWriter unable to use blob conversion functions

    XMLWordPrintableJSON

    Details

    • Severity:
      Low
    • Since Version:

      Description

      Attempting to use blob conversion functions e.g. textAsBlob, from 3.0 - 3.7 results in:

      Exception in thread "main" org.apache.cassandra.exceptions.InvalidRequestException: Unknown function textasblob called
      	at org.apache.cassandra.cql3.functions.FunctionCall$Raw.prepare(FunctionCall.java:136)
      	at org.apache.cassandra.cql3.Operation$SetValue.prepare(Operation.java:163)
      	at org.apache.cassandra.cql3.statements.UpdateStatement$ParsedInsert.prepareInternal(UpdateStatement.java:173)
      	at org.apache.cassandra.cql3.statements.ModificationStatement$Parsed.prepare(ModificationStatement.java:785)
      	at org.apache.cassandra.cql3.statements.ModificationStatement$Parsed.prepare(ModificationStatement.java:771)
      	at org.apache.cassandra.io.sstable.CQLSSTableWriter$Builder.prepareInsert(CQLSSTableWriter.java:567)
      	at org.apache.cassandra.io.sstable.CQLSSTableWriter$Builder.build(CQLSSTableWriter.java:510)
      

      The following snippet will reproduce the issue

      String table = String.format("%s.%s", "test_ks", "test_table");
      String schema = String.format("CREATE TABLE %s (test_text text, test_blob blob, PRIMARY KEY(test_text));", table);
      String insertStatement = String.format("INSERT INTO %s (test_text, test_blob) VALUES (?, textAsBlob(?))", table);
      
      File tempDir = Files.createTempDirectory("tempDir").toFile();
      
      CQLSSTableWriter sstableWriter = CQLSSTableWriter.builder()
              .forTable(schema)
              .using(insertStatement)
              .inDirectory(tempDir)
              .build();
      

      This is caused in FunctionResolver.get(...) when candidates.addAll(Schema.instance.getFunctions(name.asNativeFunction())); is called, as there is no system keyspace initialised.

        Attachments

          Activity

            People

            • Assignee:
              ifesdjeen Alex Petrov
              Reporter:
              MarkReddy Mark Reddy
              Authors:
              Alex Petrov
              Reviewers:
              Joel Knighton
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: