public PostgreSQLDataProvider(PostgreSQLVersion version = PostgreSQLVersion.v92)
     : this(
         GetProviderName(version),
         new PostgreSQLMappingSchema(),
         version)
 {
 }
Ejemplo n.º 2
0
 public PostgreSQLDataProvider(PostgreSQLVersion version = PostgreSQLVersion.v92)
     : this(
         version == PostgreSQLVersion.v92 ? ProviderName.PostgreSQL92 : ProviderName.PostgreSQL93,
         new PostgreSQLMappingSchema(),
         version)
 {
 }
Ejemplo n.º 3
0
        protected PostgreSQLDataProvider(string name, PostgreSQLVersion version)
            : base(name, GetMappingSchema(version), NpgsqlProviderAdapter.GetInstance())
        {
            Version = version;

            SqlProviderFlags.IsApplyJoinSupported              = version != PostgreSQLVersion.v92;
            SqlProviderFlags.IsInsertOrUpdateSupported         = version == PostgreSQLVersion.v95;
            SqlProviderFlags.IsUpdateSetTableAliasSupported    = false;
            SqlProviderFlags.IsCommonTableExpressionsSupported = true;
            SqlProviderFlags.IsDistinctOrderBySupported        = false;
            SqlProviderFlags.IsSubQueryOrderBySupported        = true;
            SqlProviderFlags.IsAllSetOperationsSupported       = true;

            SqlProviderFlags.RowConstructorSupport = RowFeature.Equality | RowFeature.Comparisons |
                                                     RowFeature.CompareToSelect | RowFeature.In | RowFeature.IsNull |
                                                     RowFeature.Update | RowFeature.UpdateLiteral |
                                                     RowFeature.Overlaps | RowFeature.Between;

            SetCharFieldToType <char>("bpchar", DataTools.GetCharExpression);
            SetCharFieldToType <char>("character", DataTools.GetCharExpression);

            SetCharField("bpchar", (r, i) => r.GetString(i).TrimEnd(' '));
            SetCharField("character", (r, i) => r.GetString(i).TrimEnd(' '));

            _sqlOptimizer = new PostgreSQLSqlOptimizer(SqlProviderFlags);

            ConfigureTypes();
        }
Ejemplo n.º 4
0
        public PostgreSQLDataProvider(string name, PostgreSQLVersion version = PostgreSQLVersion.v92)
            : base(
                name,
                GetMappingSchema(version, NpgsqlProviderAdapter.GetInstance().MappingSchema),
                NpgsqlProviderAdapter.GetInstance())
        {
            Version = version;

            SqlProviderFlags.IsApplyJoinSupported              = version != PostgreSQLVersion.v92;
            SqlProviderFlags.IsInsertOrUpdateSupported         = version == PostgreSQLVersion.v95;
            SqlProviderFlags.IsUpdateSetTableAliasSupported    = false;
            SqlProviderFlags.IsCommonTableExpressionsSupported = true;
            SqlProviderFlags.IsDistinctOrderBySupported        = false;
            SqlProviderFlags.IsSubQueryOrderBySupported        = true;
            SqlProviderFlags.IsAllSetOperationsSupported       = true;
            SqlProviderFlags.IsGroupByExpressionSupported      = false;

            SetCharFieldToType <char>("bpchar", DataTools.GetCharExpression);
            SetCharFieldToType <char>("character", DataTools.GetCharExpression);

            SetCharField("bpchar", (r, i) => r.GetString(i).TrimEnd(' '));
            SetCharField("character", (r, i) => r.GetString(i).TrimEnd(' '));

            _sqlOptimizer = new PostgreSQLSqlOptimizer(SqlProviderFlags);

            ConfigureTypes();
        }
Ejemplo n.º 5
0
        protected virtual IDataProvider CreatePotgreSqlProvider(PostgreSQLVersion version, string connectionString)
        {
            if (!string.IsNullOrEmpty(connectionString))
            {
                return(DataConnection.GetDataProvider(ProviderName.PostgreSQL, connectionString));
            }

            string providerName;

            switch (version)
            {
            case PostgreSQLVersion.v92:
                providerName = ProviderName.PostgreSQL92;
                break;

            case PostgreSQLVersion.v93:
                providerName = ProviderName.PostgreSQL93;
                break;

            case PostgreSQLVersion.v95:
                providerName = ProviderName.PostgreSQL95;
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(version), version, null);
            }

            return(new PostgreSQLDataProvider(providerName, version));
        }
