This was a problem for me too.  I just chalked it up to deleting options 
and using the amalgamated source.  (Seem to recall reading that this is 
not recommended.)

Replace:

SQLITE_PRIVATE void sqlite3MaterializeView(Parse*, Select*, Expr*, u32, 
int);

with:

#if !defined(SQLITE_OMIT_VIEW) && !defined(SQLITE_OMIT_TRIGGER)
SQLITE_PRIVATE void sqlite3MaterializeView(Parse*, Select*, Expr*, u32, 
int);
#else   /* #if !defined(SQLITE_OMIT_VIEW) && 
!defined(SQLITE_OMIT_TRIGGER) */
#  define sqlite3MaterializeView(A,B,C,D,E)     0
#endif  /* #if !defined(SQLITE_OMIT_VIEW) && 
!defined(SQLITE_OMIT_TRIGGER) */

or equivalent.  As I recall, this function is called from within an if 
block whose condition (because of the #defines) will never be true.  For 
those of us who must live with the MSFT compilers, this is a problem.

Richard Klein wrote:
> I fixed my OPTS in the Makefile so that they are in sync
> with my compilation options.
>
> Now all the unresolved references in the parser have dis-
> appeared, but I'm still left with two unresolved references
> to the function sqlite3MaterializeView():
>
> delete.obj : error LNK2019: unresolved external symbol 
> _sqlite3MaterializeView referenced in function _sqlite3DeleteFrom
> update.obj : error LNK2019: unresolved external symbol 
> _sqlite3MaterializeView referenced in function _sqlite3Update
>
> The function sqlite3MaterializeView() is defined in the
> file delete.c, as follows:
>
> ------------------------------------------------------------------------
> #if !defined(SQLITE_OMIT_VIEW) && !defined(SQLITE_OMIT_TRIGGER)
> /*
> ** Evaluate a view and store its result in an ephemeral table.  The
> ** pWhere argument is an optional WHERE clause that restricts the
> ** set of rows in the view that are to be added to the ephemeral table.
> */
> void sqlite3MaterializeView(
>    ...
> ){
>    ...
> }
> #endif /* !defined(SQLITE_OMIT_VIEW) && !defined(SQLITE_OMIT_TRIGGER) */
> ------------------------------------------------------------------------
>
> In my application, I've defined SQLITE_OMIT_VIEW, but *not*
> SQLITE_OMIT_TRIGGER; that is, I want TRIGGERs, but not VIEWs.
>
> It would seem that in the conditional compilation expression
> shown above, the && should be replaced by ||:
>
> #if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_TRIGGER)
>
> In other words, if VIEW *or* TRIGGER is supported, then define
> the function sqlite3MaterializeView().
>
> Making that change fixes the problem.
>
> - Richard
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
>   

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to