details:   https://code.openbravo.com/erp/devel/pi/rev/39feb7c05796
changeset: 35757:39feb7c05796
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Mon May 13 14:40:35 2019 +0200
summary:   related to issue 40842: fixes dba_getstandard_search_text

  pg_get_constraintdef includes "CHECK()" to check conditions, remove it to keep
  backwards compatibility

diffstat:

 src-db/database/model/prescript-PostgreSql.sql |  12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diffs (36 lines):

diff -r cc303c2e2e09 -r 39feb7c05796 
src-db/database/model/prescript-PostgreSql.sql
--- a/src-db/database/model/prescript-PostgreSql.sql    Mon May 13 12:48:05 
2019 +0200
+++ b/src-db/database/model/prescript-PostgreSql.sql    Mon May 13 14:40:35 
2019 +0200
@@ -79,7 +79,7 @@
 * under the License.
 * The Original Code is Openbravo ERP.
 * The Initial Developer of the Original Code is Openbravo SLU
-* All portions are Copyright (C) 2001-2006 Openbravo SLU
+* All portions are Copyright (C) 2001-2019 Openbravo SLU
 * All Rights Reserved.
 * Contributor(s):  ______________________________________.
 ************************************************************************/
@@ -89,7 +89,13 @@
   DECLARE  v_p3 NUMERIC;
   DECLARE  v_i NUMERIC;
 begin
-  v_text := replace($1, ' = ANY',' in');
+  v_text := $1;
+  if v_text like 'CHECK (%' then
+    v_text := substring(v_text, 8);
+    v_text := substring(v_text, 1, length(v_text) - 1);
+  end if;
+
+  v_text := replace(v_text, ' = ANY',' in');
   v_text := replace(v_text, 'ARRAY[', '');
   v_text := replace(v_text, ']' , '');
   v_text := replace(v_text, '::bpchar', '');
@@ -1070,7 +1076,7 @@
             WHEN 'P'::text THEN upper(pg_constraint.conname::text)
             WHEN 'U'::text THEN upper(pg_constraint.conname::text)
             ELSE ''::text
-        END AS index_name, 
dba_getstandard_search_text(pg_get_constraintdef(pg_constraint.oid)) AS 
search_condition, 'ENABLED'::text AS STATUS
+        END AS index_name, (case pg_constraint.contype when 'c' then 
dba_getstandard_search_text(pg_get_constraintdef(pg_constraint.oid)) else null 
end) AS search_condition, 'ENABLED'::text AS STATUS
    FROM pg_constraint
    JOIN pg_class ON pg_class.oid = pg_constraint.conrelid
    LEFT JOIN pg_class fk_table ON fk_table.oid = pg_constraint.confrelid


_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to