You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tajo.apache.org by Jaewoong Jung <ju...@gmail.com> on 2014/11/14 08:13:50 UTC
A couple of questions about JSON query support
1. I found this issue (https://issues.apache.org/jira/browse/TAJO-826)
which has a comment that we should remove all JSON related part from
TajoCli. Does it mean that we want to make tsql support SQL queries
only and create a separate client dedicated for JSON queries?
2. While trying to fix a minor bug in JSON parsing, I found that any
of changes I made to Expr.java had no effect on tsql behavior. Does it
read a pre-compiled jar file from somewhere else? What should I do to
test my Expr changes?
Thanks,
Jaewoong
Re: A couple of questions about JSON query support
Posted by Jihoon Son <gh...@gmail.com>.
You are right. It was my misunderstanding.
Sorry for confusing you.
I also checked that conversion from Json to Expr after applying your change
works well.
Good to hear that your problem is resolved.
Thanks,
Jihoon
2014-11-14 17:44 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
> Now, it's completely solved. :)
>
> On Fri, Nov 14, 2014 at 12:41 AM, Jaewoong Jung <ju...@gmail.com> wrote:
> > Problem solved, partially.
> >
> > I rebooted my laptop to see if it makes any difference, and it
> > actually did. Now, stop-tajo.sh doesn't show the error messages, and
> > my changes are taking effect.
> >
> > It seems like additional changes I made after reboot are being ignored
> > again, though. (And, that's why I said it's partially solved.)
> >
>
> It turns out I just forgot to copy compiled executables to my
> $TAJO_HOME/bin this time.
>
> BTW, now I'm 100% sure Expr.java is still being used. Is this
> something that needs to be fixed?
>
> >
> > On Fri, Nov 14, 2014 at 12:23 AM, Jaewoong Jung <ju...@gmail.com>
> wrote:
> >> That's weird, because the stack trace shows the following:
> >>
> >> java.lang.NullPointerException
> >> at org.apache.tajo.algebra.Expr$JsonSerDer.deserialize(Expr.java:127)
> >> at org.apache.tajo.algebra.Expr$JsonSerDer.deserialize(Expr.java:119)
> >> at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58)
> >> at com.google.gson.Gson.fromJson(Gson.java:795)
> >> at com.google.gson.Gson.fromJson(Gson.java:761)
> >> at com.google.gson.Gson.fromJson(Gson.java:710)
> >> at com.google.gson.Gson.fromJson(Gson.java:682)
> >> at org.apache.tajo.algebra.JsonHelper.fromJson(JsonHelper.java:58)
> >> at
> org.apache.tajo.master.GlobalEngine.buildExpressionFromJson(GlobalEngine.java:194)
> >> at
> org.apache.tajo.master.GlobalEngine.executeQuery(GlobalEngine.java:166)
> >>
> >> And, Expr.java:127 is precisely where my wrong JSON query is expected
> to fail.
> >>
> >> ----
> >>
> >> BTW, I found that stop-tajo.sh prints out these messages.
> >>
> >> Stopping single TajoMaster
> >> no master to stop
> >> :
> >> :
> >> localhost: no worker to stop
> >>
> >> Is this normal?
> >>
> >>
> >> On Fri, Nov 14, 2014 at 12:15 AM, Jihoon Son <gh...@gmail.com>
> wrote:
> >>> The code lines where you made the above changes are in Expr.JsonSerder
> >>> which is no longer used.
> >>> Every class extended from Expr has a function of toJson() which is
> >>> inherited from Expr. This function uses JsonHelper to generate json
> >>> strings.
> >>> In JsonHelper, you can find several adapters like OpType.JsonSerder.
> >>> You may modify this class instead of Expr.JsonSerder.
> >>>
> >>> I hope this will be helpful for you.
> >>> Jihoon
> >>>
> >>> 2014-11-14 16:52 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
> >>>
> >>>> On Thu, Nov 13, 2014 at 11:39 PM, Jihoon Son <gh...@gmail.com>
> wrote:
> >>>> > Hi Jaewoong,
> >>>> > thanks for your interest.
> >>>> > Here are my answers.
> >>>> >
> >>>> > 1. You are right. We should make TajoCli support only SQL, and
> create a
> >>>> new
> >>>> > client for JSON.
> >>>> > 2. Can you tell me what kinds of changes you made? In most cases,
> you can
> >>>> > see the effect of your changes immediately, except when you modify
> the
> >>>> > protocol buffers codes.
> >>>>
> >>>> It was a really simple change like this.
> >>>>
> >>>> * From
> >>>> 127: String opType =
> >>>> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE).getAsString();
> >>>>
> >>>> * To
> >>>> 127: JsonElement opTypeElement =
> >>>> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE);
> >>>> 128: if (opTypeElement == null) {
> >>>> 129: throw new JsonParseException("Missing required field: " +
> >>>> SERIALIZED_NAME_OF_OP_TYPE);
> >>>> 130: }
> >>>> 131: String opType = opTypeElement.getAsString();
> >>>>
> >>>> FYI, I was trying to fix a bug where tsql just shows a dumb error
> >>>> message, "ERROR: java.lang.NullPointerException" when an OpType field
> >>>> is missing.
> >>>>
> >>>> No matter how I change the code, it throws a NullPointerException from
> >>>> the same line of the code. I even tried adding a few blank lines above
> >>>> 127, but the error trace shows that a NullPointerException was thrown
> >>>> from the same line all the time.
> >>>>
> >>>> Strangely enough, if I make a typo to see whether my change gets
> >>>> compiled, mvn stops with a proper error message. :(
> >>>>
> >>>> >
> >>>> > Thanks,
> >>>> > Jihoon
> >>>> >
> >>>> > 2014-11-14 16:13 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
> >>>> >
> >>>> >> 1. I found this issue (
> https://issues.apache.org/jira/browse/TAJO-826)
> >>>> >> which has a comment that we should remove all JSON related part
> from
> >>>> >> TajoCli. Does it mean that we want to make tsql support SQL queries
> >>>> >> only and create a separate client dedicated for JSON queries?
> >>>> >>
> >>>> >> 2. While trying to fix a minor bug in JSON parsing, I found that
> any
> >>>> >> of changes I made to Expr.java had no effect on tsql behavior.
> Does it
> >>>> >> read a pre-compiled jar file from somewhere else? What should I do
> to
> >>>> >> test my Expr changes?
> >>>> >>
> >>>> >> Thanks,
> >>>> >> Jaewoong
> >>>> >>
> >>>> >
> >>>> >
> >>>> >
> >>>> > --
> >>>> > Jihoon Son
> >>>> >
> >>>> > Database & Information Systems Group,
> >>>> > Prof. Yon Dohn Chung Lab.
> >>>> > Dept. of Computer Science & Engineering,
> >>>> > Korea University
> >>>> > 1, 5-ga, Anam-dong, Seongbuk-gu,
> >>>> > Seoul, 136-713, Republic of Korea
> >>>> >
> >>>> > Tel : +82-2-3290-3580
> >>>> > E-mail : jihoonson@korea.ac.kr
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> Jihoon Son
> >>>
> >>> Database & Information Systems Group,
> >>> Prof. Yon Dohn Chung Lab.
> >>> Dept. of Computer Science & Engineering,
> >>> Korea University
> >>> 1, 5-ga, Anam-dong, Seongbuk-gu,
> >>> Seoul, 136-713, Republic of Korea
> >>>
> >>> Tel : +82-2-3290-3580
> >>> E-mail : jihoonson@korea.ac.kr
>
--
Jihoon Son
Database & Information Systems Group,
Prof. Yon Dohn Chung Lab.
Dept. of Computer Science & Engineering,
Korea University
1, 5-ga, Anam-dong, Seongbuk-gu,
Seoul, 136-713, Republic of Korea
Tel : +82-2-3290-3580
E-mail : jihoonson@korea.ac.kr
Re: A couple of questions about JSON query support
Posted by Jaewoong Jung <ju...@gmail.com>.
Now, it's completely solved. :)
On Fri, Nov 14, 2014 at 12:41 AM, Jaewoong Jung <ju...@gmail.com> wrote:
> Problem solved, partially.
>
> I rebooted my laptop to see if it makes any difference, and it
> actually did. Now, stop-tajo.sh doesn't show the error messages, and
> my changes are taking effect.
>
> It seems like additional changes I made after reboot are being ignored
> again, though. (And, that's why I said it's partially solved.)
>
It turns out I just forgot to copy compiled executables to my
$TAJO_HOME/bin this time.
BTW, now I'm 100% sure Expr.java is still being used. Is this
something that needs to be fixed?
>
> On Fri, Nov 14, 2014 at 12:23 AM, Jaewoong Jung <ju...@gmail.com> wrote:
>> That's weird, because the stack trace shows the following:
>>
>> java.lang.NullPointerException
>> at org.apache.tajo.algebra.Expr$JsonSerDer.deserialize(Expr.java:127)
>> at org.apache.tajo.algebra.Expr$JsonSerDer.deserialize(Expr.java:119)
>> at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58)
>> at com.google.gson.Gson.fromJson(Gson.java:795)
>> at com.google.gson.Gson.fromJson(Gson.java:761)
>> at com.google.gson.Gson.fromJson(Gson.java:710)
>> at com.google.gson.Gson.fromJson(Gson.java:682)
>> at org.apache.tajo.algebra.JsonHelper.fromJson(JsonHelper.java:58)
>> at org.apache.tajo.master.GlobalEngine.buildExpressionFromJson(GlobalEngine.java:194)
>> at org.apache.tajo.master.GlobalEngine.executeQuery(GlobalEngine.java:166)
>>
>> And, Expr.java:127 is precisely where my wrong JSON query is expected to fail.
>>
>> ----
>>
>> BTW, I found that stop-tajo.sh prints out these messages.
>>
>> Stopping single TajoMaster
>> no master to stop
>> :
>> :
>> localhost: no worker to stop
>>
>> Is this normal?
>>
>>
>> On Fri, Nov 14, 2014 at 12:15 AM, Jihoon Son <gh...@gmail.com> wrote:
>>> The code lines where you made the above changes are in Expr.JsonSerder
>>> which is no longer used.
>>> Every class extended from Expr has a function of toJson() which is
>>> inherited from Expr. This function uses JsonHelper to generate json
>>> strings.
>>> In JsonHelper, you can find several adapters like OpType.JsonSerder.
>>> You may modify this class instead of Expr.JsonSerder.
>>>
>>> I hope this will be helpful for you.
>>> Jihoon
>>>
>>> 2014-11-14 16:52 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
>>>
>>>> On Thu, Nov 13, 2014 at 11:39 PM, Jihoon Son <gh...@gmail.com> wrote:
>>>> > Hi Jaewoong,
>>>> > thanks for your interest.
>>>> > Here are my answers.
>>>> >
>>>> > 1. You are right. We should make TajoCli support only SQL, and create a
>>>> new
>>>> > client for JSON.
>>>> > 2. Can you tell me what kinds of changes you made? In most cases, you can
>>>> > see the effect of your changes immediately, except when you modify the
>>>> > protocol buffers codes.
>>>>
>>>> It was a really simple change like this.
>>>>
>>>> * From
>>>> 127: String opType =
>>>> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE).getAsString();
>>>>
>>>> * To
>>>> 127: JsonElement opTypeElement =
>>>> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE);
>>>> 128: if (opTypeElement == null) {
>>>> 129: throw new JsonParseException("Missing required field: " +
>>>> SERIALIZED_NAME_OF_OP_TYPE);
>>>> 130: }
>>>> 131: String opType = opTypeElement.getAsString();
>>>>
>>>> FYI, I was trying to fix a bug where tsql just shows a dumb error
>>>> message, "ERROR: java.lang.NullPointerException" when an OpType field
>>>> is missing.
>>>>
>>>> No matter how I change the code, it throws a NullPointerException from
>>>> the same line of the code. I even tried adding a few blank lines above
>>>> 127, but the error trace shows that a NullPointerException was thrown
>>>> from the same line all the time.
>>>>
>>>> Strangely enough, if I make a typo to see whether my change gets
>>>> compiled, mvn stops with a proper error message. :(
>>>>
>>>> >
>>>> > Thanks,
>>>> > Jihoon
>>>> >
>>>> > 2014-11-14 16:13 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
>>>> >
>>>> >> 1. I found this issue (https://issues.apache.org/jira/browse/TAJO-826)
>>>> >> which has a comment that we should remove all JSON related part from
>>>> >> TajoCli. Does it mean that we want to make tsql support SQL queries
>>>> >> only and create a separate client dedicated for JSON queries?
>>>> >>
>>>> >> 2. While trying to fix a minor bug in JSON parsing, I found that any
>>>> >> of changes I made to Expr.java had no effect on tsql behavior. Does it
>>>> >> read a pre-compiled jar file from somewhere else? What should I do to
>>>> >> test my Expr changes?
>>>> >>
>>>> >> Thanks,
>>>> >> Jaewoong
>>>> >>
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Jihoon Son
>>>> >
>>>> > Database & Information Systems Group,
>>>> > Prof. Yon Dohn Chung Lab.
>>>> > Dept. of Computer Science & Engineering,
>>>> > Korea University
>>>> > 1, 5-ga, Anam-dong, Seongbuk-gu,
>>>> > Seoul, 136-713, Republic of Korea
>>>> >
>>>> > Tel : +82-2-3290-3580
>>>> > E-mail : jihoonson@korea.ac.kr
>>>>
>>>
>>>
>>>
>>> --
>>> Jihoon Son
>>>
>>> Database & Information Systems Group,
>>> Prof. Yon Dohn Chung Lab.
>>> Dept. of Computer Science & Engineering,
>>> Korea University
>>> 1, 5-ga, Anam-dong, Seongbuk-gu,
>>> Seoul, 136-713, Republic of Korea
>>>
>>> Tel : +82-2-3290-3580
>>> E-mail : jihoonson@korea.ac.kr
Re: A couple of questions about JSON query support
Posted by Jaewoong Jung <ju...@gmail.com>.
Problem solved, partially.
I rebooted my laptop to see if it makes any difference, and it
actually did. Now, stop-tajo.sh doesn't show the error messages, and
my changes are taking effect.
It seems like additional changes I made after reboot are being ignored
again, though. (And, that's why I said it's partially solved.)
On Fri, Nov 14, 2014 at 12:23 AM, Jaewoong Jung <ju...@gmail.com> wrote:
> That's weird, because the stack trace shows the following:
>
> java.lang.NullPointerException
> at org.apache.tajo.algebra.Expr$JsonSerDer.deserialize(Expr.java:127)
> at org.apache.tajo.algebra.Expr$JsonSerDer.deserialize(Expr.java:119)
> at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58)
> at com.google.gson.Gson.fromJson(Gson.java:795)
> at com.google.gson.Gson.fromJson(Gson.java:761)
> at com.google.gson.Gson.fromJson(Gson.java:710)
> at com.google.gson.Gson.fromJson(Gson.java:682)
> at org.apache.tajo.algebra.JsonHelper.fromJson(JsonHelper.java:58)
> at org.apache.tajo.master.GlobalEngine.buildExpressionFromJson(GlobalEngine.java:194)
> at org.apache.tajo.master.GlobalEngine.executeQuery(GlobalEngine.java:166)
>
> And, Expr.java:127 is precisely where my wrong JSON query is expected to fail.
>
> ----
>
> BTW, I found that stop-tajo.sh prints out these messages.
>
> Stopping single TajoMaster
> no master to stop
> :
> :
> localhost: no worker to stop
>
> Is this normal?
>
>
> On Fri, Nov 14, 2014 at 12:15 AM, Jihoon Son <gh...@gmail.com> wrote:
>> The code lines where you made the above changes are in Expr.JsonSerder
>> which is no longer used.
>> Every class extended from Expr has a function of toJson() which is
>> inherited from Expr. This function uses JsonHelper to generate json
>> strings.
>> In JsonHelper, you can find several adapters like OpType.JsonSerder.
>> You may modify this class instead of Expr.JsonSerder.
>>
>> I hope this will be helpful for you.
>> Jihoon
>>
>> 2014-11-14 16:52 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
>>
>>> On Thu, Nov 13, 2014 at 11:39 PM, Jihoon Son <gh...@gmail.com> wrote:
>>> > Hi Jaewoong,
>>> > thanks for your interest.
>>> > Here are my answers.
>>> >
>>> > 1. You are right. We should make TajoCli support only SQL, and create a
>>> new
>>> > client for JSON.
>>> > 2. Can you tell me what kinds of changes you made? In most cases, you can
>>> > see the effect of your changes immediately, except when you modify the
>>> > protocol buffers codes.
>>>
>>> It was a really simple change like this.
>>>
>>> * From
>>> 127: String opType =
>>> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE).getAsString();
>>>
>>> * To
>>> 127: JsonElement opTypeElement =
>>> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE);
>>> 128: if (opTypeElement == null) {
>>> 129: throw new JsonParseException("Missing required field: " +
>>> SERIALIZED_NAME_OF_OP_TYPE);
>>> 130: }
>>> 131: String opType = opTypeElement.getAsString();
>>>
>>> FYI, I was trying to fix a bug where tsql just shows a dumb error
>>> message, "ERROR: java.lang.NullPointerException" when an OpType field
>>> is missing.
>>>
>>> No matter how I change the code, it throws a NullPointerException from
>>> the same line of the code. I even tried adding a few blank lines above
>>> 127, but the error trace shows that a NullPointerException was thrown
>>> from the same line all the time.
>>>
>>> Strangely enough, if I make a typo to see whether my change gets
>>> compiled, mvn stops with a proper error message. :(
>>>
>>> >
>>> > Thanks,
>>> > Jihoon
>>> >
>>> > 2014-11-14 16:13 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
>>> >
>>> >> 1. I found this issue (https://issues.apache.org/jira/browse/TAJO-826)
>>> >> which has a comment that we should remove all JSON related part from
>>> >> TajoCli. Does it mean that we want to make tsql support SQL queries
>>> >> only and create a separate client dedicated for JSON queries?
>>> >>
>>> >> 2. While trying to fix a minor bug in JSON parsing, I found that any
>>> >> of changes I made to Expr.java had no effect on tsql behavior. Does it
>>> >> read a pre-compiled jar file from somewhere else? What should I do to
>>> >> test my Expr changes?
>>> >>
>>> >> Thanks,
>>> >> Jaewoong
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Jihoon Son
>>> >
>>> > Database & Information Systems Group,
>>> > Prof. Yon Dohn Chung Lab.
>>> > Dept. of Computer Science & Engineering,
>>> > Korea University
>>> > 1, 5-ga, Anam-dong, Seongbuk-gu,
>>> > Seoul, 136-713, Republic of Korea
>>> >
>>> > Tel : +82-2-3290-3580
>>> > E-mail : jihoonson@korea.ac.kr
>>>
>>
>>
>>
>> --
>> Jihoon Son
>>
>> Database & Information Systems Group,
>> Prof. Yon Dohn Chung Lab.
>> Dept. of Computer Science & Engineering,
>> Korea University
>> 1, 5-ga, Anam-dong, Seongbuk-gu,
>> Seoul, 136-713, Republic of Korea
>>
>> Tel : +82-2-3290-3580
>> E-mail : jihoonson@korea.ac.kr
Re: A couple of questions about JSON query support
Posted by Jaewoong Jung <ju...@gmail.com>.
That's weird, because the stack trace shows the following:
java.lang.NullPointerException
at org.apache.tajo.algebra.Expr$JsonSerDer.deserialize(Expr.java:127)
at org.apache.tajo.algebra.Expr$JsonSerDer.deserialize(Expr.java:119)
at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58)
at com.google.gson.Gson.fromJson(Gson.java:795)
at com.google.gson.Gson.fromJson(Gson.java:761)
at com.google.gson.Gson.fromJson(Gson.java:710)
at com.google.gson.Gson.fromJson(Gson.java:682)
at org.apache.tajo.algebra.JsonHelper.fromJson(JsonHelper.java:58)
at org.apache.tajo.master.GlobalEngine.buildExpressionFromJson(GlobalEngine.java:194)
at org.apache.tajo.master.GlobalEngine.executeQuery(GlobalEngine.java:166)
And, Expr.java:127 is precisely where my wrong JSON query is expected to fail.
----
BTW, I found that stop-tajo.sh prints out these messages.
Stopping single TajoMaster
no master to stop
:
:
localhost: no worker to stop
Is this normal?
On Fri, Nov 14, 2014 at 12:15 AM, Jihoon Son <gh...@gmail.com> wrote:
> The code lines where you made the above changes are in Expr.JsonSerder
> which is no longer used.
> Every class extended from Expr has a function of toJson() which is
> inherited from Expr. This function uses JsonHelper to generate json
> strings.
> In JsonHelper, you can find several adapters like OpType.JsonSerder.
> You may modify this class instead of Expr.JsonSerder.
>
> I hope this will be helpful for you.
> Jihoon
>
> 2014-11-14 16:52 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
>
>> On Thu, Nov 13, 2014 at 11:39 PM, Jihoon Son <gh...@gmail.com> wrote:
>> > Hi Jaewoong,
>> > thanks for your interest.
>> > Here are my answers.
>> >
>> > 1. You are right. We should make TajoCli support only SQL, and create a
>> new
>> > client for JSON.
>> > 2. Can you tell me what kinds of changes you made? In most cases, you can
>> > see the effect of your changes immediately, except when you modify the
>> > protocol buffers codes.
>>
>> It was a really simple change like this.
>>
>> * From
>> 127: String opType =
>> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE).getAsString();
>>
>> * To
>> 127: JsonElement opTypeElement =
>> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE);
>> 128: if (opTypeElement == null) {
>> 129: throw new JsonParseException("Missing required field: " +
>> SERIALIZED_NAME_OF_OP_TYPE);
>> 130: }
>> 131: String opType = opTypeElement.getAsString();
>>
>> FYI, I was trying to fix a bug where tsql just shows a dumb error
>> message, "ERROR: java.lang.NullPointerException" when an OpType field
>> is missing.
>>
>> No matter how I change the code, it throws a NullPointerException from
>> the same line of the code. I even tried adding a few blank lines above
>> 127, but the error trace shows that a NullPointerException was thrown
>> from the same line all the time.
>>
>> Strangely enough, if I make a typo to see whether my change gets
>> compiled, mvn stops with a proper error message. :(
>>
>> >
>> > Thanks,
>> > Jihoon
>> >
>> > 2014-11-14 16:13 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
>> >
>> >> 1. I found this issue (https://issues.apache.org/jira/browse/TAJO-826)
>> >> which has a comment that we should remove all JSON related part from
>> >> TajoCli. Does it mean that we want to make tsql support SQL queries
>> >> only and create a separate client dedicated for JSON queries?
>> >>
>> >> 2. While trying to fix a minor bug in JSON parsing, I found that any
>> >> of changes I made to Expr.java had no effect on tsql behavior. Does it
>> >> read a pre-compiled jar file from somewhere else? What should I do to
>> >> test my Expr changes?
>> >>
>> >> Thanks,
>> >> Jaewoong
>> >>
>> >
>> >
>> >
>> > --
>> > Jihoon Son
>> >
>> > Database & Information Systems Group,
>> > Prof. Yon Dohn Chung Lab.
>> > Dept. of Computer Science & Engineering,
>> > Korea University
>> > 1, 5-ga, Anam-dong, Seongbuk-gu,
>> > Seoul, 136-713, Republic of Korea
>> >
>> > Tel : +82-2-3290-3580
>> > E-mail : jihoonson@korea.ac.kr
>>
>
>
>
> --
> Jihoon Son
>
> Database & Information Systems Group,
> Prof. Yon Dohn Chung Lab.
> Dept. of Computer Science & Engineering,
> Korea University
> 1, 5-ga, Anam-dong, Seongbuk-gu,
> Seoul, 136-713, Republic of Korea
>
> Tel : +82-2-3290-3580
> E-mail : jihoonson@korea.ac.kr
Re: A couple of questions about JSON query support
Posted by Jihoon Son <gh...@gmail.com>.
The code lines where you made the above changes are in Expr.JsonSerder
which is no longer used.
Every class extended from Expr has a function of toJson() which is
inherited from Expr. This function uses JsonHelper to generate json
strings.
In JsonHelper, you can find several adapters like OpType.JsonSerder.
You may modify this class instead of Expr.JsonSerder.
I hope this will be helpful for you.
Jihoon
2014-11-14 16:52 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
> On Thu, Nov 13, 2014 at 11:39 PM, Jihoon Son <gh...@gmail.com> wrote:
> > Hi Jaewoong,
> > thanks for your interest.
> > Here are my answers.
> >
> > 1. You are right. We should make TajoCli support only SQL, and create a
> new
> > client for JSON.
> > 2. Can you tell me what kinds of changes you made? In most cases, you can
> > see the effect of your changes immediately, except when you modify the
> > protocol buffers codes.
>
> It was a really simple change like this.
>
> * From
> 127: String opType =
> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE).getAsString();
>
> * To
> 127: JsonElement opTypeElement =
> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE);
> 128: if (opTypeElement == null) {
> 129: throw new JsonParseException("Missing required field: " +
> SERIALIZED_NAME_OF_OP_TYPE);
> 130: }
> 131: String opType = opTypeElement.getAsString();
>
> FYI, I was trying to fix a bug where tsql just shows a dumb error
> message, "ERROR: java.lang.NullPointerException" when an OpType field
> is missing.
>
> No matter how I change the code, it throws a NullPointerException from
> the same line of the code. I even tried adding a few blank lines above
> 127, but the error trace shows that a NullPointerException was thrown
> from the same line all the time.
>
> Strangely enough, if I make a typo to see whether my change gets
> compiled, mvn stops with a proper error message. :(
>
> >
> > Thanks,
> > Jihoon
> >
> > 2014-11-14 16:13 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
> >
> >> 1. I found this issue (https://issues.apache.org/jira/browse/TAJO-826)
> >> which has a comment that we should remove all JSON related part from
> >> TajoCli. Does it mean that we want to make tsql support SQL queries
> >> only and create a separate client dedicated for JSON queries?
> >>
> >> 2. While trying to fix a minor bug in JSON parsing, I found that any
> >> of changes I made to Expr.java had no effect on tsql behavior. Does it
> >> read a pre-compiled jar file from somewhere else? What should I do to
> >> test my Expr changes?
> >>
> >> Thanks,
> >> Jaewoong
> >>
> >
> >
> >
> > --
> > Jihoon Son
> >
> > Database & Information Systems Group,
> > Prof. Yon Dohn Chung Lab.
> > Dept. of Computer Science & Engineering,
> > Korea University
> > 1, 5-ga, Anam-dong, Seongbuk-gu,
> > Seoul, 136-713, Republic of Korea
> >
> > Tel : +82-2-3290-3580
> > E-mail : jihoonson@korea.ac.kr
>
--
Jihoon Son
Database & Information Systems Group,
Prof. Yon Dohn Chung Lab.
Dept. of Computer Science & Engineering,
Korea University
1, 5-ga, Anam-dong, Seongbuk-gu,
Seoul, 136-713, Republic of Korea
Tel : +82-2-3290-3580
E-mail : jihoonson@korea.ac.kr
Re: A couple of questions about JSON query support
Posted by Jaewoong Jung <ju...@gmail.com>.
On Thu, Nov 13, 2014 at 11:39 PM, Jihoon Son <gh...@gmail.com> wrote:
> Hi Jaewoong,
> thanks for your interest.
> Here are my answers.
>
> 1. You are right. We should make TajoCli support only SQL, and create a new
> client for JSON.
> 2. Can you tell me what kinds of changes you made? In most cases, you can
> see the effect of your changes immediately, except when you modify the
> protocol buffers codes.
It was a really simple change like this.
* From
127: String opType =
jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE).getAsString();
* To
127: JsonElement opTypeElement =
jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE);
128: if (opTypeElement == null) {
129: throw new JsonParseException("Missing required field: " +
SERIALIZED_NAME_OF_OP_TYPE);
130: }
131: String opType = opTypeElement.getAsString();
FYI, I was trying to fix a bug where tsql just shows a dumb error
message, "ERROR: java.lang.NullPointerException" when an OpType field
is missing.
No matter how I change the code, it throws a NullPointerException from
the same line of the code. I even tried adding a few blank lines above
127, but the error trace shows that a NullPointerException was thrown
from the same line all the time.
Strangely enough, if I make a typo to see whether my change gets
compiled, mvn stops with a proper error message. :(
>
> Thanks,
> Jihoon
>
> 2014-11-14 16:13 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
>
>> 1. I found this issue (https://issues.apache.org/jira/browse/TAJO-826)
>> which has a comment that we should remove all JSON related part from
>> TajoCli. Does it mean that we want to make tsql support SQL queries
>> only and create a separate client dedicated for JSON queries?
>>
>> 2. While trying to fix a minor bug in JSON parsing, I found that any
>> of changes I made to Expr.java had no effect on tsql behavior. Does it
>> read a pre-compiled jar file from somewhere else? What should I do to
>> test my Expr changes?
>>
>> Thanks,
>> Jaewoong
>>
>
>
>
> --
> Jihoon Son
>
> Database & Information Systems Group,
> Prof. Yon Dohn Chung Lab.
> Dept. of Computer Science & Engineering,
> Korea University
> 1, 5-ga, Anam-dong, Seongbuk-gu,
> Seoul, 136-713, Republic of Korea
>
> Tel : +82-2-3290-3580
> E-mail : jihoonson@korea.ac.kr
Re: A couple of questions about JSON query support
Posted by Jihoon Son <gh...@gmail.com>.
Hi Jaewoong,
thanks for your interest.
Here are my answers.
1. You are right. We should make TajoCli support only SQL, and create a new
client for JSON.
2. Can you tell me what kinds of changes you made? In most cases, you can
see the effect of your changes immediately, except when you modify the
protocol buffers codes.
Thanks,
Jihoon
2014-11-14 16:13 GMT+09:00 Jaewoong Jung <ju...@gmail.com>:
> 1. I found this issue (https://issues.apache.org/jira/browse/TAJO-826)
> which has a comment that we should remove all JSON related part from
> TajoCli. Does it mean that we want to make tsql support SQL queries
> only and create a separate client dedicated for JSON queries?
>
> 2. While trying to fix a minor bug in JSON parsing, I found that any
> of changes I made to Expr.java had no effect on tsql behavior. Does it
> read a pre-compiled jar file from somewhere else? What should I do to
> test my Expr changes?
>
> Thanks,
> Jaewoong
>
--
Jihoon Son
Database & Information Systems Group,
Prof. Yon Dohn Chung Lab.
Dept. of Computer Science & Engineering,
Korea University
1, 5-ga, Anam-dong, Seongbuk-gu,
Seoul, 136-713, Republic of Korea
Tel : +82-2-3290-3580
E-mail : jihoonson@korea.ac.kr