Ошибка при листании страниц, если в модуле views в связях используется поле содержимое:votes result

Главные вкладки

Аватар пользователя denis.pimenov denis.pimenov 21 ноября 2013 в 22:40

прицеплен модуль голосования. в превью к материалам отображаются "лайки". с первой страницей проблем нет, но со второй страницей всё плохо.
вот результат работы скрипта:
•SQLSTATE[42000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near the keyword 'function'.

вот сам скрипт
SELECT * FROM (
SELECT sub2.*, ROW_NUMBER() OVER(ORDER BY sub2.__line2) AS __line3 FROM (
SELECT 1 AS __line2, sub1.* FROM (SELECT TOP(18) node_comment_statistics.[comment_count] AS [node_comment_statistics_comment_count], votingapi_cache_node_points_average.[value] AS [votingapi_cache_node_points_average_value], node.[nid] AS [nid], node.[title] AS [node_title], node.[language] AS [node_language], users_node.[name] AS [users_node_name], users_node.[uid] AS [users_node_uid], node.[created] AS [node_created], 'node' AS field_data_field_picture_preview_node_entity_type
FROM
{node} node
LEFT JOIN {users} users_node ON node.uid = users_node.uid
LEFT JOIN {votingapi_cache} votingapi_cache_node_points_average ON node.nid = votingapi_cache_node_points_average.entity_id AND (votingapi_cache_node_points_average.entity_type = 'node' AND votingapi_cache_node_points_average.value_type = 'points' AND votingapi_cache_node_points_average.function = 'average')
INNER JOIN {node_comment_statistics} node_comment_statistics ON node.nid = node_comment_statistics.nid
WHERE ( (( ([node].[status] = '1') AND ([node].[type] IN ('pictures')) )) )
ORDER BY node_created DESC) AS sub1
) as sub2
) AS sub3
WHERE __line3 BETWEEN 10 AND 18

в связи настроена функция агрегирования, если её отключить, то страницы работают, но появляется большое количество копий. ЕСли включить, то копии пропадают, но и постраничная навигация не работает (ссылка на переход есть, но после перехода не отображаются материалы.

Доп инфо.
drupal 7
IIS 7
ms sql 2008
windows 2008 r

Можете помочь с решением этой проблемы?

Комментарии

Аватар пользователя denis.pimenov denis.pimenov 21 ноября 2013 в 23:16

Линуксового админа нет, потому используем то, что знаем.
php - ориентируемся. И в случае необходимости, если подсказать, могу поправить.
Пока что, как вижу, ошибка в модуле votingAPI, который где-то не так формирует сиквельный запрос (вот этот:
SELECT TOP(9) node_comment_statistics.[comment_count] AS [node_comment_statistics_comment_count], votingapi_cache_node_points_average.[value] AS [votingapi_cache_node_points_average_value], node.[nid] AS [nid], node.[title] AS [node_title], node.[language] AS [node_language], users_node.[name] AS [users_node_name], users_node.[uid] AS [users_node_uid], node.[created] AS [node_created], 'node' AS field_data_field_picture_preview_node_entity_type
FROM
{node} node
LEFT JOIN {users} users_node ON node.uid = users_node.uid
LEFT JOIN {votingapi_cache} votingapi_cache_node_points_average ON node.nid = votingapi_cache_node_points_average.entity_id AND (votingapi_cache_node_points_average.entity_type = 'node' AND votingapi_cache_node_points_average.value_type = 'points' AND votingapi_cache_node_points_average.function = 'average')
INNER JOIN {node_comment_statistics} node_comment_statistics ON node.nid = node_comment_statistics.nid
WHERE ( (( ([node].[status] = '1') AND ([node].[type] IN ('pictures')) )) )
ORDER BY node_created DESC
запрос работает корректно)

Аватар пользователя denis.pimenov denis.pimenov 5 января 2014 в 18:07

Появилось время покопаться. Выяснилось, что Votingapi имеет поле с названием function, которое является зарезервированным, поэтому обрабатывается не корректно. Мне необходимо переименовать поле в сиквеле и в скриптах. в сиквеле проблем нет, но где хранятся поля для votingapi в drupal? В общем задача найти в скриптах поле function. в файле .install не предлагать - поменял, но толку 0.