Initial fix ALF-498 - PostgreSQL: AVMServiceTest.testStorePropertyQuerying

- note: depends on ALF-2175 (unit tested w/ local PostgreSQL scripts: qname-insert-SqlMap.xml & AlfrescoCreate-3.3-RepoTables.sql)

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19677 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jan Vonka
2010-03-30 17:07:06 +00:00
parent 57fbb5b722
commit e84ea744eb
2 changed files with 41 additions and 3 deletions

View File

@@ -388,6 +388,18 @@
qn.local_name like ? qn.local_name like ?
</select> </select>
<select id="select_AVMStorePropertiesByKeyPatternL" parameterMap="parameter_KeyPattern" resultMap="result_AVMStoreProperty">
select
asp.*
from
avm_store_properties asp
join alf_qname qn on (qn.id = asp.qname_id)
join alf_namespace ns on (ns.id = qn.ns_id)
where
ns.uri like ? and
lower(qn.local_name) like lower(?)
</select>
<select id="select_AVMStorePropertiesByStoreAndKeyPattern" parameterMap="parameter_IdAndKeyPattern" resultMap="result_AVMStoreProperty"> <select id="select_AVMStorePropertiesByStoreAndKeyPattern" parameterMap="parameter_IdAndKeyPattern" resultMap="result_AVMStoreProperty">
select select
asp.* asp.*
@@ -401,6 +413,19 @@
qn.local_name like ? qn.local_name like ?
</select> </select>
<select id="select_AVMStorePropertiesByStoreAndKeyPatternL" parameterMap="parameter_IdAndKeyPattern" resultMap="result_AVMStoreProperty">
select
asp.*
from
avm_store_properties asp
join alf_qname qn on (qn.id = asp.qname_id)
join alf_namespace ns on (ns.id = qn.ns_id)
where
asp.avm_store_id = ? and
ns.uri like ? and
lower(qn.local_name) like lower(?)
</select>
<!-- Optimistic update of the store property --> <!-- Optimistic update of the store property -->
<update id="update_AVMStoreProperty" parameterMap="parameter_StorePropertyPatternMap"> <update id="update_AVMStoreProperty" parameterMap="parameter_StorePropertyPatternMap">
update update

View File

@@ -51,15 +51,20 @@ public class AVMStoreDAOImpl extends AbstractAVMStoreDAOImpl
private static final String UPDATE_AVM_STORE_PROP ="alfresco.avm.update_AVMStoreProperty"; private static final String UPDATE_AVM_STORE_PROP ="alfresco.avm.update_AVMStoreProperty";
private static final String SELECT_AVM_STORE_PROP ="alfresco.avm.select_AVMStoreProperty"; private static final String SELECT_AVM_STORE_PROP ="alfresco.avm.select_AVMStoreProperty";
private static final String SELECT_AVM_STORE_PROPS ="alfresco.avm.select_AVMStoreProperties"; private static final String SELECT_AVM_STORE_PROPS ="alfresco.avm.select_AVMStoreProperties";
private static final String SELECT_AVM_STORE_PROPS_BY_KEY_PATTERN ="alfresco.avm.select_AVMStorePropertiesByKeyPattern";
private static final String SELECT_AVM_STORE_PROPS_BY_STORE_AND_KEY_PATTERN ="alfresco.avm.select_AVMStorePropertiesByStoreAndKeyPattern"; private static final String SELECT_AVM_STORE_PROPS_BY_KEY_PATTERN ="alfresco.avm.select_AVMStorePropertiesByKeyPattern"; // uri + local_name
private static final String SELECT_AVM_STORE_PROPS_BY_KEY_PATTERN_L ="alfresco.avm.select_AVMStorePropertiesByKeyPatternL"; // uri + lower(local_name)
private static final String SELECT_AVM_STORE_PROPS_BY_STORE_AND_KEY_PATTERN ="alfresco.avm.select_AVMStorePropertiesByStoreAndKeyPattern"; // store id + uri + local_name
private static final String SELECT_AVM_STORE_PROPS_BY_STORE_AND_KEY_PATTERN_L ="alfresco.avm.select_AVMStorePropertiesByStoreAndKeyPatternL"; // store id + uri + lower(local_name)
private static final String DELETE_AVM_STORE_PROP ="alfresco.avm.delete_AVMStoreProperty"; private static final String DELETE_AVM_STORE_PROP ="alfresco.avm.delete_AVMStoreProperty";
private static final String DELETE_AVM_STORE_PROPS ="alfresco.avm.delete_AVMStoreProperties"; private static final String DELETE_AVM_STORE_PROPS ="alfresco.avm.delete_AVMStoreProperties";
private SqlMapClientTemplate template; private SqlMapClientTemplate template;
// Initial generic fix for ALF-2278 (pending SAIL-365) // Initial generic fixes for ALF-2278 (pending SAIL-365) & ALF-498 (pending SAIL-359)
// Note: in order to override to false, DB must be setup to be case-insensitive (at least on column avm_stores.name) // Note: in order to override to false, DB must be setup to be case-insensitive (at least on column avm_stores.name)
private boolean toLower = true; private boolean toLower = true;
@@ -173,6 +178,10 @@ public class AVMStoreDAOImpl extends AbstractAVMStoreDAOImpl
params.put("uri", uriPattern); params.put("uri", uriPattern);
params.put("localname", localNamePattern); params.put("localname", localNamePattern);
if (toLower)
{
return (List<AVMStorePropertyEntity>) template.queryForList(SELECT_AVM_STORE_PROPS_BY_KEY_PATTERN_L, params);
}
return (List<AVMStorePropertyEntity>) template.queryForList(SELECT_AVM_STORE_PROPS_BY_KEY_PATTERN, params); return (List<AVMStorePropertyEntity>) template.queryForList(SELECT_AVM_STORE_PROPS_BY_KEY_PATTERN, params);
} }
@@ -185,6 +194,10 @@ public class AVMStoreDAOImpl extends AbstractAVMStoreDAOImpl
params.put("uri", uriPattern); params.put("uri", uriPattern);
params.put("localname", localNamePattern); params.put("localname", localNamePattern);
if (toLower)
{
return (List<AVMStorePropertyEntity>) template.queryForList(SELECT_AVM_STORE_PROPS_BY_STORE_AND_KEY_PATTERN_L, params);
}
return (List<AVMStorePropertyEntity>) template.queryForList(SELECT_AVM_STORE_PROPS_BY_STORE_AND_KEY_PATTERN, params); return (List<AVMStorePropertyEntity>) template.queryForList(SELECT_AVM_STORE_PROPS_BY_STORE_AND_KEY_PATTERN, params);
} }