Oh, I think the previous behavior was to RTRIM columns in the SELECT clause, 
but not in WHERE, etc. I guess the changes to the WHERE  clause is what was 
rolled back?

Andrus

> On Jul 24, 2019, at 6:46 AM, Andrus Adamchik <and...@objectstyle.org> wrote:
> 
> I have no objections to removal of RTRIM, but I wonder if there was a 
> specific reason why we added it for Sybase in 4.2 though? There had to be, 
> right?
> 
> Andrus
> 
>> On Jul 24, 2019, at 4:31 AM, Arseni Bulatski <abulat...@objectstyle.com> 
>> wrote:
>> 
>> So, if the previous behavior was normal, I'll move it back.
>> This is task for it:  https://issues.apache.org/jira/browse/CAY-2602
>> And this is commit for it:
>> https://github.com/apache/cayenne/commit/942ba5786af9a2ed47be5a1881e390c7d7101250
>> Could you please check this change?
>> If something going wrong write to list, please.
>> 
>> On Tue, Jul 23, 2019 at 8:56 PM Lon Varscsak <lon.varsc...@gmail.com> wrote:
>> 
>>> In 4.1.B2-SNAPSHOT, I do not get the RTRIM behavior:
>>> 
>>> SELECT DISTINCT [t0].[average_cost], [t0].[backorder_flag],
>>> [t0].[break_match_code], [t0].[case_location], [t0].[case_qty],
>>> [t0].[category_code], [t0].[cgs_gl_account], [t0].[charges_group_code],
>>> [t0].[composition_family], [t0].[composition_output_definition],
>>> [t0].[custom_vendor], [t0].[description], [t0].[drop_ship_code],
>>> [t0].[duties_percent], [t0].[duties_tax_cost_percent],
>>> [t0].[envelope_item_number], [t0].[expect_date], [t0].[first_sale_date],
>>> [t0].[freight_cost_percent], [t0].[inventory_gl_account], [t0].[lead_time],
>>> [t0].[license_required], [t0].[market], [t0].[material],
>>> [t0].[merchandise_cost_percent], [t0].[operator_message], [t0].[origin],
>>> [t0].[part_number], [t0].[personalization_flag], [t0].[primary_location],
>>> [t0].[print_specification], [t0].[print_template], [t0].[procurement_code],
>>> [t0].[qty_expected], [t0].[qty_on_backorder], [t0].[qty_on_hand],
>>> [t0].[qty_reserved], [t0].[qty_available], [t0].[return_gl_account],
>>> [t0].[sales_gl_account], [t0].[sales_unit], [t0].[serial_number_flag],
>>> [t0].[special_process], [t0].[status], [t0].[tax_flag],
>>> [t0].[tesla_qty_on_backorder], [t0].[tesla_qty_reserved],
>>> [t0].[unit_of_measure], [t0].[vap_cost_percent], [t0].[vendor_code],
>>> [t0].[weight], [t0].[root_part_number] FROM [production].[dbo].[part] [t0]
>>> WHERE *[t0].[part_number] *= ? [bind: 1->part_number:'120476']
>>> 
>>> Having the RTRIM on the lefthand side would cause any database to ignore
>>> the index and do a table scan.
>>> 
>>> On Tue, Jul 23, 2019 at 6:23 AM Arseni Bulatski <abulat...@objectstyle.com
>>>> 
>>> wrote:
>>> 
>>>> Hi Lon,
>>>> I looked through your issue and tried to reproduce it.
>>>> As I understand you have table with char PK.
>>>> I run it on both 4.1 and 4.2 and have such results:
>>>> For 4.1 SELECT t0.OTHER_COL, t0.PK_COL FROM CHAR_PK_TEST t0 WHERE
>>>> RTRIM(t0.PK_COL) = ? [bind: 1->PK_COL:123]
>>>> For 4.2 SELECT RTRIM(t0.OTHER_COL), RTRIM(t0.PK_COL) FROM CHAR_PK_TEST t0
>>>> WHERE RTRIM(t0.PK_COL) = ? [bind: 1->PK_COL:123]
>>>> Maybe you can add some more details for it?
>>>> 
>>>> On Thu, Jul 18, 2019 at 7:47 PM Lon Varscsak <lon.varsc...@gmail.com>
>>>> wrote:
>>>> 
>>>>> Hey Nikita, this is still a problem, but looks like it's happening on
>>>>> straight-forward fetches (possibly with "char" datatypes):
>>>>> 
>>>>> SELECT DISTINCT [t0].[average_cost], [t0].[backorder_flag],
>>>>> [t0].[break_match_code], [t0].[case_location], [t0].[case_qty],
>>>>> [t0].[category_code], [t0].[cgs_gl_account],
>>>>> RTRIM([t0].[charges_group_code]), [t0].[composition_family],
>>>>> [t0].[composition_output_definition], [t0].[custom_vendor],
>>>>> [t0].[description], RTRIM([t0].[drop_ship_code]),
>>> [t0].[duties_percent],
>>>>> [t0].[duties_tax_cost_percent], RTRIM([t0].[envelope_item_number]),
>>>>> [t0].[expect_date], [t0].[first_sale_date],
>>> [t0].[freight_cost_percent],
>>>>> [t0].[inventory_gl_account], [t0].[lead_time], [t0].[license_required],
>>>>> RTRIM([t0].[market]), [t0].[material], [t0].[merchandise_cost_percent],
>>>>> [t0].[operator_message], [t0].[origin], RTRIM([t0].[part_number]),
>>>>> [t0].[personalization_flag], [t0].[primary_location],
>>>>> [t0].[print_specification], [t0].[print_template],
>>>>> RTRIM([t0].[procurement_code]), [t0].[qty_expected],
>>>>> [t0].[qty_on_backorder], [t0].[qty_on_hand], [t0].[qty_reserved],
>>>>> [t0].[qty_available], [t0].[return_gl_account],
>>> [t0].[sales_gl_account],
>>>>> [t0].[sales_unit], [t0].[serial_number_flag], [t0].[special_process],
>>>>> [t0].[status], [t0].[tax_flag], [t0].[tesla_qty_on_backorder],
>>>>> [t0].[tesla_qty_reserved], [t0].[unit_of_measure],
>>>> [t0].[vap_cost_percent],
>>>>> RTRIM([t0].[vendor_code]), [t0].[weight],
>>> RTRIM([t0].[root_part_number])
>>>>> FROM [production.dbo.part] [t0] WHERE *RTRIM([t0].[part_number])* = ?
>>>>> [bind: 1->part_number:'120476']
>>>>> 
>>>>> 
>>>>> 
>>>>> On Tue, May 14, 2019 at 10:47 AM Lon Varscsak <lon.varsc...@gmail.com>
>>>>> wrote:
>>>>> 
>>>>>> Thanks!
>>>>>> 
>>>>>> On Sat, May 11, 2019 at 5:04 AM Nikita Timofeev <
>>>>> ntimof...@objectstyle.com>
>>>>>> wrote:
>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> Fixed this, see [1]. Thank you for another catch!
>>>>>>> 
>>>>>>> [1] https://issues.apache.org/jira/browse/CAY-2578
>>>>>>> 
>>>>>>> On Mon, May 6, 2019 at 11:28 PM Lon Varscsak <
>>> lon.varsc...@gmail.com>
>>>>>>> wrote:
>>>>>>>> 
>>>>>>>> Hey all,
>>>>>>>> 
>>>>>>>> I have a join from order_detail_sales to continuity_detail based
>>> on
>>>>>>>> order_number and order_line_number.  When fetching the to-one
>>>>>>>> getContinuityDetail I'm getting an error because the query
>>> generated
>>>>> is
>>>>>>>> swapping the keys:
>>>>>>>> 
>>>>>>>> SELECT [t0].[intent_date], [t0].[line_end_date],
>>>>> [t0].[line_setup_date],
>>>>>>>> [t0].[next_ship_date], RTRIM([t0].[process_flag]),
>>>>> [t0].[reminder_date],
>>>>>>>> [t0].[reminder_days], [t0].[scheduled_shipments],
>>>>> [t0].[ship_frequency],
>>>>>>>> [t0].[order_number], [t0].[order_line_number] FROM
>>>>>>>> [production.dbo.continuity_detail] [t0] WHERE *( (
>>>> [t0].[order_number]
>>>>>>> = ?
>>>>>>>> ) AND ( [t0].[order_line_number] = ? ) ) [bind: 1:1, 2:57874832]*
>>>>>>>> 
>>>>>>>> In reality "57874832" is the order_number and "1" is the
>>>>>>> order_line_number,
>>>>>>>> but the query generator has swapped them.  I've verified the joins
>>>> in
>>>>>>> the
>>>>>>>> modeler (and 4.1 works).
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> 
>>>>>>>> Lon
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> --
>>>>>>> Best regards,
>>>>>>> Nikita Timofeev
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
> 

Reply via email to