You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@madlib.apache.org by ok...@apache.org on 2017/11/14 19:44:26 UTC

[1/2] madlib git commit: Fix madlib version parsing for upgrade

Repository: madlib
Updated Branches:
  refs/heads/master cbb04316a -> b8402a2b7


Fix madlib version parsing for upgrade

Closes #197


Project: http://git-wip-us.apache.org/repos/asf/madlib/repo
Commit: http://git-wip-us.apache.org/repos/asf/madlib/commit/75538304
Tree: http://git-wip-us.apache.org/repos/asf/madlib/tree/75538304
Diff: http://git-wip-us.apache.org/repos/asf/madlib/diff/75538304

Branch: refs/heads/master
Commit: 75538304c2a974297ca69198ce8a85ce449405b3
Parents: cbb0431
Author: Orhan Kislal <ok...@pivotal.io>
Authored: Tue Nov 14 11:42:32 2017 -0800
Committer: Orhan Kislal <ok...@pivotal.io>
Committed: Tue Nov 14 11:42:32 2017 -0800

----------------------------------------------------------------------
 src/madpack/madpack.py      | 197 +++++++++++----------------------------
 src/madpack/upgrade_util.py |   8 +-
 src/madpack/utilities.py    | 107 +++++++++++++++++++++
 3 files changed, 169 insertions(+), 143 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/madlib/blob/75538304/src/madpack/madpack.py
----------------------------------------------------------------------
diff --git a/src/madpack/madpack.py b/src/madpack/madpack.py
index 887e028..27eafac 100755
--- a/src/madpack/madpack.py
+++ b/src/madpack/madpack.py
@@ -18,8 +18,8 @@ from upgrade_util import ChangeHandler
 from upgrade_util import ViewDependency
 from upgrade_util import TableDependency
 from upgrade_util import ScriptCleaner
-
-from itertools import izip_longest
+from utilities import is_rev_gte
+from utilities import get_rev_num
 
 # Required Python version
 py_min_ver = [2, 6]
@@ -389,90 +389,6 @@ def _check_db_port(portid):
     return False
 # ------------------------------------------------------------------------------
 
-
-def _is_rev_gte(left, right):
-    """ Return if left >= right
-
-    Args:
-        @param left: list. Revision numbers in a list form (as returned by
-                           _get_rev_num).
-        @param right: list. Revision numbers in a list form (as returned by
-                           _get_rev_num).
-
-    Returns:
-        Boolean
-
-    If left and right are all numeric then regular list comparison occurs.
-    If either one contains a string, then comparison occurs till both have int.
-        First list to have a string is considered smaller
-        (including if the other does not have an element in corresponding index)
-
-    Examples:
-        [1, 9, 0] >= [1, 9, 0]
-        [1, 9, 1] >= [1, 9, 0]
-        [1, 9, 1] >= [1, 9]
-        [1, 10] >= [1, 9, 1]
-        [1, 9, 0] >= [1, 9, 0, 'dev']
-        [1, 9, 1] >= [1, 9, 0, 'dev']
-        [1, 9, 0] >= [1, 9, 'dev']
-        [1, 9, 'rc'] >= [1, 9, 'dev']
-        [1, 9, 'rc', 0] >= [1, 9, 'dev', 1]
-        [1, 9, 'rc', '1'] >= [1, 9, 'rc', '1']
-    """
-    def all_numeric(l):
-        return not l or all(isinstance(i, int) for i in l)
-
-    if all_numeric(left) and all_numeric(right):
-        return left >= right
-    else:
-        for i, (l_e, r_e) in enumerate(izip_longest(left, right)):
-            if isinstance(l_e, int) and isinstance(r_e, int):
-                if l_e == r_e:
-                    continue
-                else:
-                    return l_e > r_e
-            elif isinstance(l_e, int) or isinstance(r_e, int):
-                #  [1, 9, 0] > [1, 9, 'dev']
-                #  [1, 9, 0] > [1, 9]
-                return isinstance(l_e, int)
-            else:
-                # both are not int
-                if r_e is None:
-                    # [1, 9, 'dev'] < [1, 9]
-                    return False
-                else:
-                    return l_e is None or left[i:] >= right[i:]
-        return True
-# ----------------------------------------------------------------------
-
-
-def _get_rev_num(rev):
-    """
-    Convert version string into number for comparison
-        @param rev version text
-                It is expected to follow Semantic Versioning (semver.org)
-                Valid inputs:
-                    1.9.0, 1.10.0, 2.5.0
-                    1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92
-                    1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85
-    """
-    try:
-        rev_parts = re.split('[-+_]', rev)
-        # get numeric part of the version string
-        num = [int(i) for i in rev_parts[0].split('.')]
-        num += [0] * (3 - len(num))  # normalize num to be of length 3
-        # get identifier part of the version string
-        if len(rev_parts) > 1:
-            num.extend(map(str, rev_parts[1:]))
-        if not num:
-            num = [0]
-        return num
-    except:
-        # invalid revision
-        return [0]
-# ------------------------------------------------------------------------------
-
-
 def _print_revs(rev, dbrev, con_args, schema):
     """
     Print version information
@@ -492,7 +408,6 @@ def _print_revs(rev, dbrev, con_args, schema):
     return
 # ------------------------------------------------------------------------------
 
-
 def _plpy_check(py_min_ver):
     """
     Check pl/python existence and version
