Re: PrepareStatement BUG
Yes, I discard using "SELECT *" statement and that fix the problem. 2015-10-02 1:50 GMT+08:00 Alexandre Dutra : > Hello Joseph, > > CASSANDRA-7910 is fixed for Cassandra 2.1.3, but it still needs a fix > driver-side: JAVA-420 <https://datastax-oss.atlassian.net/browse/JAVA-420>. > Until this is not solved, the workaround (and the best practice) is to > avoid using "SELECT *" statements and explicitly name the columns you need. > > Hope that helps, > > Alexandre > > On Fri, Aug 28, 2015 at 4:58 AM joseph gao wrote: > >> if already fixed, my use case is wrong. But I think it's very normal case. >> >> 2015-08-28 10:57 GMT+08:00 joseph gao : >> >>> I don't understand, does the issue mean 'don't use wildcard' or 'already >>> fixed'? >>> >>> 2015-08-26 15:16 GMT+08:00 Peer, Oded : >>> >>>> See https://issues.apache.org/jira/browse/CASSANDRA-7910 >>>> >>>> >>>> >>>> >>>> >>>> *From:* joseph gao [mailto:gaojf.bok...@gmail.com] >>>> *Sent:* Wednesday, August 26, 2015 6:15 AM >>>> *To:* user@cassandra.apache.org >>>> *Subject:* Re: PrepareStatement BUG >>>> >>>> >>>> >>>> Hi, anybody knows how to resolve this problem? >>>> >>>> >>>> >>>> 2015-08-23 1:35 GMT+08:00 joseph gao : >>>> >>>> >>>> I'm using cassandra 2.1.7 and datastax java drive 2.1.6 >>>> >>>> Here is the problem: >>>> >>>> >>>> >>>> I use PrepareStatement for query like : SELECT * FROM >>>> somespace.sometable where id = ? >>>> >>>> And I Cached the PrepareStatement in my jvm; >>>> >>>> When the table metadata has changed like a column was added; >>>> >>>> And I use the cached PrepareStament , the data and the metadata(column >>>> definations) don't match. >>>> >>>> So I re-prepare the sql using session.prepare(sql) again, but i see the >>>> code in the async-prepare callback part: >>>> >>>> >>>> >>>> stmt = cluster.manager.addPrepare(stmt); in the SessionManager.java >>>> >>>> >>>> >>>> this will return the previous PrepareStatement. >>>> >>>> So it neither re-prepare automatically nor allow user to re-prepare! >>>> >>>> Is this a bug or I use it like a fool? >>>> >>>> -- >>>> >>>> -- >>>> >>>> Joseph Gao >>>> >>>> PhoneNum:15210513582 >>>> >>>> QQ: 409343351 >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> >>>> -- >>>> >>>> Joseph Gao >>>> >>>> PhoneNum:15210513582 >>>> >>>> QQ: 409343351 >>>> >>> >>> >>> >>> -- >>> -- >>> Joseph Gao >>> PhoneNum:15210513582 >>> QQ: 409343351 >>> >> >> >> >> -- >> -- >> Joseph Gao >> PhoneNum:15210513582 >> QQ: 409343351 >> > -- > Alexandre Dutra > Driver & Tools Engineer @ DataStax > -- -- Joseph Gao PhoneNum:15210513582 QQ: 409343351
Re: PrepareStatement BUG
Hello Joseph, CASSANDRA-7910 is fixed for Cassandra 2.1.3, but it still needs a fix driver-side: JAVA-420 <https://datastax-oss.atlassian.net/browse/JAVA-420>. Until this is not solved, the workaround (and the best practice) is to avoid using "SELECT *" statements and explicitly name the columns you need. Hope that helps, Alexandre On Fri, Aug 28, 2015 at 4:58 AM joseph gao wrote: > if already fixed, my use case is wrong. But I think it's very normal case. > > 2015-08-28 10:57 GMT+08:00 joseph gao : > >> I don't understand, does the issue mean 'don't use wildcard' or 'already >> fixed'? >> >> 2015-08-26 15:16 GMT+08:00 Peer, Oded : >> >>> See https://issues.apache.org/jira/browse/CASSANDRA-7910 >>> >>> >>> >>> >>> >>> *From:* joseph gao [mailto:gaojf.bok...@gmail.com] >>> *Sent:* Wednesday, August 26, 2015 6:15 AM >>> *To:* user@cassandra.apache.org >>> *Subject:* Re: PrepareStatement BUG >>> >>> >>> >>> Hi, anybody knows how to resolve this problem? >>> >>> >>> >>> 2015-08-23 1:35 GMT+08:00 joseph gao : >>> >>> >>> I'm using cassandra 2.1.7 and datastax java drive 2.1.6 >>> >>> Here is the problem: >>> >>> >>> >>> I use PrepareStatement for query like : SELECT * FROM >>> somespace.sometable where id = ? >>> >>> And I Cached the PrepareStatement in my jvm; >>> >>> When the table metadata has changed like a column was added; >>> >>> And I use the cached PrepareStament , the data and the metadata(column >>> definations) don't match. >>> >>> So I re-prepare the sql using session.prepare(sql) again, but i see the >>> code in the async-prepare callback part: >>> >>> >>> >>> stmt = cluster.manager.addPrepare(stmt); in the SessionManager.java >>> >>> >>> >>> this will return the previous PrepareStatement. >>> >>> So it neither re-prepare automatically nor allow user to re-prepare! >>> >>> Is this a bug or I use it like a fool? >>> >>> -- >>> >>> -- >>> >>> Joseph Gao >>> >>> PhoneNum:15210513582 >>> >>> QQ: 409343351 >>> >>> >>> >>> >>> >>> -- >>> >>> -- >>> >>> Joseph Gao >>> >>> PhoneNum:15210513582 >>> >>> QQ: 409343351 >>> >> >> >> >> -- >> -- >> Joseph Gao >> PhoneNum:15210513582 >> QQ: 409343351 >> > > > > -- > -- > Joseph Gao > PhoneNum:15210513582 > QQ: 409343351 > -- Alexandre Dutra Driver & Tools Engineer @ DataStax
Re: PrepareStatement BUG
if already fixed, my use case is wrong. But I think it's very normal case. 2015-08-28 10:57 GMT+08:00 joseph gao : > I don't understand, does the issue mean 'don't use wildcard' or 'already > fixed'? > > 2015-08-26 15:16 GMT+08:00 Peer, Oded : > >> See https://issues.apache.org/jira/browse/CASSANDRA-7910 >> >> >> >> >> >> *From:* joseph gao [mailto:gaojf.bok...@gmail.com] >> *Sent:* Wednesday, August 26, 2015 6:15 AM >> *To:* user@cassandra.apache.org >> *Subject:* Re: PrepareStatement BUG >> >> >> >> Hi, anybody knows how to resolve this problem? >> >> >> >> 2015-08-23 1:35 GMT+08:00 joseph gao : >> >> >> I'm using cassandra 2.1.7 and datastax java drive 2.1.6 >> >> Here is the problem: >> >> >> >> I use PrepareStatement for query like : SELECT * FROM somespace.sometable >> where id = ? >> >> And I Cached the PrepareStatement in my jvm; >> >> When the table metadata has changed like a column was added; >> >> And I use the cached PrepareStament , the data and the metadata(column >> definations) don't match. >> >> So I re-prepare the sql using session.prepare(sql) again, but i see the >> code in the async-prepare callback part: >> >> >> >> stmt = cluster.manager.addPrepare(stmt); in the SessionManager.java >> >> >> >> this will return the previous PrepareStatement. >> >> So it neither re-prepare automatically nor allow user to re-prepare! >> >> Is this a bug or I use it like a fool? >> >> -- >> >> -- >> >> Joseph Gao >> >> PhoneNum:15210513582 >> >> QQ: 409343351 >> >> >> >> >> >> -- >> >> -- >> >> Joseph Gao >> >> PhoneNum:15210513582 >> >> QQ: 409343351 >> > > > > -- > -- > Joseph Gao > PhoneNum:15210513582 > QQ: 409343351 > -- -- Joseph Gao PhoneNum:15210513582 QQ: 409343351
Re: PrepareStatement BUG
I don't understand, does the issue mean 'don't use wildcard' or 'already fixed'? 2015-08-26 15:16 GMT+08:00 Peer, Oded : > See https://issues.apache.org/jira/browse/CASSANDRA-7910 > > > > > > *From:* joseph gao [mailto:gaojf.bok...@gmail.com] > *Sent:* Wednesday, August 26, 2015 6:15 AM > *To:* user@cassandra.apache.org > *Subject:* Re: PrepareStatement BUG > > > > Hi, anybody knows how to resolve this problem? > > > > 2015-08-23 1:35 GMT+08:00 joseph gao : > > > I'm using cassandra 2.1.7 and datastax java drive 2.1.6 > > Here is the problem: > > > > I use PrepareStatement for query like : SELECT * FROM somespace.sometable > where id = ? > > And I Cached the PrepareStatement in my jvm; > > When the table metadata has changed like a column was added; > > And I use the cached PrepareStament , the data and the metadata(column > definations) don't match. > > So I re-prepare the sql using session.prepare(sql) again, but i see the > code in the async-prepare callback part: > > > > stmt = cluster.manager.addPrepare(stmt); in the SessionManager.java > > > > this will return the previous PrepareStatement. > > So it neither re-prepare automatically nor allow user to re-prepare! > > Is this a bug or I use it like a fool? > > -- > > -- > > Joseph Gao > > PhoneNum:15210513582 > > QQ: 409343351 > > > > > > -- > > -- > > Joseph Gao > > PhoneNum:15210513582 > > QQ: 409343351 > -- -- Joseph Gao PhoneNum:15210513582 QQ: 409343351
RE: PrepareStatement BUG
See https://issues.apache.org/jira/browse/CASSANDRA-7910 From: joseph gao [mailto:gaojf.bok...@gmail.com] Sent: Wednesday, August 26, 2015 6:15 AM To: user@cassandra.apache.org Subject: Re: PrepareStatement BUG Hi, anybody knows how to resolve this problem? 2015-08-23 1:35 GMT+08:00 joseph gao mailto:gaojf.bok...@gmail.com>>: I'm using cassandra 2.1.7 and datastax java drive 2.1.6 Here is the problem: I use PrepareStatement for query like : SELECT * FROM somespace.sometable where id = ? And I Cached the PrepareStatement in my jvm; When the table metadata has changed like a column was added; And I use the cached PrepareStament , the data and the metadata(column definations) don't match. So I re-prepare the sql using session.prepare(sql) again, but i see the code in the async-prepare callback part: stmt = cluster.manager.addPrepare(stmt); in the SessionManager.java this will return the previous PrepareStatement. So it neither re-prepare automatically nor allow user to re-prepare! Is this a bug or I use it like a fool? -- -- Joseph Gao PhoneNum:15210513582 QQ: 409343351 -- -- Joseph Gao PhoneNum:15210513582 QQ: 409343351
Re: PrepareStatement BUG
Hi, anybody knows how to resolve this problem? 2015-08-23 1:35 GMT+08:00 joseph gao : > > I'm using cassandra 2.1.7 and datastax java drive 2.1.6 > Here is the problem: > > I use PrepareStatement for query like : SELECT * FROM somespace.sometable > where id = ? > And I Cached the PrepareStatement in my jvm; > When the table metadata has changed like a column was added; > And I use the cached PrepareStament , the data and the metadata(column > definations) don't match. > So I re-prepare the sql using session.prepare(sql) again, but i see the > code in the async-prepare callback part: > > stmt = cluster.manager.addPrepare(stmt); in the SessionManager.java > > this will return the previous PrepareStatement. > So it neither re-prepare automatically nor allow user to re-prepare! > Is this a bug or I use it like a fool? > -- > -- > Joseph Gao > PhoneNum:15210513582 > QQ: 409343351 > -- -- Joseph Gao PhoneNum:15210513582 QQ: 409343351
PrepareStatement BUG
I'm using cassandra 2.1.7 and datastax java drive 2.1.6 Here is the problem: I use PrepareStatement for query like : SELECT * FROM somespace.sometable where id = ? And I Cached the PrepareStatement in my jvm; When the table metadata has changed like a column was added; And I use the cached PrepareStament , the data and the metadata(column definations) don't match. So I re-prepare the sql using session.prepare(sql) again, but i see the code in the async-prepare callback part: stmt = cluster.manager.addPrepare(stmt); in the SessionManager.java this will return the previous PrepareStatement. So it neither re-prepare automatically nor allow user to re-prepare! Is this a bug or I use it like a fool? -- -- Joseph Gao PhoneNum:15210513582 QQ: 409343351