Project

General

Profile

Actions

Bug #58180

closed

Database query error for non-workspaces tables

Added by rengaw83 over 10 years ago. Updated about 6 years ago.

Status:
Closed
Priority:
Must have
Assignee:
-
Category:
Workspaces
Target version:
-
Start date:
2014-04-25
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
6.1
PHP Version:
Tags:
Complexity:
easy
Is Regression:
Yes
Sprint Focus:

Description

When i have to check if a record exists and is accessible, i do that with the checkRecord method in the page repository:

/* @var $sysPage \TYPO3\CMS\Frontend\Page\PageRepository */
$sysPage = $GLOBALS['TSFE']->sys_page;
$sysPage->checkRecord('tx_extension_table', $uid, 1);

It the Table is not localizable or verionable and you are in a versioning preview, the following error occurs:
caller     TYPO3\CMS\Core\Database\DatabaseConnection::exec_SELECTquery
ERROR     Unknown column 't3ver_oid' in 'where clause'
lastBuiltQuery     SELECT uid,pid,tstamp,crdate,hidden,starttime,endtime,sorting,fe_group,title,title_lang_ol,image,shortcut,shortcut_target,deleted,single_pid,parent_category,description FROM tt_news_cat WHERE pid=-1 AND t3ver_oid=1 AND t3ver_wsid=1 AND tt_news_cat.deleted=0 LIMIT 1
debug_backtrace     require(index_t3.php),index.php#37 // require(typo3\sysext\cms\tslib\index_ts.php),index_t3.php#41 // TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->INTincScript#204 // TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->recursivelyReplaceIntPlaceholdersInContent#3425 // TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->INTincScript_process#3451 // TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->USER#3503 // TYPO3\CMS\Frontend\ContentObject\UserContentObject->render#905 // TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->callUserFunction#55 // call_user_func_array#6439 // tx_ttnews->main_news# // tx_ttnews->initCategoryVars#188 // tx_ttnews_helpers->checkRecords#3733 // TYPO3\CMS\Frontend\Page\PageRepository->checkRecord#104 // TYPO3\CMS\Frontend\Page\PageRepository->versionOL#713 // TYPO3\CMS\Frontend\Page\PageRepository->getWorkspaceVersionOfRecord#1039 // TYPO3\CMS\Core\Database\DatabaseConnection->exec_SELECTgetSingleRow#1164 // TYPO3\CMS\Core\Database\DatabaseConnection->exec_SELECTquery#400 // TYPO3\CMS\Core\Database\DatabaseConnection->debug#297

The Problem here ist, that the method versionOL is called, without a check for versionable table.

A good example ist the 'tt_news_cat'' table of the tt_news extension.
See #57187

The same problem orrurs on the cObjGetSingle call for the rendering:

exec_SELECTquery
caller     TYPO3\CMS\Core\Database\DatabaseConnection::exec_SELECTquery
ERROR     Unknown column 't3ver_oid' in 'where clause'
lastBuiltQuery     SELECT uid,pid,tstamp,crdate,hidden,starttime,endtime,sorting,fe_group,title,title_lang_ol,image,shortcut,shortcut_target,deleted,single_pid,parent_category,description FROM tt_news_cat WHERE pid=-1 AND t3ver_oid=7 AND t3ver_wsid=1 AND tt_news_cat.deleted=0 LIMIT 1
debug_backtrace     require(index_t3.php),index.php#37 // require(typo3\sysext\cms\tslib\index_ts.php),index_t3.php#41 // TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->INTincScript#204 // TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->recursivelyReplaceIntPlaceholdersInContent#3425 // TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->INTincScript_process#3451 // TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->USER#3503 // TYPO3\CMS\Frontend\ContentObject\UserContentObject->render#905 // TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->callUserFunction#55 // call_user_func_array#6439 // tx_ttnews->main_news# // tx_ttnews->displayList#206 // tx_ttnews->getListContent#726 // tx_ttnews->getItemMarkerArray#1036 // tx_ttnews->getGenericMarkers#1761 // TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->cObjGetSingle#1918 // TYPO3\CMS\Frontend\ContentObject\RecordsContentObject->render#739 // TYPO3\CMS\Frontend\Page\PageRepository->versionOL#82 // TYPO3\CMS\Frontend\Page\PageRepository->getWorkspaceVersionOfRecord#1039 // TYPO3\CMS\Core\Database\DatabaseConnection->exec_SELECTgetSingleRow#1164 // TYPO3\CMS\Core\Database\DatabaseConnection->exec_SELECTquery#400 // TYPO3\CMS\Core\Database\DatabaseConnection->debug#297

The Problem here ist the same of the checkRecord call.

I am not shure, but i think a check for versioning in the ctrl section of the TCA should solve the problem


Related issues 1 (0 open1 closed)

Related to TYPO3 Core - Task #30604: Remove unsupported functions and options related to versioning/workspacesClosedBenni Mack2011-10-06

Actions
Actions

Also available in: Atom PDF