While upgrading to beta6-version (and also to latest -dev-version), I got the following message:

PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table '.views_data_export_index_194' doesn't exist: SELECT COUNT(*) FROM {views_data_export_index_194}; Array ( ) in views_data_export_plugin_display_export->execute_initial() (line 264 of ..\plugins\views_data_export_plugin_display_export.inc).

Finally, i found out my main displays and VDE-displays are cached.
The solution was to disable the cache for the VDE-display. The main display can still have its cache.

Is there a way to avoid this error, or to disable the cache always?

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

johnv’s picture

Status: Active » Postponed (maintainer needs more info)

I think the following patch is to blame: #1606292: Share result-cache between displays with same results and different output . It makes the VDE-display to use the cache of the main display.

Steven, I don't think you can do anything for that, i'll just disable caching for now.

Steven Jones’s picture

Status: Postponed (maintainer needs more info) » Active

Yeah, we should try to stop people using caching on the data export displays until we know if they can handle them.

Steven Jones’s picture

Status: Active » Needs review
FileSize
953 bytes

Here's a patch that disables selecting a caching plugin in the UI.

Steven Jones’s picture

Status: Needs review » Fixed

Patch committed to 7.x-3.x

johnv’s picture

Status: Fixed » Needs work
FileSize
1.47 KB

Thanks for your quick reply.
The solution is not complete, however.

Suppose a View with 3 displays: the Master display, a Page display and a VDE-display.
1. without cache, all is well.
2. if user enables a cache 'for all displays' on Master or Page display, the VDE display generates the Error, with or without the patch #3.
3. So, user needs to disable the cache on VDE-display. He may disable this for 'all displays' (wrong) or for 'this display' (better).

Point 2. should be avoided, and is currently lacking. Attached patch generates a cleaner form, removing all illegal options.

IMO the best way would be to set the 'overridden none-cache' option at every new display, or even at every already-existing display.

Steven Jones’s picture

Lame! All good points.

Steven Jones’s picture

Status: Needs work » Needs review
FileSize
876 bytes

This is properly heavy handed: we force VDE displays to never support caching. Sorry that that isn't going to work for your use-case, and that you'll need to subclass the display to be able to use a cache plugin with the display, but I think we have to do this.

Steven Jones’s picture

This is properly heavy handed: we force VDE displays to never support caching. Sorry that that isn't going to work for your use-case, and that you'll need to subclass the display to be able to use a cache plugin with the display, but I think we have to do this.

Steven Jones’s picture

Status: Needs review » Fixed

I've decided that for now, that is the best solution.

Committed to 7.x-3.x.

johnv’s picture

OK. Thanks.

// but it causes too many issues for our workflow.

Do you have more caching issues?

Steven Jones’s picture

Well not specifically, but I'm not sure how caching should work with a data export view really.

After the 'big refactor' we can revisit and see if we can incorporate some more caching in there somewhere.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.