[Rt-devel] [Fwd: Command line query involving Custom Fields]

Rangarajan Radhakrishnan rangarajan.radhakrishnan at bms.com
Mon May 1 16:36:39 EDT 2006



Rangarajan Radhakrishnan wrote:

> I have some custom field that I am trying to query as follows:
> rt list "Queue = 'TestQueue' and owner = 'nobody' AND ('CF.{My 
> Field1}' = 'My Value1')
> (This works).
>
> However, when I add another condition:
> rt list "Queue = 'TestQueue' and owner = 'nobody' AND ('CF.{My 
> Field1}' = 'My Value1' OR 'CF.{My Field1}' = 'My Value2')
>
> It never returns any row. This has been tried from the graphical 
> interface too.
>
> Details:
> Using RT 3.6.0pre0. Using 1.43 for DBIx::SearchBuilder. Have tried it 
> with 1.39 of SearchBuilder.pm too.
> Database is Oracle 10g (10.1)
>
> Actual query used with "rt list" command is given below:
> -------------------------------------
> Queue = 'Assay Development'  AND  ('CF.{Assay Stage}' = 'Assay 
> Request' OR 'CF.{Assay Stage}' = 'Feasibility' OR 'CF.{Assay Stage}' = 
> 'Assay Development' OR 'CF.{Assay Stage}' = 'Assay Validation' OR 
> 'CF.{Assay Stage}' = 'Sample Analysis' OR 'CF.{Assay Stage}' = 'Data 
> Loading' )
> -------------------------------------
> It seems to breaks down even if I just use two clauses involving same 
> customfield within parenthesis.
>
> This results in QueryString (Select) as printed from within 
> DBIx::SearchBuilder is:
>
>
> SELECT * FROM ( SELECT limitquery.*,rownum limitrownum FROM ( SELECT 
> main.* FROM ( SELECT DISTINCT main.id FROM (((Tickets main  LEFT JOIN 
> ObjectCustomFields ObjectCustomFields_1  ON 
> ((ObjectCustomFields_1.ObjectId = '0')) OR (  
> ObjectCustomFields_1.ObjectId = main.Queue))  LEFT JOIN CustomFields 
> CustomFields_2  ON ( CustomFields_2.id = 
> ObjectCustomFields_1.CustomField))  LEFT JOIN ObjectCustomFieldValues 
> ObjectCustomFieldValues_3  ON ((ObjectCustomFieldValues_3.ObjectId = 
> main.id)) AND (  ObjectCustomFieldValues_3.CustomField = 
> CustomFields_2.id) AND ( (ObjectCustomFieldValues_3.Disabled = '0')) 
> AND ( (ObjectCustomFieldValues_3.ObjectType = 'RT::Ticket')))   WHERE 
> ((CustomFields_2.name = 'Assay Stage')) AND ((main.EffectiveId = 
> main.id)) AND ((main.Status != 'deleted')) AND ((main.Type = 
> 'ticket')) AND ((main.name = 'Assay Stage')AND(main.name = 'Assay 
> Stage')AND(main.name = 'Assay Stage')AND(main.name = 'Assay 
> Stage')AND(main.name = 'Assay Stage')) AND ((main.Queue = '3')AND (  ( 
> (ObjectCustomFieldValues_3.Content = 'Assay Request') ) OR ( 
> (ObjectCustomFieldValues_3.Content = 'Feasibility') ) OR ( 
> (ObjectCustomFieldValues_3.Content = 'Assay Development') ) OR ( 
> (ObjectCustomFieldValues_3.Content = 'Assay Validation') ) OR ( 
> (ObjectCustomFieldValues_3.Content = 'Sample Analysis') ) OR ( 
> (ObjectCustomFieldValues_3.Content = 'Data Loading') )  ) )  ) 
> distinctquery, Tickets main WHERE (main.id = distinctquery.id)  ORDER 
> BY main.id ASC  ) limitquery WHERE rownum <= 50 ) WHERE limitrownum >= 1
>
> On running this query using SQLPLUS
> ERROR at line 1:
> ORA-00904: "MAIN"."NAME": invalid identifier
>
> Has anybody seen this before? Thanks in advance for your help.
>
>
>
It appears that the generated query has
"(main.name = 'Assay Stage')AND(main.name = 'Assay Stage')AND(main.name 
= 'Assay Stage')AND(main.name = 'Assay Stage')AND(main.name = 'Assay 
Stage')"
repeating multiple times.

each "main.name" should instead be "CustomFields_2.name"

Is anybody else facing this problem ....? Thanks.
-------------- next part --------------
An embedded message was scrubbed...
From: Rangarajan Radhakrishnan <rangarajan.radhakrishnan at bms.com>
Subject: Command line query involving Custom Fields
Date: Mon, 01 May 2006 15:53:56 -0400
Size: 3408
Url: http://lists.bestpractical.com/pipermail/rt-devel/attachments/20060501/86886a08/CommandlinequeryinvolvingCustomFields.eml


More information about the Rt-devel mailing list