We discussed this on yesterday's Design Forum/Call.
https://wiki.openmrs.org/display/RES/Design+Forum
http://notes.openmrs.org/Design-Forum-2011-09-07

I was unable to come up with a reason other than "the dev made a
mistake and wants to undo it".

We came to the conclusion that "case insensitive + case preserving"
should be the way forward for global properties.

I created this ticket for the work:
https://tickets.openmrs.org/browse/TRUNK-2644

Ben

On Tue, Sep 6, 2011 at 5:18 PM, Darius Jazayeri <[email protected]> wrote:
> Ben,
> Can you give an example where having case-sensitive global property names
> would be useful?
> (Personally I think that having "formentry.propertyA" and
> "FormEntry.propertyA" be two different properties is actively bad, and there
> are no cases where it'd be useful.)
> -Darius
>
> On Tue, Sep 6, 2011 at 1:49 PM, Friedman, Roger (CDC/CGH/DGHA) (CTR)
> <[email protected]> wrote:
>>
>> Did some quick research, found the following:
>>
>> MySQL: default collating sequence is not case sensitive, but any text
>> column can be defined as case sensitive using the COLLATE clause; individual
>> expressions can be made case sensitive by using COLLATE in the expression
>>
>> Postgres: comparison is case sensitive, case insensitivity in WHERE
>> clauses achieved by using the LOWER() function; a supplied module provides
>> the case-insensitive CITEXT datatype, which is more efficient because a
>> CITEXT column can be indexed
>>
>> SQL Server: like MySQL
>>
>> Hibernate: there is no discussion of case sensitivity of text comparisons
>> in the HQL WHERE clause or Restrictions.eq() method; manual only states that
>> Criteria can be made case-insensitive via the .ignoreCase() method; there is
>> some unofficial information that Hibernate will use the underlying DB's
>> equal definition, some less reliable information that Hibernate will use the
>> Java equals method appropriate to the object.
>>
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]] On Behalf Of Ben Wolfe
>> Sent: Tuesday, September 06, 2011 2:52 AM
>> To: [email protected]
>> Subject: Re: [OPENMRS-DEV] OpenMRS 1.8.2 Released!
>>
>> I think the problem was that the api/hibernate was treating them as
>> case insensitive but mysql was treating them as sensitive.  So even if
>> you had restModule and restmodule as GPs, you could never update one
>> or the other.  But its been a year and a half and I've forgotten the
>> true reason.
>>
>> I do think we need to keep the column as case sensitive, but we should
>> use the solution suggested by Saptarshi instead of using a varbinary.
>>
>> Ben
>>
>> On Tue, Sep 6, 2011 at 1:32 AM, Burke Mamlin <[email protected]>
>> wrote:
>> > Yeah.  I can't remember the detail of TRUNK-94 and didn't do a decent
>> > job of
>> > describing it.  I think the problem was that global properties were only
>> > halfway case-sensitive. like you could find properties that didn't match
>> > by
>> > case, but couldn't change them.  I don't know.  It sure sounds like I'm
>> > asking for case-sensitive global properties.  I guess it's time for one
>> > my
>> > typical 180º turns. ;-)
>> > Case-insensitive global properties makes sense to me - i.e.,
>> > case-insenstive, case-preserving.
>> > -Burke
>> >
>> > On Sun, Sep 4, 2011 at 9:58 PM, Friedman, Roger (CDC/CGH/DGHA) (CTR)
>> > <[email protected]> wrote:
>> >>
>> >> But who wants all our comparisons to be case sensitive?
>> >>
>> >> I'm with Darius, we should undo TRUNK-94 and say global variable names
>> >> are
>> >> case-insensitive.
>> >>
>> >>
>> >>
>> >> From: [email protected] [mailto:[email protected]] On Behalf Of Saptarshi
>> >> Purkayastha
>> >> Sent: Friday, September 02, 2011 3:32 PM
>> >>
>> >> To: [email protected]
>> >> Subject: Re: [OPENMRS-DEV] OpenMRS 1.8.2 Released!
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> http://confluence.atlassian.com/display/JIRAKB/Unable+to+Delete+Workflow+Due+to+MySQL+Case+Sensitivity
>> >>
>> >>
>> >>
>> >> I've just tried their suggested way and it works. So, when creating the
>> >> database, if the collation is made to utf8_bin it all works fine.
>> >> Understands case-sensitivity without having to make the column
>> >> varbinary.
>> >>
>> >> ---
>> >> Regards,
>> >> Saptarshi PURKAYASTHA
>> >>
>> >> My Tech Blog:  http://sunnytalkstech.blogspot.com
>> >> You Live by CHOICE, Not by CHANCE
>> >>
>> >> On 22 July 2011 11:54, Ben Wolfe <[email protected]> wrote:
>> >>
>> >> IIRC, I tried that but mysql still didn't recognize it. The only way to
>> >> get it to be case insensitive was to change the column type.
>> >>
>> >> Ben
>> >>
>> >>
>> >>
>> >> On Fri, Jul 22, 2011 at 1:54 AM, Saptarshi Purkayastha
>> >> <[email protected]>
>> >> wrote:
>> >>
>> >> I always thought case-sensitivity was determined by the collation.
>> >>
>> >> latin_general_ci where ci = case insensitive
>> >>
>> >> OR
>> >>
>> >> latin_general_cs where cs = case sensitive
>> >>
>> >>
>> >>
>> >> I don't understand why we have to change to binary for this??
>> >>
>> >> ---
>> >> Regards,
>> >> Saptarshi PURKAYASTHA
>> >>
>> >> My Tech Blog:  http://sunnytalkstech.blogspot.com
>> >> You Live by CHOICE, Not by CHANCE
>> >>
>> >> On 22 July 2011 04:09, Darius Jazayeri <[email protected]> wrote:
>> >>
>> >> That sounds correct.
>> >>
>> >>
>> >>
>> >> -Darius
>> >>
>> >>
>> >>
>> >> PS- Burke, Ben, WTF is up with changing global_property.property to
>> >> varbinary to make global property names case-sensitive?
>> >> (https://tickets.openmrs.org/browse/TRUNK-94) I've been wondering why
>> >> global_property.property shows up oddly in mysql workbench. 15 months
>> >> later
>> >> I'd like to say that I disagree.
>> >>
>> >>
>> >>
>> >> On Thu, Jul 21, 2011 at 2:44 PM, Burke Mamlin <[email protected]>
>> >> wrote:
>> >>
>> >> Okay.  A diff of 1.6.2 to 1.8.2 liquibase-update-to-latest.xml shows
>> >> these
>> >> as the structural changes:
>> >>
>> >>
>> >>
>> >> Added sort_weight column to concept_answers
>> >> Renamed location_tag.tag to location_tag.name
>> >> Changed global_property.property to varbinary(255)
>> >> Switched boolean concepts to be stored as coded instead of numeric
>> >> values
>> >> Encounter & obs location can now be null
>> >> Added active lists (active_list, active_list_type, active_list_allergy,
>> >> &
>> >> active_list_problem tables)
>> >> Changed how concept names are handled
>> >>
>> >> Added concept_name.concept_name_type
>> >> Added concept_name.locale_preferred
>> >> Preferred names become "fully specified" names
>> >>
>> >> Require person_name.person_id
>> >> Added location_id column to patient_program table
>> >> Removed unused column (default_charge) from concept
>> >> Switched to generic address columns (address3, address4, address5,
>> >> address6)
>> >> Added weight column to concept_word (not sure why that wasn't
>> >> sort_weight)
>> >> Removed concept_derived table
>> >>
>> >> @Ben/Darius - does that sound more correct?
>> >>
>> >>
>> >>
>> >> Cheers,
>> >>
>> >>
>> >>
>> >> -Burke
>> >>
>> >>
>> >>
>> >> On Thu, Jul 21, 2011 at 3:48 PM, Ben Wolfe <[email protected]> wrote:
>> >>
>> >> I think you've missed some things in there Burke.  1.6.2 came out after
>> >> 1.7.0, so there are a lot of commits before 17887 that need to be
>> >> included.
>> >>
>> >> I can't think of an easy way to do this automatically unless we start
>> >> keeping a separate liquibase changelog file for each release...but then
>> >> there a whole host of other problems with that.
>> >>
>> >> Visits are not in 1.8.2, are they?  Same with form_resource...  I think
>> >> those are in because 1.8.2's revision number comes after a lot of
>> >> commits to
>> >> trunk (1.9).
>> >>
>> >> I think what you have to do is take the 1.8.2
>> >> liquibase-update-to-latest.xml and comare it to the 1.6.2
>> >> liquibase-update-to-latest.xml with a diff program.
>> >>
>> >> Ben
>> >>
>> >> On Thu, Jul 21, 2011 at 10:30 PM, Burke Mamlin
>> >> <[email protected]>
>> >> wrote:
>> >>
>> >> Looking at changes to liquibase-update-to-latest.xml from revision
>> >> 17887
>> >> (1.6.2) to revision 21762 (1.8.2), I see these changes:
>> >>
>> >> Added patient_identifier_type.location_behavior
>> >> patient_identifier.location_id can now be null.
>> >> Added start_date and end_date to person_address
>> >> Removed date_started & date_stopped from obs
>> >> Added a form_resource table and moved form's xslt & template columns to
>> >> it
>> >> Added visits (visit, visit_type, visit_attribute, &
>> >> visit_attribute_type
>> >> tables)
>> >> Added start & end dates to relationships
>> >>
>> >> -Burke
>> >>
>> >>
>> >>
>> >> On Thu, Jul 21, 2011 at 2:20 PM, Yeung, Ada K. <[email protected]>
>> >> wrote:
>> >>
>> >> Thanks for the update and release of 1.8.2!
>> >>
>> >>
>> >>
>> >> I would like to know the difference between the 1.6 data model and 1.8
>> >> data model.  I can't find such info on the released notes.  Also, when
>> >> will
>> >> 1.8 data model be available on OpenMRS wiki?
>> >>
>> >>
>> >>
>> >> --Ada
>> >>
>> >>
>> >>
>> >> From: [email protected] [mailto:[email protected]] On Behalf Of Wyclif
>> >> Luyima
>> >> Sent: Wednesday, July 20, 2011 6:40 PM
>> >> To: [email protected]
>> >> Subject: [OPENMRS-DEV] OpenMRS 1.8.2 Released!
>> >>
>> >>
>> >>
>> >> Hello everyone,
>> >>
>> >>
>> >>
>> >> We are proud to announce that the maintenance release OpenMRS 1.8.2 is
>> >> now
>> >> available.
>> >>
>> >> This is a maintenance release in the OpenMRS 1.8.x line, specifically
>> >> to
>> >> fix a high-priority bug introduced in 1.8.1. If you are currently
>> >> running
>> >> 1.8.1, we recommend that you upgrade as soon as possible. There are no
>> >> database changes between OpenMRS 1.8.1 and OpenMRS 1.8.2. It is fully
>> >> backwards and forwards compatible.
>> >>
>> >> The three bug fixes in this release are:
>> >>
>> >> (Major) The "last 3 encounters" box on the form entry tab of the
>> >> patient
>> >> dashboard was actually showing the first 3 encounters.
>> >> The concept statistics page was fixed to display statistics for numeric
>> >> concepts.
>> >> Resolved Conflicting ASM Library
>> >>
>> >>
>> >>
>> >> We recommend upgrading to 1.8.2 for those with an existing installation
>> >> of
>> >> OpenMRS.
>> >>
>> >>
>> >>
>> >> Download: OpenMRS 1.8.2 Download.
>> >>
>> >>
>> >>
>> >> Release Notes: OpenMRS 1.8.2 Release Notes
>> >>
>> >>
>> >>
>> >> Thanks to everyone who has contributed to making this release a
>> >> success.
>> >>
>> >>
>> >>
>> >> Kind Regards
>> >>
>> >>
>> >>
>> >> -Wyclif
>> >>
>> >>
>> >>
>> >> ________________________________
>> >>
>> >> Click here to unsubscribe from OpenMRS Developers' mailing list
>> >>
>> >>
>> >>
>> >> ________________________________
>> >>
>> >> Click here to unsubscribe from OpenMRS Developers' mailing list
>> >>
>> >>
>> >>
>> >> ________________________________
>> >>
>> >> Click here to unsubscribe from OpenMRS Developers' mailing list
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> ________________________________
>> >>
>> >> Click here to unsubscribe from OpenMRS Developers' mailing list
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> ________________________________
>> >>
>> >> Click here to unsubscribe from OpenMRS Developers' mailing list
>> >
>> > ________________________________
>> > Click here to unsubscribe from OpenMRS Developers' mailing list
>>
>> _________________________________________
>>
>> To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to
>> [email protected] with "SIGNOFF openmrs-devel-l" in the  body (not
>> the subject) of your e-mail.
>>
>> [mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l]
>>
>> _________________________________________
>>
>> To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to
>> [email protected] with "SIGNOFF openmrs-devel-l" in the  body (not
>> the subject) of your e-mail.
>>
>> [mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l]
>
> ________________________________
> Click here to unsubscribe from OpenMRS Developers' mailing list

_________________________________________

To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to 
[email protected] with "SIGNOFF openmrs-devel-l" in the  body (not 
the subject) of your e-mail.

[mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l]

Reply via email to