On Sunday August 14 2005 18:38, Nezar Nielsen wrote:
> On 8/13/05, Robert Johnston <[EMAIL PROTECTED]> wrote:
> > Is it not possible, during searches, to do "UPPER()"'s on both Search
> > terms and the field they're searching on, to make them case
> > insensitive again. So, for example:
> > 
> > SELECT program_name, description WHERE (UPPER(program_name) LIKE
> > UPPER('%Search String%')) OR (UPPER(description) LIKE UPPER('%Search
> > String%'))
> 
> If you want to do a case-insensitive LIKE in pgsql, you just go:
> 
> SELECT field FROM table WHERE column ilike '%sEaRcH%'
> 
> 
> Also, if you want to do bulk-inserts, use:
> 
> COPY table (id, column) FROM stdin;
> 1     firstrow
> 2     secondrow
> 3     thirdrow
> \.

I have been trying to keep the code as-is, with as little modification as 
possible.  Since ilike is not portable and lower() is, I will probably 
implement it that way, thus keeping the same statement, regardless of DBMS.  It 
is not a small task, since it involves tracking down every use of like or = on 
a string type, which is scattered through several joins and wheres throughout 
the code.  I will get to it at some point, unless someone else wants to give it 
a shot, but I wanted to get a patch out with the DB helper functions before my 
copy diverged too greatly from svn.  

That's a good point about the bulk inserts, but the code as-is works something 
along the lines of "insert into <table> (columns) select <columns> from <really 
long join> where <somewhat shorter where clause>".  However, aside from 
mythfilldatabase, most of the bulk inserts are in the scheduler.  I have been 
investigating ways to make the tables used by the scheduler, like recordmatch, 
into views, hopefully making life simpler.  The snag I have hit on that one is 
the numeric constants for the record types are stored in the compiled code and 
not in the DB.  I have not found a satisfactory solution to this, but I am open 
to suggestions.

I hope these responses aren't coming off as too argumentative.  I do appreciate 
everyone's comments and am working to make support for different DBMSs as easy 
as possible.  To that end, I am trying to make the DB backend as DB agnostic as 
possible.  One of the goals is that to add another database to the supported DB 
list, a developer would only have to modify libs/libmythtv/dbhelper.cpp to 
provide support, then add it to the list for the user to select it.

-- 
Thanks,
Fernando Vilas
[EMAIL PROTECTED]
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to