Ejemplo n.º 6
0
 public static IDataProvider GetDataProvider(PostgreSQLVersion version = PostgreSQLVersion.v92)
 {
     return(version switch
     {
         PostgreSQLVersion.v95 => _postgreSQLDataProvider95.Value,
         PostgreSQLVersion.v93 => _postgreSQLDataProvider93.Value,
         _ => _postgreSQLDataProvider92.Value,
     });
Ejemplo n.º 7
0
 private static string GetProviderName(PostgreSQLVersion version)
 {
     return(version switch
     {
         PostgreSQLVersion.v92 => ProviderName.PostgreSQL92,
         PostgreSQLVersion.v93 => ProviderName.PostgreSQL93,
         _ => ProviderName.PostgreSQL95,
     });
Ejemplo n.º 8
0
        private static MappingSchema GetMappingSchema(PostgreSQLVersion version, MappingSchema providerSchema)
        {
            switch (version)
            {
            case PostgreSQLVersion.v92: return(new PostgreSQL92MappingSchema(providerSchema));

            case PostgreSQLVersion.v93: return(new PostgreSQL93MappingSchema(providerSchema));

            default:
            case PostgreSQLVersion.v95: return(new PostgreSQL95MappingSchema(providerSchema));
            }
        }
        private static string GetProviderName(PostgreSQLVersion version)
        {
            switch (version)
            {
            case PostgreSQLVersion.v92:
                return(ProviderName.PostgreSQL92);

            case PostgreSQLVersion.v93:
                return(ProviderName.PostgreSQL93);

            default:
                return(ProviderName.PostgreSQL95);
            }
        }
Ejemplo n.º 10
0
        public static IDataProvider GetDataProvider(PostgreSQLVersion version = PostgreSQLVersion.v92)
        {
            switch (version)
            {
            case PostgreSQLVersion.v95:
                return(_postgreSQLDataProvider95.Value);

            case PostgreSQLVersion.v93:
                return(_postgreSQLDataProvider93.Value);

            default:
            case PostgreSQLVersion.v92:
                return(_postgreSQLDataProvider92.Value);
            }
        }
        protected PostgreSQLDataProvider(string name, MappingSchema mappingSchema, PostgreSQLVersion version = PostgreSQLVersion.v92)
            : base(name, mappingSchema)
        {
            Version = version;

            SqlProviderFlags.IsApplyJoinSupported              = version != PostgreSQLVersion.v92;
            SqlProviderFlags.IsInsertOrUpdateSupported         = version == PostgreSQLVersion.v95;
            SqlProviderFlags.IsUpdateSetTableAliasSupported    = false;
            SqlProviderFlags.IsCommonTableExpressionsSupported = true;

            SetCharFieldToType <char>("bpchar", (r, i) => DataTools.GetChar(r, i));

            SetCharField("bpchar", (r, i) => r.GetString(i).TrimEnd(' '));

            _sqlOptimizer = new PostgreSQLSqlOptimizer(SqlProviderFlags);
        }
Ejemplo n.º 12
0
        protected PostgreSQLDataProvider(string name, MappingSchema mappingSchema, PostgreSQLVersion version = PostgreSQLVersion.v92)
            : base(name, mappingSchema)
        {
            Version = version;

            if (version == PostgreSQLVersion.v93)
            {
                SqlProviderFlags.IsApplyJoinSupported = true;
            }

            SqlProviderFlags.IsInsertOrUpdateSupported      = false;
            SqlProviderFlags.IsUpdateSetTableAliasSupported = false;

            SetCharField("bpchar", (r, i) => r.GetString(i).TrimEnd());

            _sqlOptimizer = new PostgreSQLSqlOptimizer(SqlProviderFlags);
        }
Ejemplo n.º 13
0
 public static DataConnection CreateDataConnection(IDbTransaction transaction, PostgreSQLVersion version = PostgreSQLVersion.v92)
 {
     return(new DataConnection(GetDataProvider(version), transaction));
 }
Ejemplo n.º 14
0
 public static DataConnection CreateDataConnection(string connectionString, PostgreSQLVersion version = PostgreSQLVersion.v92)
 {
     return(new DataConnection(GetDataProvider(version), connectionString));
 }
Ejemplo n.º 15
0
 public static IDataProvider GetDataProvider(PostgreSQLVersion version = PostgreSQLVersion.v92)
 {
     return(version == PostgreSQLVersion.v92 ? _postgreSQLDataProvider : _postgreSQLDataProvider93);
 }
Ejemplo n.º 16
0
 public PostgreSQLDataProvider(string providerName, PostgreSQLVersion version)
     : this(providerName, new PostgreSQLMappingSchema(), version)
 {
 }
 /// <summary>
 /// Configure connection to use PostgreSQL Npgsql provider, specific dialect and connection string.
 /// </summary>
 /// <param name="builder">Instance of <see cref="LinqToDbConnectionOptionsBuilder"/>.</param>
 /// <param name="connectionString">PostgreSQL connection string.</param>
 /// <param name="dialect">POstgreSQL dialect support level.</param>
 /// <returns>The builder instance so calls can be chained.</returns>
 public static LinqToDbConnectionOptionsBuilder UsePostgreSQL(this LinqToDbConnectionOptionsBuilder builder, string connectionString, PostgreSQLVersion dialect)
 {
     return(builder.UseConnectionString(PostgreSQLTools.GetDataProvider(dialect), connectionString));
 }
Ejemplo n.º 18
0
 protected PostgreSQLDataProvider(PostgreSQLVersion version)
     : this(GetProviderName(version), version)
 {
 }
Ejemplo n.º 19
0
 public PostgreSQLDataProvider(PostgreSQLVersion version = PostgreSQLVersion.v92)
     : this(GetProviderName(version), version)
 {
 }