@@ -552,7 +467,7 @@ def _db_install(schema, dbrev, testcase):
     """
     _info("Installing MADlib into %s schema..." % schema.upper(), True)
 
-    temp_schema = schema + '_v' + ''.join(map(str, _get_rev_num(dbrev)))
+    temp_schema = schema + '_v' + ''.join(map(str, get_rev_num(dbrev)))
     # Check the status of MADlib objects in database
     madlib_exists = False if dbrev is None else True
 
@@ -655,13 +570,13 @@ def _db_upgrade(schema, dbrev):
         @param schema MADlib schema name
         @param dbrev DB-level MADlib version
     """
-    if _is_rev_gte(_get_rev_num(dbrev), _get_rev_num(rev)):
+    if is_rev_gte(get_rev_num(dbrev), get_rev_num(rev)):
         _info("Current MADlib version already up to date.", True)
         return
 
-    if _is_rev_gte([1,8],_get_rev_num(dbrev)):
+    if is_rev_gte([1,9],get_rev_num(dbrev)):
         _error("""
-            MADlib versions prior to v1.9 are not supported for upgrade.
+            MADlib versions prior to v1.9.1 are not supported for upgrade.
             Please try upgrading to v1.9.1 and then upgrade to this version.
             """, True)
         return
@@ -1145,7 +1060,7 @@ def main(argv):
         global dbver
         dbver = _get_dbver()
         global is_hawq2
-        if portid == "hawq" and _is_rev_gte(_get_rev_num(dbver), _get_rev_num('2.0')):
+        if portid == "hawq" and is_rev_gte(get_rev_num(dbver), get_rev_num('2.0')):
             is_hawq2 = True
         else:
             is_hawq2 = False
@@ -1181,23 +1096,23 @@ def main(argv):
                 # HAWQ (starting 2.0) and GPDB (starting 5.0) uses semantic versioning,
                 # which implies all HAWQ 2.x or GPDB 5.x versions will have binary
                 # compatibility. Hence, we can keep single folder for all 2.X / 5.X.
-                if (_is_rev_gte(_get_rev_num(dbver), _get_rev_num('2.0')) and
-                        not _is_rev_gte(_get_rev_num(dbver), _get_rev_num('3.0'))):
+                if (is_rev_gte(get_rev_num(dbver), get_rev_num('2.0')) and
+                        not is_rev_gte(get_rev_num(dbver), get_rev_num('3.0'))):
                     is_hawq2 = True
                     dbver = '2'
             elif portid == 'greenplum':
                 # similar to HAWQ above, collapse all 5.X versions
-                if (_is_rev_gte(_get_rev_num(dbver), _get_rev_num('5.0')) and
-                        not _is_rev_gte(_get_rev_num(dbver), _get_rev_num('6.0'))):
+                if (is_rev_gte(get_rev_num(dbver), get_rev_num('5.0')) and
+                        not is_rev_gte(get_rev_num(dbver), get_rev_num('6.0'))):
                     dbver = '5'
