[cgi-wiki-dev] A patch for CGI::Wiki::Store::Database.pm

Ivor Williams cgi-wiki-dev@earth.li
Sun, 2 Nov 2003 13:08:56 -0000


Kake,

Some of the work I will be doing on the search for OpenGuides necessitates
an enhancement to the method list_nodes_by_metadata. This will enable SQL
LIKE type matches. Patch follows:

--- database.pm.orig 
+++ database.pm 
@@ -785,1 +785,2 @@
-         $self->_get_list_by_metadata_sql( ignore_case => $args{ignore_case} );
+         $self->_get_list_by_metadata_sql( match_type => $match,
+      ignore_case => $args{ignore_case} );
@@ -797,0 +798,6 @@
+
+    my ($self,%args) = @_;
+    my $match = $args{match_type} || '=';
+    
+    croak "SQL match type must be LIKE or '='" unless $match =~ /=|like/i;
+    
@@ -801,1 +808,1 @@
-         . " AND metadata.metadata_value = ? ";
+         . " AND metadata.metadata_value $match ? ";

By the way, I've completed the tidying up of SuperSearch.pm; I'm happy for it to be released in its present form.

Ivor.