According to this blog post <meta charset="utf-8"><a href="http://mysqldatabaseadministration.blogspot.com/2006/09/case-sensitive-mysql.html">http://mysqldatabaseadministration.blogspot.com/2006/09/case-sensitive-mysql.html</a><div>
<a href="http://mysqldatabaseadministration.blogspot.com/2006/09/case-sensitive-mysql.html"></a>for MySQL, we can specify a collation at database creation<br><br><div class="gmail_quote">On Tue, May 11, 2010 at 10:30 AM, Thomas Heute <span dir="ltr"><<a href="mailto:theute@redhat.com">theute@redhat.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div text="#000000" bgcolor="#ffffff"><div class="im">
On 05/11/2010 10:25 AM, Nicolas Filotto wrote:
<blockquote type="cite">Unfortunately, changing from
VARCHAR to
VARBINARY is just impossible at this stage since several versions of
eXo JCR 1.12 have already been released and those version would then be
incompatible. Moreover, I'm pretty sure that it will create side
effects more painful than case sensitivity issues.
<div><br>
</div>
<div>The only way to solve this problem is to specify clearly in the
doc that the database must be case insensitive.<br>
</div>
</blockquote></div>
Can this be set at DB level ? I thought it was at table level ? And
since tables are created by JCR it's a bit tricky.<br>
<br>
We're going without any change, it's not as bad as I originally thought
it was, I'm still curious about the possibilities though.<div><div></div><div class="h5"><br>
<br>
<blockquote type="cite">
<div><br>
<div class="gmail_quote">On Mon, May 10, 2010 at 8:44 PM, Matthew
Wringe <span dir="ltr"><<a href="mailto:mwringe@redhat.com" target="_blank">mwringe@redhat.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">
<div>
<div>On Fri, 2010-05-07 at 19:16 -0400, Matthew Wringe
wrote:<br>
> On Thu, 2010-05-06 at 22:49 +0200, Thomas Heute wrote:<br>
> ><br>
> > The great MySQL and MSSQL made that choice that tables (by
default) are<br>
> > made case insensitive.<br>
> > Meaning that 'foobar' is the same as 'FooBar'.<br>
> > Today if you create a portal or a page 'toto' and then 'tOtO'
it will<br>
> > work for other databases but for MySQL or MSSQL it will fail.<br>
><br>
> Page names that vary only in case work fine for me with MySQL, but
I do<br>
> experience the problem with portal names.<br>
><br>
> > We should prevent to have 2 portal names that are the same
(case<br>
> > insensitive). We can't do a simple JCR query (AFAIK) to
verify if 2<br>
> > portal names are the same (case insensitive), unless we try
and catch an<br>
> > error. But the error would only happen for those 2 and would
potentially<br>
> > make a migration from 1 DB to another difficult since they
would react<br>
> > differently.<br>
><br>
> The problem is that we have a field name which as part of it
contains<br>
> the portal name, and MySQL is converting this into lower case. This<br>
> doesn't actually store the portal name, and its not used as a key
(nor<br>
> is it set as unique).<br>
><br>
> I created a quick hack in the jcr that would allow for it to get<br>
> multiple values back from the sql query and check them to return
only<br>
> the correct result.<br>
><br>
> This appears to work, and it gives the correct error messages about<br>
> portals existing or not. BUT, there is some unique index restraint
setup<br>
> somewhere which is preventing me from saving the data back to the<br>
> database :(<br>
><br>
> > The other option is to transform all ids to lowercase before
storing in<br>
> > Database so we are safe with all database. I actually think
it would be<br>
> > a good practice as those ids appear in the URL which are
usually all in<br>
> > lowercase.<br>
><br>
> The urls are not in lowercase though, if we want to access the
'classic'<br>
> or 'CLASSIC' portal, we can't have the url all in lowercase.<br>
><br>
> > Or if anyone think about any other option ?<br>
><br>
> Is there not some sort of case sensitive mode in MySQL that we can
have<br>
> as a requirement for use with GateIn? The user already needs to
setup<br>
> and configure the db anyways.<br>
<br>
</div>
</div>
We can easily change this by making the table use VARBINARY for the<br>
field instead of VARCHAR. There is a jira for here<br>
<a href="https://jira.jboss.org/jira/browse/JBEPP-334" target="_blank">https://jira.jboss.org/jira/browse/JBEPP-334</a>
with a patch attached.<br>
Someone working on the JCR will need to make this change.<br>
<div>
<div><br>
><br>
> > Thomas.<br>
> > _______________________________________________<br>
> > gatein-dev mailing list<br>
> > <a href="mailto:gatein-dev@lists.jboss.org" target="_blank">gatein-dev@lists.jboss.org</a><br>
> > <a href="https://lists.jboss.org/mailman/listinfo/gatein-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/gatein-dev</a><br>
><br>
><br>
> _______________________________________________<br>
> gatein-dev mailing list<br>
> <a href="mailto:gatein-dev@lists.jboss.org" target="_blank">gatein-dev@lists.jboss.org</a><br>
> <a href="https://lists.jboss.org/mailman/listinfo/gatein-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/gatein-dev</a><br>
<br>
<br>
_______________________________________________<br>
gatein-dev mailing list<br>
<a href="mailto:gatein-dev@lists.jboss.org" target="_blank">gatein-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/gatein-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/gatein-dev</a><br>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<br>
-- <br>
Nicolas Filotto<br>
JCR Product Manager<br>
Project Manager<br>
eXo Platform SAS<br>
<a href="mailto:nicolas.filotto@exoplatform.com" target="_blank">nicolas.filotto@exoplatform.com</a><br>
+33 (0)6 31 32 92 19 <br>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br><br clear="all"><br>-- <br>Nicolas Filotto<br>JCR Product Manager<br>Project Manager<br>eXo Platform SAS<br><a href="mailto:nicolas.filotto@exoplatform.com">nicolas.filotto@exoplatform.com</a><br>+33 (0)6 31 32 92 19 <br>
</div>