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
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
>
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users