Closed (fixed)
Project:
Shadow - SQL queries / views optimization
Version:
7.x-1.x-dev
Component:
Code
Priority:
Major
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
26 Apr 2012 at 13:25 UTC
Updated:
16 May 2012 at 21:10 UTC
When I try to "Create a new table" based on a Views Query on admin/structure/shadow/queries/list/nn (nn=number on the list) I get the PHP error on log:
Exception: Parse error in state "field" at offset 16 (near "node.title") in ShadowStateMachine->parse() (line 141 ...\shadow\classes\state_machine.inc).
I can't do anything with this error.
Can anyone help me?
Comments
Comment #1
mauritsl commentedIt means that Shadow was unable to parse (and thus 'understand') your query. I'm constantly working on improving the SQL parser. Can you provide me with the full query?
Comment #2
josebrito commentedHere's one of the query's that I've tried:
SELECT node.title AS node_title, node.nid AS nid, node.language AS node_language, field_data_field_data.field_data_value AS field_data_field_data_field_data_value, field_data_field_data.field_data_value2 AS field_data_field_data_field_data_value2, 'node' AS field_data_field_data_node_entity_type, 'node' AS field_data_field_localizacao_node_entity_type
FROM
{node} node
LEFT JOIN {field_data_field_data} field_data_field_data ON node.nid = field_data_field_data.entity_id AND (field_data_field_data.entity_type = :views_join_condition_0 AND field_data_field_data.deleted = :views_join_condition_1)
LEFT JOIN {domain_access} domain_access ON node.nid = domain_access.nid AND domain_access.realm = :views_join_condition_2
WHERE (( (node.status = :db_condition_placeholder_3) AND (node.type IN (:db_condition_placeholder_4)) AND (node.language IN (:db_condition_placeholder_5)) AND (((domain_access.realm = 'domain_id' AND domain_access.gid = ***CURRENT_DOMAIN***) OR (domain_access.realm = 'domain_site' AND domain_access.gid = 0))) )AND( (DATE_FORMAT(ADDTIME(STR_TO_DATE(field_data_field_data.field_data_value, '%Y-%m-%dT%T'), SEC_TO_TIME(3600)), '%Y-%m-%d') >= :field_data_field_data_field_data_value) OR (DATE_FORMAT(ADDTIME(STR_TO_DATE(field_data_field_data.field_data_value2, '%Y-%m-%dT%T'), SEC_TO_TIME(3600)), '%Y-%m-%d') >= :field_data_field_data_field_data_value2) ))
ORDER BY field_data_field_data_field_data_value ASC, field_data_field_data_field_data_value2 ASC
Comment #3
mauritsl commentedI've made some improvements to the SQL parser and this query can now be parsed without errors. I've created a new beta release with the parser changes.