Enable field transforms to be named with a schema; is_identifier()
authordbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 15 Apr 2009 03:20:32 +0000 (03:20 +0000)
committerdbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 15 Apr 2009 03:20:32 +0000 (03:20 +0000)
was being a bit too strict and killing perfectly good calls to
functions like "permission.usr_has_perm"

git-svn-id: svn://svn.open-ils.org/ILS/trunk@12873 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/c-apps/oils_cstore.c

index c79051a..7f4ab4b 100644 (file)
@@ -2673,6 +2673,8 @@ char* SELECT (
        // metadata about the core search class
        osrfHash* core_meta = NULL;
 
+       osrfLogDebug(OSRF_LOG_MARK, "cstore SELECT locale: %s", locale);
+
        // punt if there's no core class
        if (!join_hash || ( join_hash->type == JSON_HASH && !join_hash->size )) {
                osrfLogError(
@@ -4800,13 +4802,15 @@ static int is_identifier( const char* s) {
 
        // Check each character until we reach white space or
        // end-of-string.  Letters, digits, underscores, and 
-       // dollar signs are okay.  Control characters and other
+       // dollar signs are okay. With the exception of periods
+       // (as in schema.identifier), control characters and other
        // punctuation characters are not okay.  Anything else
        // is okay -- it could for example be part of a multibyte
        // UTF8 character such as a letter with diacritical marks,
        // and those are allowed.
        do {
                if( isalnum( (unsigned char) *s )
+                       || '.' == *s
                        || '_' == *s
                        || '$' == *s )
                        ;  // Fine; keep going