-                elif (_is_rev_gte(_get_rev_num(dbver), _get_rev_num('6.0')) and
-                        not _is_rev_gte(_get_rev_num(dbver), _get_rev_num('7.0'))):
+                elif (is_rev_gte(get_rev_num(dbver), get_rev_num('6.0')) and
+                        not is_rev_gte(get_rev_num(dbver), get_rev_num('7.0'))):
                     dbver = '6'
                 # Due to the ABI incompatibility between 4.3.4 and 4.3.5,
                 # MADlib treats 4.3.5+ as DB version 4.3ORCA which is different
                 # from 4.3. The name is suffixed with ORCA since optimizer (ORCA) is
                 # 'on' by default in 4.3.5
-                elif _is_rev_gte(_get_rev_num(dbver), _get_rev_num('4.3.4')):
+                elif is_rev_gte(get_rev_num(dbver), get_rev_num('4.3.4')):
                     dbver = '4.3ORCA'
                 else:
                     # only need the first two digits for <= 4.3.4
@@ -1236,8 +1151,8 @@ def main(argv):
 
     # Parse COMMAND argument and compare with Ports.yml
     # Debugging...
-    # print "OS rev: " + str(rev) + " > " + str(_get_rev_num(rev))
-    # print "DB rev: " + str(dbrev) + " > " + str(_get_rev_num(dbrev))
+    # print "OS rev: " + str(rev) + " > " + str(get_rev_num(rev))
+    # print "DB rev: " + str(dbrev) + " > " + str(get_rev_num(dbrev))
 
     # Make sure we have the necessary parameters to continue
     if args.command[0] != 'version':
@@ -1255,7 +1170,7 @@ def main(argv):
         _error("madpack uninstall is currently not available for HAWQ", True)
 
     if args.command[0] in ('uninstall', 'reinstall') and (portid != 'hawq' or is_hawq2):
-        if _get_rev_num(dbrev) == [0]:
+        if get_rev_num(dbrev) == [0]:
             _info("Nothing to uninstall. No version found in schema %s." % schema.upper(), True)
             return
 
@@ -1326,7 +1241,7 @@ def main(argv):
         # 1) Compare OS and DB versions.
         # noop if OS <= DB.
         _print_revs(rev, dbrev, con_args, schema)
-        if _is_rev_gte(_get_rev_num(dbrev), _get_rev_num(rev)):
+        if is_rev_gte(get_rev_num(dbrev), get_rev_num(rev)):
             _info("Current MADlib version already up to date.", True)
             return
         # proceed to create objects if nothing installed in DB or for HAWQ < 2.0
@@ -1361,7 +1276,7 @@ def main(argv):
 
         # 2) Compare OS and DB versions. Continue if OS > DB.
         _print_revs(rev, dbrev, con_args, schema)
-        if _is_rev_gte(_get_rev_num(dbrev), _get_rev_num(rev)):
+        if is_rev_gte(get_rev_num(dbrev), get_rev_num(rev)):
             _info("Current MADlib version is already up-to-date.", True)
             return
 
@@ -1385,7 +1300,7 @@ def main(argv):
     if args.command[0] == 'install-check':
 
         # 1) Compare OS and DB versions. Continue if OS = DB.
-        if _get_rev_num(dbrev) != _get_rev_num(rev):
+        if get_rev_num(dbrev) != get_rev_num(rev):
             _print_revs(rev, dbrev, con_args, schema)
             _info("Versions do not match. Install-check stopped.", True)
             return
@@ -1531,45 +1446,45 @@ class RevTest(unittest.TestCase):
     def tearDown(self):
         pass
 
-    def test_get_rev_num(self):
+    def testget_rev_num(self):
         # not using assertGreaterEqual to keep Python 2.6 compatibility
