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?
Comments
Comment #1
johnvI 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.
Comment #2
steven jones commentedYeah, we should try to stop people using caching on the data export displays until we know if they can handle them.
Comment #3
steven jones commentedHere's a patch that disables selecting a caching plugin in the UI.
Comment #4
steven jones commentedPatch committed to 7.x-3.x
Comment #5
johnvThanks 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.
Comment #6
steven jones commentedLame! All good points.
Comment #7
steven jones commentedThis 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.
Comment #8
steven jones commentedThis 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.
Comment #9
steven jones commentedI've decided that for now, that is the best solution.
Committed to 7.x-3.x.
Comment #10
johnvOK. Thanks.
Do you have more caching issues?
Comment #11
steven jones commentedWell 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.