Right, we do have "custom_query_handler_class". I was under impression it was 
used for testing, but checked the history, and it was around for a while, so it 
might have been used outside tests too.

In this case we have 2 options:
  * to convert the new method in the interface to a "default" method that would 
call the previously existing `long` overload (see attached diff); this will 
work for compile-time dependencies, but will not be binary-compatible with 
anyone who compiled against the older version.
  * make a vote on the dev mailing list querying if anyone is actually using 
this param, and remove it

Unfortunately, I can not immediately see a good way to provide the critical 
bugfix of CASSANDRA-19534 
<https://issues.apache.org/jira/browse/CASSANDRA-19534>, affecting all 
Cassandra users, without making at least some change in this API. 

I personally think that this method is very tightly coupled to the 
implementation to expose it via -D. If anyone using it could provide some 
context about why it is an important part of API, it would be give some useful 
context.


On Tue, Jul 30, 2024, at 5:08 PM, J. D. Jordan wrote:
> 
> Given we allow a pluggable query handler implementation to be specified for 
> the server with a -D during startup. So I would consider the query handler 
> one of our public interfaces.
> 
>> On Jul 30, 2024, at 9:35 AM, Alex Petrov <al...@coffeenco.de> wrote:
>> 
>> Hi Tommy,
>> 
>> Thank you for spotting this and bringing this to community's attention.
>> 
>> I believe our primary interfaces are native and internode protocol, and CLI 
>> tools. Most interfaces are used to to abstract implementations internally. 
>> Few interfaces, such as DataType, Partitioner, and Triggers can be depended 
>> upon by external tools using Cassandra as a library. There is no official 
>> way to plug in a QueryHandler, so I did not consider it to be a part of our 
>> public API. 
>> 
>> From [1]: 
>> 
>> > These considerations are especially important for public APIs, including 
>> > CQL, virtual tables, JMX, yaml, system properties, etc. Any planned 
>> > additions must be carefully considered in the context of any existing 
>> > APIs. Where possible the approach of any existing API should be followed. 
>> 
>> Maybe we should have an exhaustive list of public APIs, and explicitly 
>> mention that native and internode protocols are included, alongside with 
>> nodetool command API and output, but also which classes/interfaces 
>> specifically should be evolved with care.
>> 
>> Thank you,
>> --Alex
>> 
>> [1] https://cassandra.apache.org/_/development/index.html
>> 
>> On Tue, Jul 30, 2024, at 10:56 AM, Tommy Stendahl via dev wrote:
>>> Hi,
>>> 
>>> There is a change in the QueryHandler interface introduced by 
>>> https://issues.apache.org/jira/browse/CASSANDRA-19534
>>> 
>>> Do we allow changes such changes between 4.1.5 and 4.1.6?
>>> CASSANDRA-19534 looks like a very good change so maybe there is an 
>>> exception in this case?
>>> 
>>> /Tommy
>>> 
>>> -----Original Message-----
>>> *From*: Brandon Williams <brandonwilli...@apache.org 
>>> <mailto:brandon%20williams%20%3cbrandonwilli...@apache.org%3e>>
>>> *Reply-To*: dev@cassandra.apache.org
>>> *To*: dev <dev@cassandra.apache.org 
>>> <mailto:dev%20%3c...@cassandra.apache.org%3e>>
>>> *Subject*: [VOTE] Release Apache Cassandra 4.1.6
>>> *Date*: Mon, 29 Jul 2024 09:36:04 -0500
>>> 
>>> Proposing the test build of Cassandra 4.1.6 for release.
>>> 
>>> sha1: b662744af59f3a3dfbfeb7314e29fecb93abfd80
>>> Git: 
>>> https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fcassandra%2Ftree%2F4.1.6-tentative&data=05%7C02%7Ctommy.stendahl%40ericsson.com%7C30a819344e48491e561908dcafdbddf4%7C92e84cebfbfd47abbe52080c6b87953f%7C0%7C0%7C638578606055937277%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=BWaJmvRTXvrMh%2FFBRzt%2FOost%2Bn6xAkgePP2ObtmTnbY%3D&reserved=0
>>> 
>>> Maven Artifacts:
>>> https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Frepository.apache.org%2Fcontent%2Frepositories%2Forgapachecassandra-1339%2Forg%2Fapache%2Fcassandra%2Fcassandra-all%2F4.1.6%2F&data=05%7C02%7Ctommy.stendahl%40ericsson.com%7C30a819344e48491e561908dcafdbddf4%7C92e84cebfbfd47abbe52080c6b87953f%7C0%7C0%7C638578606055947610%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=2baa1fUTwQqDpPtFAdv%2FFU6sqax3LSkKEm%2FUdbcHsbE%3D&reserved=0
>>> 
>>> 
>>> The Source and Build Artifacts, and the Debian and RPM packages and
>>> repositories, are available here:
>>> https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdist.apache.org%2Frepos%2Fdist%2Fdev%2Fcassandra%2F4.1.6%2F&data=05%7C02%7Ctommy.stendahl%40ericsson.com%7C30a819344e48491e561908dcafdbddf4%7C92e84cebfbfd47abbe52080c6b87953f%7C0%7C0%7C638578606055951106%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=9FUMT0F7c%2B0y7NbvgN9fQrSNgNO2YGfKMwk9ajy2MKA%3D&reserved=0
>>> 
>>> 
>>> The vote will be open for 72 hours (longer if needed). Everyone who
>>> has tested the build is invited to vote. Votes by PMC members are
>>> considered binding. A vote passes if there are at least three binding
>>> +1s and no -1's.
>>> 
>>> [1]: CHANGES.txt:
>>> https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fcassandra%2Fblob%2F4.1.6-tentative%2FCHANGES.txt&data=05%7C02%7Ctommy.stendahl%40ericsson.com%7C30a819344e48491e561908dcafdbddf4%7C92e84cebfbfd47abbe52080c6b87953f%7C0%7C0%7C638578606055954173%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=3u1LazTB3GixsR7MEwxT%2ByqMrnwHjBL72r8Vy0C1HhE%3D&reserved=0
>>> 
>>> [2]: NEWS.txt: 
>>> https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Fcassandra%2Fblob%2F4.1.6-tentative%2FNEWS.txt&data=05%7C02%7Ctommy.stendahl%40ericsson.com%7C30a819344e48491e561908dcafdbddf4%7C92e84cebfbfd47abbe52080c6b87953f%7C0%7C0%7C638578606055957376%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=4TROx5HB5vJuLTYNoAqMx2A3%2FUUtZ3Edr6aa4JVvHEA%3D&reserved=0
>>> 
>>> 
>>> 
>>> Kind Regards,
>>> Brandon
>> 

Attachment: patch.diff
Description: Binary data

Reply via email to