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. 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* *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
