From: Gil Moskowitz Date: Wed, 17 Sep 2014 21:10:31 +0000 (-0400) Subject: Merge branch '4_7_x' of https://github.com/xtuple/xtuple into i24559_xtlocks X-Git-Tag: v4.7.0-beta.2~13^2 X-Git-Url: http://git.roojs.org/?a=commitdiff_plain;h=6f3e82ba3f1b8ec449de7b2d7154eddb55a0be6b;hp=-c;p=xtuple Merge branch '4_7_x' of https://github.com/xtuple/xtuple into i24559_xtlocks and change language of wipe_views to allow building a database Conflicts: enyo-client/database/source/delete_system_orms.sql --- 6f3e82ba3f1b8ec449de7b2d7154eddb55a0be6b diff --combined enyo-client/database/source/delete_system_orms.sql index 36cd79bd1,79e2b31e9..66ea97675 --- a/enyo-client/database/source/delete_system_orms.sql +++ b/enyo-client/database/source/delete_system_orms.sql @@@ -1,24 -1,10 +1,10 @@@ -DO $$ +do $$ /* Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple. - See www.xm.ple.com/CPAL for the full text of the software license. */ + See www.xtuple.com/CPAL for the full text of the software license. */ - var result, - viewname, - schemaname, - i, - sql = "select schemaname, viewname " + - "from pg_views " + - "where schemaname in ('xm','sys', 'xt');"; - - result = plv8.execute(sql); - for (i = 0; i < result.length; i++) { - viewname = result[i].viewname; - schemaname = result[i].schemaname; - plv8.execute('drop view if exists ' + schemaname + '.' + viewname + ' cascade;'); - } - - plv8.execute("select xt.js_init()"); - plv8.execute("alter table xt.orm disable trigger orm_did_change"); ++ plv8.execute("select xt.js_init();"); + plv8.execute("alter table xt.orm disable trigger orm_did_change;"); plv8.execute("delete from xt.orm where orm_json ~ '\"isSystem\":true';"); - plv8.execute("alter table xt.orm enable trigger orm_did_change"); + plv8.execute("alter table xt.orm enable trigger orm_did_change;"); $$ language plv8; diff --combined enyo-client/database/source/wipe_views.sql index 000000000,87ec0d33f..b92157597 mode 000000,100644..100644 --- a/enyo-client/database/source/wipe_views.sql +++ b/enyo-client/database/source/wipe_views.sql @@@ -1,0 -1,19 +1,16 @@@ -DO $$ ++do $$ + /* Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple. + See www.xm.ple.com/CPAL for the full text of the software license. */ - - var sql, - result, - viewname, - schemaname, - i; - - sql = "select schemaname, viewname from pg_views where schemaname in ('xm','sys', 'xt');" - result = plv8.execute(sql); - for (i = 0; i < result.length; i++) { - viewname = result[i].viewname; - schemaname = result[i].schemaname; - plv8.execute('drop view if exists ' + schemaname + '.' + viewname + ' cascade;'); - } - -$$ language plv8; ++declare ++ sqlstring text; ++begin ++ select string_agg('drop view ' || t.oid::regclass || ';', ' ') into sqlstring ++ from pg_class t ++ join pg_namespace n on n.oid = relnamespace ++ where relkind = 'v' ++ and nspname in ('xm','sys', 'xt'); ++ if length(sqlstring) > 0 then ++ execute sqlstring; ++ end if; ++end ++$$; diff --combined scripts/lib/build_database.js index c0446c0fb,aa0b85c58..8ae4296d6 --- a/scripts/lib/build_database.js +++ b/scripts/lib/build_database.js @@@ -89,7 -89,8 +89,8 @@@ var async = require('async') baseName.indexOf('distribution') >= 0, registerExtension: isExtension, runJsInit: !isFoundation && !isLibOrm, - wipeViews: isApplicationCore && spec.wipeViews, + wipeViews: isFoundation && spec.wipeViews, + wipeOrms: isApplicationCore && spec.wipeViews, extensionLocation: isCoreExtension ? "/core-extensions" : isPublicExtension ? "/xtuple-extensions" : isPrivateExtension ? "/private-extensions" : @@@ -190,8 -191,9 +191,8 @@@ return memo + script; }, ""); - // Without this, when we delegate to exec psql the err var will not be set even - // on the case of error. - allSql = "\\set ON_ERROR_STOP TRUE;\n" + allSql; + // Without this, psql runs all input and returns success even if errors occurred + allSql = "\\set ON_ERROR_STOP TRUE\n" + allSql; winston.info("Applying build to database " + spec.database); credsClone.database = spec.database;