From eedf5f228f57e2c9ee723e386c0bacd1066108df Mon Sep 17 00:00:00 2001 From: Alexander Zaytsev Date: Fri, 7 Apr 2017 10:37:34 +1200 Subject: [PATCH 1/2] NH-3921 - Sequence support for Ingres9 --- src/NHibernate/Dialect/Ingres9Dialect.cs | 31 +++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/NHibernate/Dialect/Ingres9Dialect.cs b/src/NHibernate/Dialect/Ingres9Dialect.cs index 9853388c625..b9de862e8fb 100644 --- a/src/NHibernate/Dialect/Ingres9Dialect.cs +++ b/src/NHibernate/Dialect/Ingres9Dialect.cs @@ -30,7 +30,12 @@ public override bool SupportsLimitOffset { get { return true; } } - + + /// + /// Does this dialect support sequences? + /// + public override bool SupportsSequences => true; + /// /// Attempts to add a LIMIT clause to the given SQL SELECT. /// Expects any database-specific offset and limit adjustments to have already been performed (ex. UseMaxForLimit, OffsetStartsAtOne). @@ -65,10 +70,30 @@ public override SqlString GetLimitString(SqlString queryString, SqlString offset return pagingBuilder.ToSqlString(); } + public override string GetSequenceNextValString(string sequenceName) + { + return "select " + GetSelectSequenceNextValString(sequenceName) + " as seq"; + } + + public override string GetSelectSequenceNextValString(string sequenceName) + { + return "next value for " + sequenceName; + } + + public override string GetCreateSequenceString(string sequenceName) + { + return "create sequence " + sequenceName; + } + + public override string GetDropSequenceString(string sequenceName) + { + return "drop sequence " + sequenceName; + } + #region Overridden informational metadata - + public override bool DoesRepeatableReadCauseReadersToBlockWriters => true; #endregion } -} \ No newline at end of file +} From 98231b97487e18d119700412548eb0946759090a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Delaporte?= Date: Mon, 8 Jan 2018 16:21:41 +0100 Subject: [PATCH 2/2] Proposed changes as per review, to be squashed. --- src/NHibernate/Dialect/Ingres9Dialect.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/NHibernate/Dialect/Ingres9Dialect.cs b/src/NHibernate/Dialect/Ingres9Dialect.cs index b9de862e8fb..1d7f9761b63 100644 --- a/src/NHibernate/Dialect/Ingres9Dialect.cs +++ b/src/NHibernate/Dialect/Ingres9Dialect.cs @@ -31,11 +31,15 @@ public override bool SupportsLimitOffset get { return true; } } - /// - /// Does this dialect support sequences? - /// + /// public override bool SupportsSequences => true; + /// + public override bool SupportsPooledSequences => true; + + /// + public override string QuerySequencesString => "select seq_name from iisequences"; + /// /// Attempts to add a LIMIT clause to the given SQL SELECT. /// Expects any database-specific offset and limit adjustments to have already been performed (ex. UseMaxForLimit, OffsetStartsAtOne). @@ -70,21 +74,25 @@ public override SqlString GetLimitString(SqlString queryString, SqlString offset return pagingBuilder.ToSqlString(); } + /// public override string GetSequenceNextValString(string sequenceName) { return "select " + GetSelectSequenceNextValString(sequenceName) + " as seq"; } + /// public override string GetSelectSequenceNextValString(string sequenceName) { return "next value for " + sequenceName; } + /// public override string GetCreateSequenceString(string sequenceName) { return "create sequence " + sequenceName; } + /// public override string GetDropSequenceString(string sequenceName) { return "drop sequence " + sequenceName;