-        self.assertTrue(_get_rev_num('4.3.10') >= _get_rev_num('4.3.5'))
-        self.assertTrue(_get_rev_num('1.9.10-dev') >= _get_rev_num('1.9.9'))
-        self.assertNotEqual(_get_rev_num('1.9.10-dev'), _get_rev_num('1.9.10'))
-        self.assertEqual(_get_rev_num('1.9.10'), [1, 9, 10])
-        self.assertEqual(_get_rev_num('1.0.0+20130313144700'), [1, 0, 0, '20130313144700'])
-        self.assertNotEqual(_get_rev_num('1.0.0+20130313144700'),
-                            _get_rev_num('1.0.0-beta+exp.sha.5114f85'))
-
-    def test_is_rev_gte(self):
+        self.assertTrue(get_rev_num('4.3.10') >= get_rev_num('4.3.5'))
+        self.assertTrue(get_rev_num('1.9.10-dev') >= get_rev_num('1.9.9'))
+        self.assertNotEqual(get_rev_num('1.9.10-dev'), get_rev_num('1.9.10'))
+        self.assertEqual(get_rev_num('1.9.10'), [1, 9, 10])
+        self.assertEqual(get_rev_num('1.0.0+20130313144700'), [1, 0, 0, '20130313144700'])
+        self.assertNotEqual(get_rev_num('1.0.0+20130313144700'),
+                            get_rev_num('1.0.0-beta+exp.sha.5114f85'))
+
+    def testis_rev_gte(self):
         # 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta <
         #       1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0
-        self.assertTrue(_is_rev_gte([], []))
-        self.assertTrue(_is_rev_gte([1, 9], [1, None]))
-        self.assertFalse(_is_rev_gte([1, None], [1, 9]))
-
-        self.assertTrue(_is_rev_gte(_get_rev_num('4.3.10'), _get_rev_num('4.3.5')))
-        self.assertTrue(_is_rev_gte(_get_rev_num('1.9.0'), _get_rev_num('1.9.0')))
-        self.assertTrue(_is_rev_gte(_get_rev_num('1.9.1'), _get_rev_num('1.9.0')))
-        self.assertTrue(_is_rev_gte(_get_rev_num('1.9.1'), _get_rev_num('1.9')))
-        self.assertTrue(_is_rev_gte(_get_rev_num('1.9.0'), _get_rev_num('1.9.0-dev')))
-        self.assertTrue(_is_rev_gte(_get_rev_num('1.9.1'), _get_rev_num('1.9-dev')))
-        self.assertTrue(_is_rev_gte(_get_rev_num('1.9.0-dev'), _get_rev_num('1.9.0-dev')))
-        self.assertTrue(_is_rev_gte([1, 9, 'rc', 1], [1, 9, 'dev', 0]))
-
-        self.assertFalse(_is_rev_gte(_get_rev_num('1.9.1'), _get_rev_num('1.10')))
-        self.assertFalse(_is_rev_gte([1, 9, 'dev', 1], [1, 9, 'rc', 0]))
-        self.assertFalse(_is_rev_gte([1, 9, 'alpha'], [1, 9, 'alpha', 0]))
-        self.assertFalse(_is_rev_gte([1, 9, 'alpha', 1], [1, 9, 'alpha', 'beta']))
-        self.assertFalse(_is_rev_gte([1, 9, 'alpha.1'], [1, 9, 'alpha.beta']))
-        self.assertFalse(_is_rev_gte([1, 9, 'beta', 2], [1, 9, 'beta', 4]))
-        self.assertFalse(_is_rev_gte([1, 9, 'beta', '1'], [1, 9, 'rc', '0']))
-        self.assertFalse(_is_rev_gte([1, 9, 'rc', 1], [1, 9, 0]))
-        self.assertFalse(_is_rev_gte([1, 9, '0.2'], [1, 9, '0.3']))
-        self.assertFalse(_is_rev_gte([1, 9, 'build2'], [1, 9, 'build3']))
-
-        self.assertFalse(_is_rev_gte(_get_rev_num('1.0.0+20130313144700'),
-                                     _get_rev_num('1.0.0-beta+exp.sha.5114f85')))
+        self.assertTrue(is_rev_gte([], []))
+        self.assertTrue(is_rev_gte([1, 9], [1, None]))
+        self.assertFalse(is_rev_gte([1, None], [1, 9]))
+
+        self.assertTrue(is_rev_gte(get_rev_num('4.3.10'), get_rev_num('4.3.5')))
+        self.assertTrue(is_rev_gte(get_rev_num('1.9.0'), get_rev_num('1.9.0')))
+        self.assertTrue(is_rev_gte(get_rev_num('1.9.1'), get_rev_num('1.9.0')))
+        self.assertTrue(is_rev_gte(get_rev_num('1.9.1'), get_rev_num('1.9')))
+        self.assertTrue(is_rev_gte(get_rev_num('1.9.0'), get_rev_num('1.9.0-dev')))
+        self.assertTrue(is_rev_gte(get_rev_num('1.9.1'), get_rev_num('1.9-dev')))
+        self.assertTrue(is_rev_gte(get_rev_num('1.9.0-dev'), get_rev_num('1.9.0-dev')))
+        self.assertTrue(is_rev_gte([1, 9, 'rc', 1], [1, 9, 'dev', 0]))
+
+        self.assertFalse(is_rev_gte(get_rev_num('1.9.1'), get_rev_num('1.10')))
+        self.assertFalse(is_rev_gte([1, 9, 'dev', 1], [1, 9, 'rc', 0]))
+        self.assertFalse(is_rev_gte([1, 9, 'alpha'], [1, 9, 'alpha', 0]))
+        self.assertFalse(is_rev_gte([1, 9, 'alpha', 1], [1, 9, 'alpha', 'beta']))
+        self.assertFalse(is_rev_gte([1, 9, 'alpha.1'], [1, 9, 'alpha.beta']))
+        self.assertFalse(is_rev_gte([1, 9, 'beta', 2], [1, 9, 'beta', 4]))
+        self.assertFalse(is_rev_gte([1, 9, 'beta', '1'], [1, 9, 'rc', '0']))
+        self.assertFalse(is_rev_gte([1, 9, 'rc', 1], [1, 9, 0]))
+        self.assertFalse(is_rev_gte([1, 9, '0.2'], [1, 9, '0.3']))
+        self.assertFalse(is_rev_gte([1, 9, 'build2'], [1, 9, 'build3']))
+
+        self.assertFalse(is_rev_gte(get_rev_num('1.0.0+20130313144700'),
+                                     get_rev_num('1.0.0-beta+exp.sha.5114f85')))
 
 
 # ------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/madlib/blob/75538304/src/madpack/upgrade_util.py
