>we could explore enriching the syntax with DESCRIBE

Will there be an option to do a SELECT query to read all the annotations of
a table? Something like *"SELECT * FROM system_schema.annotations where
keyspace_name=<> and table_name=<>"*
It would be helpful to have a structured CQL query on top of printing the
annotations through DESC so that the information can be consumed easily.

Jaydeep

On Fri, Aug 8, 2025 at 11:03 AM Jyothsna Konisa <jyothsna1...@gmail.com>
wrote:

> Thanks, Joel, for the positive response.
>
> 1. User-defined vs. pre-defined annotation types
>
> We'd like to have one predefined annotation, Description, but also give
> users the flexibility to create new ones. If a user feels that a custom
> annotation like @Desc suits their use case, they should be allowed to use
> it, as these elements are purely descriptive and have no actions associated
> with them.
>
> 2. Syntactically, is it worth considering other alternatives?
>
> You're concerned that having several annotations on multiple columns could
> make schemas difficult to read. For now, we can have annotations printed as
> part of DESCRIBE statements. If there's a strong need to suppress
> annotations for readability, we could explore enriching the syntax with
> DESCRIBE [FULL] SCHEMA [WITH ANNOTATIONS], similar to the existing DESCRIBE
> [FULL] SCHEMA.
>
> Thanks,
> Jyothsna
>
> On Fri, Aug 8, 2025 at 10:56 AM Jyothsna Konisa <jyothsna1...@gmail.com>
> wrote:
>
>> Thanks, Stefan, for your feedback!
>>
>> To answer your questions,
>>
>> 1. I agree; annotations can optionally take arguments, and if an
>> annotation doesn't have an argument, we can skip the arguments in the
>> "DESCRIBE" statement's output.
>>
>> 2. Good point. We originally considered using "ANNOTATED WITH" but found
>> it too verbose. As an alternative, we proposed using "@" preceding the
>> annotation to signal it to the parser. We are open to using an explicit
>> phrase like "ANNOTATED WITH" if you think it would make the code more
>> readable.
>>
>> A full example of annotations along with constraints and masking could be:
>>
>>
>> CREATE TABLE test_ks.test_table (
>>     id int PRIMARY KEY,
>>     col2 int CHECK col2 > 0 ANNOTATED WITH @PII AND @DESCRIPTION('this is
>> column col2') MASKED WITH default()
>> );
>>
>> OR
>>
>> CREATE TABLE test_ks.test_table (
>>     id int PRIMARY KEY,
>>     col2 int CHECK col2 > 0 @PII AND @DESCRIPTION('this is column col2')
>> MASKED WITH default()
>> );
>>
>>
>>
>> 3. We do not have a prototype yet, but I think we will have to introduce
>> new parsing branch for annotations at the table level
>>
>> I hope I answered all your questions!
>>
>> - Jyothsna
>>
>> On Thu, Aug 7, 2025 at 11:36 AM Joel Shepherd <sheph...@amazon.com>
>> wrote:
>>
>>> I like the aim of the CEP. Completely onboard with the idea that GenAI
>>> tooling works better when you can provide it useful context about the data
>>> it is working with. An organization I worked with in the past had a lot of
>>> good results with marking up API models (not DB schemas, but similar idea)
>>> with authorization-related annotations and using those to drive policy
>>> linters and end-user interfaces. So, sold on the value of the capability.
>>>
>>> Two things I'm less sure of:
>>>
>>> 1) User-defined vs pre-defined annotation types: I appreciate the
>>> flexibility that user-defined annotations appears to give, but it adds
>>> extra room for error. E.g. if annotation names are case-sensitive, do I
>>> (the user) have to actively prevent creation of @description? Or, police
>>> the accidental creation of alternative names like @Desc? If the community
>>> settled on a small, fixed set of supported annotations, so Cassandra itself
>>> was authoritative for valid annotation names, would make the feature a lot
>>> less valuable, or prevent offering user-defined annotations in the future?
>>>
>>> 2) Syntactically, is it worth considering other alternatives? I was
>>> trying to imagine a CREATE TABLE statement marked up with two or three
>>> types of column-level annotations, and my sense is that it could get hard
>>> to read quickly. Is it worth considering Javadoc-style annotations in
>>> schema comments instead? I think in today's world that means that they
>>> would not be accessible via CQL/Cassandra (CQL comments are not persisted
>>> as part of the schema, correct?) but they could be accessible to other
>>> schema-processing tools and IMO be a more readable syntax. It'd be good to
>>> work through a couple use-cases for actually using the data provided by the
>>> annotations and get a sense of whether making them first-class entities in
>>> CQL is necessary for getting most of the value from them.
>>>
>>> Thanks -- Joel.
>>> On 8/6/2025 6:59 PM, Jyothsna Konisa wrote:
>>>
>>> Sorry for the incorrect editable link, here is the updated link to the CEP
>>> 52: Schema Annotations for ApacheCassandra
>>> <https://cwiki.apache.org/confluence/display/CASSANDRA/CEP+52%3A+Schema+Annotations+for+ApacheCassandra>
>>>
>>> On Wed, Aug 6, 2025 at 4:26 PM Jyothsna Konisa <jyothsna1...@gmail.com>
>>> wrote:
>>>
>>>> Hello Everyone!
>>>>
>>>> We would like to propose CEP 52: Schema Annotations for ApacheCassandra
>>>> <https://cwiki.apache.org/confluence/pages/resumedraft.action?draftId=373887528&draftShareId=339b7f4e-9bc2-45bd-9a80-b0d4215e3f45&;>
>>>>
>>>> This CEP outlines a plan to introduce *Schema Annotations* as a way to
>>>> add better context to schema elements. We're also proposing a set of new
>>>> DDL statements to manage these annotations.
>>>>
>>>> We believe these annotations will be highly beneficial for several key
>>>> areas:
>>>>
>>>>    -
>>>>
>>>>    GenAI Applications: Providing more context to LLMs could
>>>>    significantly improve the accuracy and relevance of generated content.
>>>>    -
>>>>
>>>>    Data Governance: Annotations can help in enforcing policies using
>>>>    annotations
>>>>    -
>>>>
>>>>    Compliance: They can be used to track and manage compliance
>>>>    requirements directly within the schema.
>>>>
>>>> We're eager to hear your thoughts and feedback on this proposal. Please
>>>> keep the discussion within this mailing thread.
>>>>
>>>> Thanks for your time and feedback in advance.
>>>>
>>>> Best regards,
>>>>
>>>> Jyothsna & Yifan
>>>>
>>>>
>>>>
>>>>

Reply via email to