SQLite Forum

Compile error when symbols SQLITE_OMIT_SHARED_CACHE and SQLITE_USER_AUTHENTICATION=1 are both defined
Login
After inspecting the code in more detail, I get the impression that the fix for the compile issue I have is rather simple. If `SQLITE_OMIT_SHARED_CACHE` is **not** defined, then no tables will be locked and therefore the member `nTableLock` would be always 0. That is, lines 187 ff in `build.c` would not be executed at all:

```c
#if SQLITE_USER_AUTHENTICATION
    if( pParse->nTableLock>0 && db->init.busy==0 ){
      sqlite3UserAuthInit(db);
      if( db->auth.authLevel<UAUTH_User ){
        sqlite3ErrorMsg(pParse, "user not authenticated");
        pParse->rc = SQLITE_AUTH_USER;
        return;
      }
    }
#endif
```

That is, adding a check for symbol `SQLITE_OMIT_SHARED_CACHE` should fix the issue:

```c
#ifndef SQLITE_OMIT_SHARED_CACHE
#if SQLITE_USER_AUTHENTICATION
    if( pParse->nTableLock>0 && db->init.busy==0 ){
      sqlite3UserAuthInit(db);
      if( db->auth.authLevel<UAUTH_User ){
        sqlite3ErrorMsg(pParse, "user not authenticated");
        pParse->rc = SQLITE_AUTH_USER;
        return;
      }
    }
#endif
#endif
```

It would be nice if the SQLite developer would consider to apply this modification for the next SQLite version. Thanks in advance.