Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hey guys.
when trying to re-write a filter i have to do something similar but a bit else,
i encounter the following error while trying to save the filter's query:
Filter 'Filter luns for DS by name prefix in a specific volume' returned attributes does not contain all natural keys. Filter's returned attributes '[id, name, num_part]' , dictionary entry natural keys '[array.ip, name]'
i tried the containing query in a query builder in Toad and it returned data fine.
ideas?
SELECT storage.lun.name, storage.volume.id, SUBSTRING_INDEX(storage.lun.name, '${lun_name_prefix}', -1) AS num_part FROM storage.volume, storage.lun WHERE storage.lun.volume_id = storage.volume.id AND storage.lun.name LIKE '${lun_name_prefix}%' ORDER by num_part desc |
thanks!
solal.
Solved! See The Solution
1 ACCEPTED SOLUTION
migration has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Solal,
Try this:
SELECT
storage.lun.name as 'name',
storage.array.ip as 'array.ip',
storage.volume.id,
SUBSTRING_INDEX(storage.lun.name,
'${lun_name_prefix}',
-1) AS num_part
FROM
storage.volume,
storage.lun,
storage.array
WHERE
storage.lun.volume_id = storage.volume.id
AND storage.lun.name LIKE '${lun_name_prefix}%'
AND storage.array.id = storage.volume.array_id
ORDER by
num_part desc
3 REPLIES 3
migration has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Solal,
Try this:
SELECT
storage.lun.name as 'name',
storage.array.ip as 'array.ip',
storage.volume.id,
SUBSTRING_INDEX(storage.lun.name,
'${lun_name_prefix}',
-1) AS num_part
FROM
storage.volume,
storage.lun,
storage.array
WHERE
storage.lun.volume_id = storage.volume.id
AND storage.lun.name LIKE '${lun_name_prefix}%'
AND storage.array.id = storage.volume.array_id
ORDER by
num_part desc
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hey Anil.
Thanks for that!
What was it? I understand the array.ip row was missing, right? I didn't write it coherently...
Why does it affect this query?
Thanks,
Soli.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Solal,
The filter should return all the natural keys for the object being filtered. It can return other attributes as well but it SHOULD return the natural keys at least.
For dictionary object volume, the natural keys are:
1. array(reference)
2. name
For a reference, you will have to return all the natural keys of that Object. In this case it is the array that is being referenced.
The only natural key in array is the IP, i.e. "array.ip".
Hope this helps
-Anil