----------------------------------------------------------------------
diff --git a/src/madpack/upgrade_util.py b/src/madpack/upgrade_util.py
index 68286c0..c521f2e 100644
--- a/src/madpack/upgrade_util.py
+++ b/src/madpack/upgrade_util.py
@@ -3,6 +3,8 @@ import yaml
 from collections import defaultdict
 import os
 
+from utilities import is_rev_gte
+from utilities import get_rev_num
 
 def run_sql(sql, portid, con_args):
     """
@@ -141,12 +143,14 @@ class ChangeHandler(UpgradeBase):
         @brief Load the configuration file
         """
 
+        rev = get_rev_num(self._mad_dbrev)
+
         # _mad_dbrev = 1.9.1
-        if self._mad_dbrev.split('.') < '1.10.0'.split('.'):
+        if is_rev_gte([1,9,1],rev):
             filename = os.path.join(self._maddir, 'madpack',
                                     'changelist_1.9.1_1.12.yaml')
         # _mad_dbrev = 1.10.0
-        elif self._mad_dbrev.split('.') < '1.11'.split('.'):
+        elif is_rev_gte([1,10],rev):
             filename = os.path.join(self._maddir, 'madpack',
                                     'changelist_1.10.0_1.12.yaml')
         # _mad_dbrev = 1.11

