On Tue, Jan 10, 2017 at 12:06 PM, Malintha Amarasinghe <[email protected]> wrote:
> On Tue, Jan 10, 2017 at 12:03 PM, Bhathiya Jayasekara <[email protected]> > wrote: > >> >> On Tue, Jan 10, 2017 at 11:53 AM, Malintha Amarasinghe < >> [email protected]> wrote: >> >>> If we can fix this without breaking the user experience is ideal. But >>> the problem I see is how can we manage those changes; are we going to do >>> that in each and every query? If we miss one place that will introduce a >>> bug. Is there any way we can manage this in a central manner? >>> >> >> If we do this in model classes, we don't need to change anywhere else. >> > So we need to do this in all String variables in all models classes? > Yes. > Are we going to do this in code generator level? > No, models are not auto generated. Here we are talking about core service level, but not REST API level. Thanks, Bhathiya > > Thanks, > Malintha > >> >> Thanks, >> Bhathiya >> >> >>> >>> On Tue, Jan 10, 2017 at 11:46 AM, Ishara Cooray <[email protected]> >>> wrote: >>> >>>> IMO user experience is the most important thing and what ever the logic >>>> we have implemented should not do any difference in end user experience. >>>> Hence, keeping things simple, prefer using a space character if and >>>> only if user has provided an empty string. Otherwise keep the default >>>> value. >>>> >>>> >>>> >>>> Thanks & Regards, >>>> Ishara Cooray >>>> Senior Software Engineer >>>> Mobile : +9477 262 9512 <+94%2077%20262%209512> >>>> WSO2, Inc. | http://wso2.com/ >>>> Lean . Enterprise . Middleware >>>> >>>> On Tue, Jan 10, 2017 at 11:29 AM, Akalanka Pagoda Arachchi < >>>> [email protected]> wrote: >>>> >>>>> We can say that the string we use is a reserved keyword. In any >>>>> complex system we have to have such restriction in order address these >>>>> kind >>>>> of issues. >>>>> >>>>> On Tue, Jan 10, 2017 at 11:23 AM, Malintha Amarasinghe < >>>>> [email protected]> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Tue, Jan 10, 2017 at 11:10 AM, Akalanka Pagoda Arachchi < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Replacing an empty string with a space is generally a bad practice >>>>>>> in database perspective due to few reasons. >>>>>>> >>>>>>> 1. Issues with visibility (a DBA cannot tell the difference by >>>>>>> directly looking at it) >>>>>>> 2. As Madhawa pointed out, space is a different character and when >>>>>>> we really want to represent a space in the column and differentiate >>>>>>> between >>>>>>> the empty and the space, it will be impossible. >>>>>>> 3. Adds processing complexity >>>>>>> >>>>>>> The suggestion to use a space for empty strings is actually to >>>>>>> denote an empty string by a special character since empty string is not >>>>>>> supported in Oracle. Therefore instead of using a meaningless space >>>>>>> character which introduces more complexity why not use a special string >>>>>>> such as NULL or EMPTY? >>>>>>> >>>>>> If we select a special string we should ensure that those will never >>>>>> come as a user input; I am doubtful we can assume that always.. Otherwise >>>>>> if a user give "NULL" as an input, it will come back as "" right? >>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>> Akalanka. >>>>>>> >>>>>>> On Tue, Jan 10, 2017 at 11:01 AM, Madhawa Gunasekara < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> So what will happen if the user sends a space? So It's better to >>>>>>>> add a configuration to avoid these situations. then user can handle >>>>>>>> this. >>>>>>>> WDYT ? >>>>>>>> >>>>>>>> On Tue, Jan 10, 2017 at 10:54 AM, Uvindra Dias Jayasinha < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> To be more precise, if a user explicitly sends "" then we will set >>>>>>>>> the value to space, enabling us to convert back to "". >>>>>>>>> >>>>>>>>> But if the field is not set(ignored by the user) then the default >>>>>>>>> NULL will be saved. This will make things consistant across all DB's. >>>>>>>>> >>>>>>>>> On 10 January 2017 at 10:41, Uvindra Dias Jayasinha < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Note that there is a clear break in the UX of the REST API if we >>>>>>>>>> allow pass empty strings to Oracle(due to the conversion to NULL). >>>>>>>>>> Oracle >>>>>>>>>> treats "" as NULL but this is incorrect in the REST/JSON world. >>>>>>>>>> >>>>>>>>>> If a user enters an empty string "" they will expect to get "" >>>>>>>>>> back, which will not happen with Oracles default behaviour. >>>>>>>>>> Therefore in >>>>>>>>>> order to keep consistency of the REST API I dont see an alternative >>>>>>>>>> other >>>>>>>>>> than having space as the default value. We can get rid of the space >>>>>>>>>> when >>>>>>>>>> returning by simply trimming the String so we don't need to have any >>>>>>>>>> special filtering logic. >>>>>>>>>> >>>>>>>>>> On 10 January 2017 at 10:34, Akalanka Pagoda Arachchi < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> +1 to keep default as NULL instead of a space. >>>>>>>>>>> >>>>>>>>>>> Having a space will require adding trimming logic to the >>>>>>>>>>> underlying code and methods like 'isNullOrEmpty' will bypass this >>>>>>>>>>> string if >>>>>>>>>>> there's a space. >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Akalanka. >>>>>>>>>>> >>>>>>>>>>> On Tue, Jan 10, 2017 at 10:23 AM, Lahiru Cooray < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Mon, Jan 9, 2017 at 7:54 AM, Isuru Haththotuwa < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Fri, Jan 6, 2017 at 5:19 PM, Uvindra Dias Jayasinha < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Setting a default value for empty fields being sent seems to >>>>>>>>>>>>>> be best. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Furthermore we can have default values set in our DTO objects >>>>>>>>>>>>>> in case a given field is omitted altogether. >>>>>>>>>>>>>> >>>>>>>>>>>>>> So handling both the above scenarios can overcome the >>>>>>>>>>>>>> limitation in Oracle. >>>>>>>>>>>>>> >>>>>>>>>>>>>> But I dont know if this is good for the REST API user >>>>>>>>>>>>>> experience, when retrieving data that contains these default >>>>>>>>>>>>>> values. >>>>>>>>>>>>>> >>>>>>>>>>>>> Additionally this could affect the user experience in UIs as >>>>>>>>>>>>> well. >>>>>>>>>>>>> >>>>>>>>>>>>> How about we just keep a default value to NULL in DB level and >>>>>>>>>>>>> then filter it from UI? Since anyway Oracle treats zero length >>>>>>>>>>>>> String as >>>>>>>>>>>>> NULLs, even if the user enters an empty String it will then be >>>>>>>>>>>>> automatically. The rest API will still return the default value >>>>>>>>>>>>> if invoked >>>>>>>>>>>>> directly though. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> +1 to keep default as NULL which is more natural >>>>>>>>>>>> Further rather than filtering in the UI, how about directly do >>>>>>>>>>>> it in the query itself using COALESCE() built-in function (which >>>>>>>>>>>> is an ANSI >>>>>>>>>>>> standard and better performing than IS NULL) >>>>>>>>>>>> >>>>>>>>>>>> eg: SELECT COALESCE(field_name,'') as field_name //if the >>>>>>>>>>>> field value is null it will map to empty >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>>> On 6 January 2017 at 15:28, Tharindu Dharmarathna < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Fri, Jan 6, 2017 at 3:26 PM, Tharindu Dharmarathna < >>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hi All, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I faced $Subject in Oracle database while running >>>>>>>>>>>>>>>> integration test on C5 on top. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> *Observation* >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> when insert empty string ("") it was save as null in >>>>>>>>>>>>>>>> database. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> While going through SO I had found [1] , which did happen >>>>>>>>>>>>>>>> in oracle database. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> We have come up with several ways to handle empty strings >>>>>>>>>>>>>>>> which user sends through the rest api. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> 1. Validate the request and send error when giving empty >>>>>>>>>>>>>>>> strings >>>>>>>>>>>>>>>> 2. Set default value like "N/A" into the fields which send >>>>>>>>>>>>>>>> as empty. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Is there any other way to handle this problem ?. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> [1] - http://stackoverflow.com/que >>>>>>>>>>>>>>>> stions/13278773/null-vs-empty-string-in-oracle >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thanks >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> *Tharindu Dharmarathna*Software Engineer >>>>>>>>>>>>>>>> WSO2 Inc.; http://wso2.com >>>>>>>>>>>>>>>> lean.enterprise.middleware >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> mobile: *+94779109091 <+94%2077%20910%209091>* >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> *Tharindu Dharmarathna*Software Engineer >>>>>>>>>>>>>>> WSO2 Inc.; http://wso2.com >>>>>>>>>>>>>>> lean.enterprise.middleware >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> mobile: *+94779109091 <+94%2077%20910%209091>* >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>> Uvindra >>>>>>>>>>>>>> >>>>>>>>>>>>>> Mobile: 777733962 >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Thanks and Regards, >>>>>>>>>>>>> >>>>>>>>>>>>> Isuru H. >>>>>>>>>>>>> +94 716 358 048 <+94%2071%20635%208048>* <http://wso2.com/>* >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> Dev mailing list >>>>>>>>>>>>> [email protected] >>>>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> *Lahiru Cooray* >>>>>>>>>>>> Software Engineer >>>>>>>>>>>> WSO2, Inc.;http://wso2.com/ >>>>>>>>>>>> lean.enterprise.middleware >>>>>>>>>>>> >>>>>>>>>>>> Mobile: +94 715 654154 <+94%2071%20565%204154> >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> Dev mailing list >>>>>>>>>>>> [email protected] >>>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Darshana Akalanka Pagoda Arachchi,* >>>>>>>>>>> *Senior Software Engineer, WSO2* >>>>>>>>>>> *+94777118016 <+94%2077%20711%208016>* >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Dev mailing list >>>>>>>>>>> [email protected] >>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Regards, >>>>>>>>>> Uvindra >>>>>>>>>> >>>>>>>>>> Mobile: 777733962 >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Regards, >>>>>>>>> Uvindra >>>>>>>>> >>>>>>>>> Mobile: 777733962 >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Dev mailing list >>>>>>>>> [email protected] >>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Madhawa Gunasekara* >>>>>>>> Software Engineer >>>>>>>> WSO2 Inc.; http://wso2.com >>>>>>>> lean.enterprise.middleware >>>>>>>> >>>>>>>> mobile: +94 719411002 <+94+719411002> >>>>>>>> blog: *http://madhawa-gunasekara.blogspot.com >>>>>>>> <http://madhawa-gunasekara.blogspot.com>* >>>>>>>> linkedin: *http://lk.linkedin.com/in/mgunasekara >>>>>>>> <http://lk.linkedin.com/in/mgunasekara>* >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Darshana Akalanka Pagoda Arachchi,* >>>>>>> *Senior Software Engineer, WSO2* >>>>>>> *+94777118016 <+94%2077%20711%208016>* >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Dev mailing list >>>>>>> [email protected] >>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Malintha Amarasinghe >>>>>> Software Engineer >>>>>> *WSO2, Inc. - lean | enterprise | middleware* >>>>>> http://wso2.com/ >>>>>> >>>>>> Mobile : +94 712383306 <+94%2071%20238%203306> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> *Darshana Akalanka Pagoda Arachchi,* >>>>> *Senior Software Engineer, WSO2* >>>>> *+94777118016 <+94%2077%20711%208016>* >>>>> >>>>> _______________________________________________ >>>>> Dev mailing list >>>>> [email protected] >>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>> >>>>> >>>> >>> >>> >>> -- >>> Malintha Amarasinghe >>> Software Engineer >>> *WSO2, Inc. - lean | enterprise | middleware* >>> http://wso2.com/ >>> >>> Mobile : +94 712383306 <071%20238%203306> >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> *Bhathiya Jayasekara* >> *Senior Software Engineer,* >> *WSO2 inc., http://wso2.com <http://wso2.com>* >> >> *Phone: +94715478185 <+94%2071%20547%208185>* >> *LinkedIn: http://www.linkedin.com/in/bhathiyaj >> <http://www.linkedin.com/in/bhathiyaj>* >> *Twitter: https://twitter.com/bhathiyax <https://twitter.com/bhathiyax>* >> *Blog: http://movingaheadblog.blogspot.com >> <http://movingaheadblog.blogspot.com/>* >> > > > > -- > Malintha Amarasinghe > Software Engineer > *WSO2, Inc. - lean | enterprise | middleware* > http://wso2.com/ > > Mobile : +94 712383306 <+94%2071%20238%203306> > -- *Bhathiya Jayasekara* *Senior Software Engineer,* *WSO2 inc., http://wso2.com <http://wso2.com>* *Phone: +94715478185* *LinkedIn: http://www.linkedin.com/in/bhathiyaj <http://www.linkedin.com/in/bhathiyaj>* *Twitter: https://twitter.com/bhathiyax <https://twitter.com/bhathiyax>* *Blog: http://movingaheadblog.blogspot.com <http://movingaheadblog.blogspot.com/>*
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
