Thanks for asking for clarification, Sophie; that gives me guidance on improving the KIP! Here's the updated version, including the JIRA link: https://cwiki.apache.org/confluence/display/KAFKA/KIP-941%3A+Range+queries+to+accept+null+lower+and+upper+bounds
On Thu, Jun 22, 2023 at 12:57 PM Sophie Blee-Goldman <ableegold...@gmail.com> wrote: > Hey Lucia, thanks for the KIP! Just some minor notes: > > I'm in favor of the proposal overall, at least I think so -- for someone > not intimately familiar with the new IQ API and *RangeQuery* class, the KIP > was a bit difficult to follow along and I had to read in between the lines > to figure out what the old behavior was and what the new and improved logic > would do. > > It would be good to state clearly in the beginning what happens when null > is passed in right now, and what will happen after this KIP is implemented. > For example in the "Public Interfaces" section, I couldn't tell if the > middle sentence was describing what was changing, or what it was changing > *to.* > > One last little thing is can you link to the jira ticket at the top? And > please create one if it doesn't already exist -- it helps people figure out > when a KIP has been implemented and in which versions, as well as navigate > from the KIP to the actual code that was merged. Things can change during > implementation and the KIP document is how most people read up on new > features, but almost all of us are probably guilty of forgetting to update > the KIP document. So it's important to be able to find the code when in > doubt. > > Otherwise nice KIP! > > On Thu, Jun 22, 2023 at 8:19 AM Lucia Cerchie > <lcerc...@confluent.io.invalid> > wrote: > > > Thanks Kirk and John for the valuable feedback! > > > > John, I'll update the KIP to reflect that nuance you mention -- yes it is > > just about making the withRange method more permissive. Thanks for the > > testing file as well, I'll be sure to write my test cases there. > > > > On Wed, Jun 21, 2023 at 10:50 AM Kirk True <k...@kirktrue.pro> wrote: > > > > > Hi John/Lucia, > > > > > > Thanks for the feedback! > > > > > > Of course I only noticed the private-ness of the RangeQuery constructor > > > moments after sending my email ¯\_(ツ)_/¯ > > > > > > Just to be clear, I’m happy with the proposed change as it conforms to > > > Postel’s Law ;) Apologies that it was worded tersely. > > > > > > Thanks, > > > Kirk > > > > > > > On Jun 21, 2023, at 10:20 AM, John Roesler <vvcep...@apache.org> > > wrote: > > > > > > > > Hi all, > > > > > > > > Thanks for the KIP, Lucia! This is a nice change. > > > > > > > > To Kirk's question (1), the example is a bit misleading. The typical > > > case that would ease user pain is specifically using "null" to indicate > > an > > > open-ended range, especially since null is not a valid key. > > > > > > > > I could additionally see an empty string as being nice, but the > actual > > > API is generic, not String, so there's no meaningful concept of > > > empty/blank/whitespace that we could check for, just null or not. > > > > > > > > Regarding (2), there's no public factory that takes Optional > > parameters. > > > I think you're looking at the private constructor. An alternative Lucia > > > could consider is to instead propose adding a new factory like > > > `withRange(Optional<K> lower, Optional<K> upper)`. > > > > > > > > FWIW, I'd be in favor of this KIP as proposed. > > > > > > > > A couple of smaller notes: > > > > > > > > 3. In the compatibility notes, I wasn't sure what "web request" was > > > referring to. I think you just mean that all existing valid API calls > > will > > > continue to work the same, and we're only making the withRange method > > more > > > permissive with its arguments. > > > > > > > > 4. For the Test Plan, I wrote some tests that validate these queries > > > against every kind and configuration of store possible. Please add your > > new > > > test cases to that one to make absolutely sure it'll work for every > > store. > > > Obviously, you may also want to add some specific unit tests in > addition. > > > > > > > > See > > > > > > https://github.com/apache/kafka/blob/trunk/streams/src/test/java/org/apache/kafka/streams/integration/IQv2StoreIntegrationTest.java > > > > > > > > Thanks again! > > > > -John > > > > > > > > On 6/21/23 12:00, Kirk True wrote: > > > >> Hi Lucia, > > > >> One question: > > > >> 1. Since the proposed implementation change for withRange() method > > uses > > > Optional.ofNullable() (which only catches nulls and not > blank/whitespace > > > strings), wouldn’t users still need to have code like that in the > > example? > > > >> 2. Why don't users create RangeQuery objects that use Optional > > > directly? What’s the benefit of introducing what appears to be a very > > thin > > > utility facade? > > > >> Thanks, > > > >> Kirk > > > >>> On Jun 21, 2023, at 9:51 AM, Kirk True <k...@kirktrue.pro> wrote: > > > >>> > > > >>> Hi Lucia, > > > >>> > > > >>> Thanks for the KIP! > > > >>> > > > >>> The KIP wasn’t in the email and I didn’t see it on the main KIP > > > directory. Here it is: > > > >>> > > > >>> > > > > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-941%3A+Range+queries+to+accept+null+lower+and+upper+bounds > > > >>> > > > >>> Can the KIP be added to the main KIP page ( > > > > > > https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals > > )? > > > That will help with discoverability and encourage discussion. > > > >>> > > > >>> Thanks, > > > >>> Kirk > > > >>> > > > >>>> On Jun 15, 2023, at 2:13 PM, Lucia Cerchie > > > <lcerc...@confluent.io.INVALID> wrote: > > > >>>> > > > >>>> Hi everyone, > > > >>>> > > > >>>> I'd like to discuss KIP-941, which will change the behavior of > range > > > >>>> queries to make it easier for users to execute full range scans > when > > > using > > > >>>> interactive queries with upper and lower bounds from query > > parameters > > > in > > > >>>> web client requests. > > > >>>> > > > >>>> I much appreciate your input! > > > >>>> > > > >>>> Lucia Cerchie > > > >>>> -- > > > >>>> > > > >>>> [image: Confluent] <https://www.confluent.io> > > > >>>> Lucia Cerchie > > > >>>> Developer Advocate > > > >>>> Follow us: [image: Blog] > > > >>>> < > > > > > > https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog > > > >[image: > > > >>>> Twitter] <https://twitter.com/ConfluentInc>[image: Slack] > > > >>>> <https://slackpass.io/confluentcommunity>[image: YouTube] > > > >>>> <https://youtube.com/confluent> > > > >>>> > > > >>>> [image: Try Confluent Cloud for Free] > > > >>>> < > > > > > > https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic > > > > > > > >>> > > > > > > > > > > -- > > > > [image: Confluent] <https://www.confluent.io> > > Lucia Cerchie > > Developer Advocate > > Follow us: [image: Blog] > > < > > > https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog > > >[image: > > Twitter] <https://twitter.com/ConfluentInc>[image: Slack] > > <https://slackpass.io/confluentcommunity>[image: YouTube] > > <https://youtube.com/confluent> > > > > [image: Try Confluent Cloud for Free] > > < > > > https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic > > > > > > -- [image: Confluent] <https://www.confluent.io> Lucia Cerchie Developer Advocate Follow us: [image: Blog] <https://www.confluent.io/blog?utm_source=footer&utm_medium=email&utm_campaign=ch.email-signature_type.community_content.blog>[image: Twitter] <https://twitter.com/ConfluentInc>[image: Slack] <https://slackpass.io/confluentcommunity>[image: YouTube] <https://youtube.com/confluent> [image: Try Confluent Cloud for Free] <https://www.confluent.io/get-started?utm_campaign=tm.fm-apac_cd.inbound&utm_source=gmail&utm_medium=organic>