http://git-wip-us.apache.org/repos/asf/madlib/blob/75538304/src/madpack/utilities.py
----------------------------------------------------------------------
diff --git a/src/madpack/utilities.py b/src/madpack/utilities.py
new file mode 100644
index 0000000..5bb72a6
--- /dev/null
+++ b/src/madpack/utilities.py
@@ -0,0 +1,107 @@
+#!/usr/bin/env python#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# Madpack utilities
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+import re
+from itertools import izip_longest
+
+def is_rev_gte(left, right):
+    """ Return if left >= right
+
+    Args:
+        @param left: list. Revision numbers in a list form (as returned by
+                           _get_rev_num).
+        @param right: list. Revision numbers in a list form (as returned by
+                           _get_rev_num).
+
+    Returns:
+        Boolean
+
+    If left and right are all numeric then regular list comparison occurs.
+    If either one contains a string, then comparison occurs till both have int.
+        First list to have a string is considered smaller
+        (including if the other does not have an element in corresponding index)
+
+    Examples:
+        [1, 9, 0] >= [1, 9, 0]
+        [1, 9, 1] >= [1, 9, 0]
+        [1, 9, 1] >= [1, 9]
+        [1, 10] >= [1, 9, 1]
+        [1, 9, 0] >= [1, 9, 0, 'dev']
+        [1, 9, 1] >= [1, 9, 0, 'dev']
+        [1, 9, 0] >= [1, 9, 'dev']
+        [1, 9, 'rc'] >= [1, 9, 'dev']
+        [1, 9, 'rc', 0] >= [1, 9, 'dev', 1]
+        [1, 9, 'rc', '1'] >= [1, 9, 'rc', '1']
+    """
+    def all_numeric(l):
+        return not l or all(isinstance(i, int) for i in l)
+
+    if all_numeric(left) and all_numeric(right):
+        return left >= right
+    else:
+        for i, (l_e, r_e) in enumerate(izip_longest(left, right)):
+            if isinstance(l_e, int) and isinstance(r_e, int):
+                if l_e == r_e:
+                    continue
+                else:
+                    return l_e > r_e
+            elif isinstance(l_e, int) or isinstance(r_e, int):
+                #  [1, 9, 0] > [1, 9, 'dev']
+                #  [1, 9, 0] > [1, 9]
+                return isinstance(l_e, int)
+            else:
+                # both are not int
+                if r_e is None:
+                    # [1, 9, 'dev'] < [1, 9]
+                    return False
+                else:
+                    return l_e is None or left[i:] >= right[i:]
+        return True
+# ----------------------------------------------------------------------
+
+
+def get_rev_num(rev):
+    """
+    Convert version string into number for comparison
+        @param rev version text
+                It is expected to follow Semantic Versioning (semver.org)
+                Valid inputs:
+                    1.9.0, 1.10.0, 2.5.0
+                    1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92
+                    1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85
+    """
+    try:
+        rev_parts = re.split('[-+_]', rev)
+        # get numeric part of the version string
+        num = [int(i) for i in rev_parts[0].split('.')]
+        num += [0] * (3 - len(num))  # normalize num to be of length 3
+        # get identifier part of the version string
+        if len(rev_parts) > 1:
+            num.extend(map(str, rev_parts[1:]))
+        if not num:
+            num = [0]
+        return num
+    except:
+        # invalid revision
+        return [0]
+# ------------------------------------------------------------------------------


[2/2] madlib git commit: PMML: Update the pyxb version number to 1.2.6

Posted by ok...@apache.org.
PMML: Update the pyxb version number to 1.2.6

Closes #198


Project: http://git-wip-us.apache.org/repos/asf/madlib/repo
Commit: http://git-wip-us.apache.org/repos/asf/madlib/commit/b8402a2b
Tree: http://git-wip-us.apache.org/repos/asf/madlib/tree/b8402a2b
Diff: http://git-wip-us.apache.org/repos/asf/madlib/diff/b8402a2b

Branch: refs/heads/master
Commit: b8402a2b79fb2ac70c3e11173c65f9f236e70af3
Parents: 7553830
Author: Orhan Kislal <ok...@pivotal.io>
Authored: Tue Nov 14 11:43:24 2017 -0800
Committer: Orhan Kislal <ok...@pivotal.io>
Committed: Tue Nov 14 11:43:42 2017 -0800

----------------------------------------------------------------------
 src/ports/postgres/modules/pmml/binding.py_in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/madlib/blob/b8402a2b/src/ports/postgres/modules/pmml/binding.py_in
----------------------------------------------------------------------
diff --git a/src/ports/postgres/modules/pmml/binding.py_in b/src/ports/postgres/modules/pmml/binding.py_in
index 2e475f9..d6d1dda 100644
--- a/src/ports/postgres/modules/pmml/binding.py_in
+++ b/src/ports/postgres/modules/pmml/binding.py_in
@@ -16,7 +16,7 @@ import sys
 _GenerationUID = pyxb.utils.utility.UniqueIdentifier('urn:uuid:26e4d414-6eab-11e4-9a9d-7831c1bcb06a')
 
 # Version of PyXB used to generate the bindings
-_PyXBVersion = '1.2.4'
+_PyXBVersion = '1.2.6'
 # Generated bindings are not compatible across PyXB versions
 if pyxb.__version__ != _PyXBVersion:
     raise pyxb.PyXBVersionError(_PyXBVersion)