> > Will there be an option to do a SELECT query to read all the annotations > of a table?
It is an interesting question! Would you mind sharing an example of the output you'd expect from a query like *"SELECT * FROM system_schema.annotations where keyspace_name=<> and table_name=<>"*? I am curious how that might differ from what we get when running "DESC TABLE". - Yifan On Sat, Aug 9, 2025 at 9:43 AM Jaydeep Chovatia <chovatia.jayd...@gmail.com> wrote: > >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 >>>>> >>>>> >>>>> >>>>>