From 28ed1f71d38cbb47aee91af073a6fb116182cfe9 Mon Sep 17 00:00:00 2001 From: ?ngel ?lvarez Date: Tue, 10 Apr 2018 15:07:58 +0200 Subject: [PATCH] add support to psql v10 --- series | 2 +- support_postgresql10_6789.patch | 39 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 support_postgresql10_6789.patch diff --git a/series b/series index b958958..12c7672 100644 --- a/series +++ b/series @@ -55,7 +55,7 @@ commission-issue6322-issue6501.diff sepa_sequence_type.diff add_account_in_move_line_payable_receivable.diff locale.diff - +#support_postgresql10_6789.patch issue6179.diff issue6294.diff # [tryton] - Creating a board view with a form inside diff --git a/support_postgresql10_6789.patch b/support_postgresql10_6789.patch new file mode 100644 index 0000000..ffde2f4 --- /dev/null +++ b/support_postgresql10_6789.patch @@ -0,0 +1,39 @@ +diff -r 57512456d26d trytond/ir/sequence.py +--- a/trytond/trytond/ir/sequence.py Thu Mar 01 22:53:06 2018 +0100 ++++ b/trytond/trytond/ir/sequence.py Tue Apr 10 15:02:58 2018 +0200 +@@ -163,10 +163,31 @@ + cursor = Transaction().cursor + sql_name = self._sql_sequence_name + if sql_sequence and not self._strict: +- cursor.execute('SELECT ' +- 'CASE WHEN NOT is_called THEN last_value ' +- 'ELSE last_value + increment_by ' +- 'END FROM "%s"' % sql_name) ++ cursor.execute('SELECT version()') ++ cursor.execute('SHOW server_version_num') ++ version, = cursor.fetchone() ++ major, rest = divmod(int(version), 10000) ++ minor, patch = divmod(rest, 100) ++ version = (major, minor) ++ if version >= (10, 0): ++ param = Flavor.get().param ++ cursor.execute( ++ 'SELECT increment_by ' ++ 'FROM pg_sequences ' ++ 'WHERE sequencename=%s ' ++ % param, (sql_name,)) ++ increment, = cursor.fetchone() ++ cursor.execute( ++ 'SELECT CASE WHEN NOT is_called THEN last_value ' ++ 'ELSE last_value + %s ' ++ 'END ' ++ 'FROM "%s"' % (param, sql_name), ++ (increment,)) ++ else: ++ cursor.execute('SELECT ' ++ 'CASE WHEN NOT is_called THEN last_value ' ++ 'ELSE last_value + increment_by ' ++ 'END FROM "%s"' % sql_name) + return cursor.fetchone()[0] + else: + return self.number_next_internal