/// <summary> /// Adds limits to the command builder. /// </summary> /// <param name="skip">The number of rows to skip.</param> /// <param name="take">Number of rows to take.</param> /// <param name="limitOptions">The limit options.</param> /// <param name="seed">The seed for repeatable reads. Only applies to random sampling</param> /// <returns>TableDbCommandBuilder<NpgsqlCommand, NpgsqlParameter, PostgreSqlLimitOption>.</returns> protected override TableDbCommandBuilder <NpgsqlCommand, NpgsqlParameter, PostgreSqlLimitOption> OnWithLimits(int?skip, int?take, LimitOptions limitOptions, int?seed) { m_Seed = seed; m_Skip = skip; m_Take = take; m_LimitOptions = (PostgreSqlLimitOption)limitOptions; return(this); }
public static bool RequiresSorting(this PostgreSqlLimitOption limitOption) { return(limitOption switch { PostgreSqlLimitOption.None => false, PostgreSqlLimitOption.Rows => true, PostgreSqlLimitOption.TableSampleSystemPercentage => false, PostgreSqlLimitOption.TableSampleBernoulliPercentage => false, _ => throw new ArgumentOutOfRangeException(nameof(limitOption), limitOption, "Unknown limit option") });