| time |
nick |
message |
10:39 |
<ralf> |
hi udai |
10:39 |
<Udai> |
Hi ralf |
10:40 |
<Udai> |
I saw your patch |
10:40 |
<Udai> |
I merged the changes in my workspace and created new patch for the implementation |
10:41 |
<Udai> |
you can see that on issue-2442 |
10:41 |
<ralf> |
have you understood the changes |
10:41 |
<Udai> |
yes |
10:42 |
<Udai> |
using those only I was able to create the implementation for conditions |
10:43 |
<Udai> |
I didn't thought about implementing field in AbstractField |
10:43 |
<Udai> |
which solved the problem |
10:45 |
<Udai> |
before checking the patch you can go through the comment and we can discuss |
10:45 |
<ralf> |
checking my mailbox at the moment |
10:51 |
<ralf> |
while a like your idea to maipulate conditions this will not work in all cases |
10:52 |
<ralf> |
not (o.name is null) -> (o.name is not null): very good |
10:52 |
<ralf> |
but how about |
10:53 |
<ralf> |
not ((o.name is null) or (o.name="foo")) |
10:55 |
<Udai> |
so I think we can keep both |
10:55 |
<ralf> |
this can be transformed to (o.name is not null) and (o.name<>"foo") |
10:55 |
<ralf> |
but this transformations can get quite tricky |
10:55 |
<Udai> |
the Not object and boolean _not in Like,Between,In,Null |
10:56 |
<ralf> |
therefore i think we need Not but modify simple conditions as you suggested |
10:57 |
<Udai> |
yes thats why I haven't implemented not() yet in AbstractCondition |
10:57 |
<ralf> |
we have to implement it in the concrete condition |
10:58 |
<Udai> |
you mean CompoundCondition |
10:59 |
<Udai> |
oh no no ...sorry ..it was by mistake |
10:59 |
<Udai> |
nothing about CompoundCondition |
11:00 |
<Udai> |
I think you can check the Junit test |
11:01 |
<Udai> |
Junit test is not for everything yet...but I am working on that |
11:02 |
<Udai> |
also I am thinking that why you have created this InCondition interface |
11:05 |
<Udai> |
why didn't you interfaced IN and IS NULL as LIKE and BETWEEN |
11:06 |
<ralf> |
problem with IN is that you have to be able to add multiple items |
11:06 |
<ralf> |
but for the items not all expressions are allowed |
11:07 |
<Udai> |
path | parameter | literals |
11:07 |
<ralf> |
yes |
11:08 |
<Udai> |
and NULL |
11:08 |
<Udai> |
? |
11:09 |
<ralf> |
so instead of a factory method with List <Expression> i decided to use a special InCondition class that only has add methods for the types allowed |
11:09 |
<ralf> |
null is not allowed |
11:11 |
<Udai> |
@IN: okay ..got it |
11:14 |
<ralf> |
did you recognize that i defined Field as immutable and did not provide setters |
11:14 |
<Udai> |
why InCondition in() is in Field interface and not in Expression Interface |
11:15 |
<ralf> |
because EJB QL allows in only on fields but not on all expressions |
11:15 |
<Udai> |
@Field : ya but didn't know the reason |
11:15 |
<Udai> |
k |
11:15 |
<Udai> |
@IN: K |
11:16 |
<Udai> |
@ Field: why not setter |
11:17 |
<ralf> |
immutable means you can not change the object after construction |
11:17 |
<Udai> |
okay |
11:18 |
<Udai> |
because we don't need to change it when it ones created |
11:18 |
<ralf> |
for Field this isn't important yet but will get important later |
11:18 |
<Udai> |
k |
11:18 |
<ralf> |
when we implement validation of QO we will need to resolve type of the field |
11:19 |
<ralf> |
if one modifies name thereafter the resolved type doesn't match any more |
11:19 |
<ralf> |
so it's better to define it immutable |
11:19 |
<Udai> |
k |
11:20 |
<ralf> |
i think i'll do the same for literals and parameters |
11:20 |
<ralf> |
this will easy things later on |
11:20 |
<Udai> |
k |
11:22 |
<ralf> |
whyt's current state? you are working to finish conditions atm? |
11:22 |
<Udai> |
yes |
11:23 |
<Udai> |
I had few doubts which I wanted to clear before finalizing the things |
11:23 |
<ralf> |
what do you think how long this will take? |
11:23 |
<Udai> |
compair, Like and between are ready |
11:24 |
<Udai> |
in, null and not are remaining only |
11:24 |
<Udai> |
and the junit test to verify them |
11:24 |
<ralf> |
how about "and" and "or"? |
11:25 |
<Udai> |
they are also done |
11:25 |
<ralf> |
good |
11:26 |
<Udai> |
as I wasn't sure about not,in and null so I wanted to discuss before finalizing them |
11:27 |
<Udai> |
have you read my comment about TemporalType |
11:28 |
<ralf> |
yes |
11:28 |
<ralf> |
i thought of moving Field, Schema, Projection and some other from query.object.select to query objects package |
11:28 |
<ralf> |
what do you think? |
11:28 |
<Udai> |
I tested here every one of java.util and java.sql type that we talked |
11:29 |
<Udai> |
well I have no problem |
11:29 |
<ralf> |
@date: fine by me |
11:29 |
<Udai> |
@moving : no problem |
11:29 |
<ralf> |
@move: okay |
11:30 |
<Udai> |
@date: you know the interesting thing I found was they all store same data |
11:31 |
<ralf> |
all java.sql types extend java.util.Date |
11:31 |
<Udai> |
in milisec which is the standard they were all same ....like java.sql.Time() also has Date into it |
11:32 |
<ralf> |
yes |
11:32 |
<Udai> |
but I thought that Time will only have time |
11:33 |
<Udai> |
ya I learn that later that all these extends util.Date |
11:35 |
<Udai> |
I think for avoiding type conversion I can use util.Date only and drop the Idea of sql. types |
11:35 |
<Udai> |
then the only thing I need to care about is Calendar and Date conversion |
11:37 |
<ralf> |
i also think using java.util.Date would be a good idea |
11:37 |
<ralf> |
at review of your previous work i sometimes recognized varying idention |
11:38 |
<Udai> |
like? |
11:38 |
<ralf> |
and i also had to improve javadoc in some cases |
11:39 |
<Udai> |
I will take care of those |
11:40 |
<ralf> |
i'll use minus instead of withespace to highlight |
11:40 |
<ralf> |
if (condition) { |
11:40 |
<ralf> |
----// do something |
11:40 |
<ralf> |
-} |
11:40 |
<ralf> |
or something like that |
11:41 |
<Udai> |
k |
11:43 |
<ralf> |
as you said everything is included in latest patch |
11:43 |
<ralf> |
and you do only changes to condition package atm |
11:44 |
<Udai> |
few things in function |
11:45 |
<Udai> |
and implementation in AbstractExpression of expression package |
11:46 |
<Udai> |
small change in OrderDirection |
11:47 |
<ralf> |
okay i then leave function, expression and condition unchanged |
11:48 |
<ralf> |
having said that i will be away from time to time to watch what happens in F1 race |
11:48 |
<Udai> |
k |
11:49 |
<Udai> |
I will try to finish things ASAP |
11:50 |
<ralf> |
okay |
11:50 |
<Udai> |
I will go to market for like at most one hour |
11:50 |
<Udai> |
so I will be out till then |
11:50 |
<ralf> |
okay. see you later |
11:50 |
<Udai> |
see you |
20:14 |
<Udai> |
Hi ralf |
20:14 |
<Udai> |
I am sorry there was some power problem here |
22:28 |
<ralf> |
hi udai |
22:28 |
<ralf> |
@power: that may happen |
22:28 |
<ralf> |
sorry, had been away of pc for a while |
22:29 |
<Udai> |
I have complited In, Not and Null |
22:29 |
<Udai> |
now just creating Junit tests for all |
22:29 |
<ralf> |
very good |
22:30 |
<ralf> |
i had some problems to merge your latest patch |
22:30 |
<Udai> |
like?? |
22:32 |
<ralf> |
the patch included only parts of the whole project and some did not include my last patch from select package |
22:34 |
<Udai> |
but I think I have included the select package in patch |
22:34 |
<ralf> |
i suggest you to change only one package and include all classes of this package in patch |
22:35 |
<ralf> |
this makes it much easier to merge our changes |
22:36 |
<ralf> |
i do not change anything at condition, expression and function package |
22:36 |
<Udai> |
pardon, I didn't got you......what was missing in last patch |
22:36 |
<ralf> |
so you can do changes at this packages |
22:36 |
<ralf> |
my changes to class in select package |
22:37 |
<ralf> |
but don't care about the past |
22:38 |
<Udai> |
oh sorry for that |
22:38 |
<Udai> |
it includes the previous select package |
22:38 |
<ralf> |
yes |
22:39 |
<Udai> |
although I am working on your implementation changes |
22:39 |
<ralf> |
as i told you earlier today i do changes to the other packages |
22:40 |
<ralf> |
so i will only merge your changes to conditon, expression and function |
22:40 |
<ralf> |
i will throw away every other change when merging |
22:41 |
<ralf> |
when i talk about condition, expression and function i mean main and test parts |
22:42 |
<Udai> |
okay |
22:54 |
<Udai> |
ralf, how function are supposed to be used via Expression interface |
22:55 |
<Udai> |
I mean could you give me an example |
22:55 |
<ralf> |
schema.field(name).length() |
22:56 |
<ralf> |
schema.field(name).length().greaterThan(10) |
22:56 |
<Udai> |
I mean this will return Function |
23:19 |
<ralf> |
udai: i'm out now. I plan to continue work at QO tomorrow evening |
23:19 |
<ralf> |
bye |
23:21 |
<Udai> |
k |
23:21 |
<Udai> |
see you tomorrow |