diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml
index bdb3ad797f..fb3afd9d32 100644
--- a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml
+++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/Schema-Reference-ALF.xml
@@ -1926,6 +1926,24 @@
long_value
+
+
+ qname_id
+ boolean_value
+
+
+
+
+ qname_id
+ double_value
+
+
+
+
+ qname_id
+ float_value
+
+
diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql
index d4f79424df..3f7aa35bb2 100644
--- a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql
+++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-RepoTables.sql
@@ -330,3 +330,6 @@ CREATE INDEX fk_alf_nprop_qn ON alf_node_properties (qname_id);
CREATE INDEX fk_alf_nprop_loc ON alf_node_properties (locale_id);
CREATE INDEX idx_alf_nprop_s ON alf_node_properties (qname_id, string_value, node_id);
CREATE INDEX idx_alf_nprop_l ON alf_node_properties (qname_id, long_value, node_id);
+CREATE INDEX idx_alf_nprop_b ON alf_node_properties (qname_id, boolean_value, node_id);
+CREATE INDEX idx_alf_nprop_f ON alf_node_properties (qname_id, float_value, node_id);
+CREATE INDEX idx_alf_nprop_d ON alf_node_properties (qname_id, double_value, node_id);
\ No newline at end of file
diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml
index 7bf705eed0..d97bce18d7 100644
--- a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml
+++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/Schema-Reference-ALF.xml
@@ -1988,6 +1988,27 @@
+
+
+ qname_id
+ boolean_value
+ node_id
+
+
+
+
+ qname_id
+ double_value
+ node_id
+
+
+
+
+ qname_id
+ float_value
+ node_id
+
+
diff --git a/config/alfresco/dbscripts/upgrade/5.1/org.hibernate.dialect.MySQLInnoDBDialect/metadata-query-indexes-2.sql b/config/alfresco/dbscripts/upgrade/5.1/org.hibernate.dialect.MySQLInnoDBDialect/metadata-query-indexes-2.sql
new file mode 100644
index 0000000000..a2751c1cda
--- /dev/null
+++ b/config/alfresco/dbscripts/upgrade/5.1/org.hibernate.dialect.MySQLInnoDBDialect/metadata-query-indexes-2.sql
@@ -0,0 +1,24 @@
+--
+-- Title: Update alf_node_properties to support in-transaction metadata queries on remaining property types
+-- Database: Generic
+-- Since: V5.1 Schema 9004
+-- Author: Andy Hind
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+
+CREATE INDEX idx_alf_nprop_b ON alf_node_properties (qname_id, boolean_value); --(optional)
+CREATE INDEX idx_alf_nprop_f ON alf_node_properties (qname_id, float_value); --(optional)
+CREATE INDEX idx_alf_nprop_d ON alf_node_properties (qname_id, double_value); --(optional)
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V5.1-metadata-query-indexes';
+INSERT INTO alf_applied_patch
+ (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
+ VALUES
+ (
+ 'patch.db-V5.1-metadata-query-indexes', 'Manually executed script upgrade V5.1: Updates for metadata query',
+ 0, 9003, -1, 9004, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
+ );
\ No newline at end of file