Example #1
0
 internal EnumHandler(IBackendType backendType, Dictionary <TEnum, string> enumToLabel, Dictionary <string, TEnum> labelToEnum)
     : base(backendType)
 {
     Contract.Requires(typeof(TEnum).GetTypeInfo().IsEnum, "EnumHandler instantiated for non-enum type");
     _enumToLabel = enumToLabel;
     _labelToEnum = labelToEnum;
 }
Example #2
0
 internal EnumHandler(IBackendType backendType, INpgsqlNameTranslator nameTranslator)
     : base(backendType)
 {
     Contract.Requires(typeof(TEnum).GetTypeInfo().IsEnum, "EnumHandler instantiated for non-enum type");
     _enumToLabel = new Dictionary <TEnum, string>();
     _labelToEnum = new Dictionary <string, TEnum>();
     GenerateMappings(nameTranslator, _enumToLabel, _labelToEnum);
 }
Example #3
0
        public TimeHandler(IBackendType backendType, TypeHandlerRegistry registry)
            : base(backendType)
        {
            // Check for the legacy floating point timestamps feature, defaulting to integer timestamps
            string s;

            _integerFormat = !registry.Connector.BackendParams.TryGetValue("integer_datetimes", out s) || s == "on";
        }
Example #4
0
        internal PostgisGeometryHandler(IBackendType backendType, TypeHandlerRegistry registry)
            : base(backendType)
        {
            var byteaHandler = registry[NpgsqlDbType.Bytea];

            if (_byteaHandler == registry.UnrecognizedTypeHandler)
            {
                Log.Warn("oid type not present when setting up oidvector type. oidvector will not work.");
                return;
            }
            _byteaHandler = (ByteaHandler)byteaHandler;
        }
Example #5
0
        public Int2VectorHandler(IBackendType backendType, TypeHandlerRegistry registry)
            : base(backendType, null, 0)
        {
            // The pg_type SQL query makes sure that the int2 type comes before int2vector, so we can
            // depend on it already being in the registry
            var shortHandler = registry[NpgsqlDbType.Smallint];

            if (shortHandler == registry.UnrecognizedTypeHandler)
            {
                Log.Warn("smallint type not present when setting up int2vector type. int2vector will not work.");
                return;
            }
            ElementHandler = shortHandler;
        }
Example #6
0
        public OIDVectorHandler(IBackendType backendType, TypeHandlerRegistry registry)
            : base(backendType, null, 0)
        {
            // The pg_type SQL query makes sure that the oid type comes before oidvector, so we can
            // depend on it already being in the registry
            var oidHandler = registry[NpgsqlDbType.Oid];

            if (oidHandler == registry.UnrecognizedTypeHandler)
            {
                Log.Warn("oid type not present when setting up oidvector type. oidvector will not work.");
                return;
            }
            ElementHandler = oidHandler;
        }
Example #7
0
 public BitStringArrayHandler(IBackendType backendType, BitStringHandler elementHandler)
     : base(backendType, elementHandler)
 {
 }
Example #8
0
 internal Int16Handler(IBackendType backendType) : base(backendType)
 {
 }
Example #9
0
 internal ByteaHandler(IBackendType backendType) : base(backendType)
 {
 }
Example #10
0
 /// <summary>
 /// Creates a type handler for ranges of this handler's type.
 /// </summary>
 internal abstract TypeHandler CreateRangeHandler(IBackendType rangeBackendType);
Example #11
0
 internal TextHandler(IBackendType backendType) : base(backendType)
 {
 }
Example #12
0
 internal override TypeHandler CreateRangeHandler(IBackendType backendType)
 {
     throw new Exception("Can't create range handler of range types, this is an Npgsql bug, please report.");
 }
Example #13
0
 /// <summary>
 /// Creates a type handler for arrays of this handler's type.
 /// </summary>
 internal abstract ArrayHandler CreateArrayHandler(IBackendType arrayBackendType);
Example #14
0
 public IEnumHandler Create(IBackendType backendType)
 => new EnumHandler <TEnum>(backendType, _enumToLabel, _labelToEnum);
Example #15
0
 internal PolygonHandler(IBackendType backendType) : base(backendType)
 {
 }
Example #16
0
 internal SimpleTypeHandlerWithPsv(IBackendType backendType) : base(backendType)
 {
 }
Example #17
0
 internal override ArrayHandler CreateArrayHandler(IBackendType arrayBackendType)
 {
     return(new ArrayHandlerWithPsv <T, TPsv>(arrayBackendType, this));
 }
Example #18
0
 internal CompositeHandler(IBackendType backendType, INpgsqlNameTranslator nameTranslator, TypeHandlerRegistry registry)
     : base(backendType)
 {
     _nameTranslator = nameTranslator;
     _registry       = registry;
 }
Example #19
0
 public ICompositeHandler Create(IBackendType backendType, TypeHandlerRegistry registry)
 => new CompositeHandler <T>(backendType, _nameTranslator, registry);
Example #20
0
 internal JsonbHandler(IBackendType backendType) : base(backendType)
 {
     _textHandler = new TextHandler(backendType);
 }
Example #21
0
 internal NonSafeExceptionGeneratingHandler(IBackendType backendType)
     : base(backendType)
 {
 }
Example #22
0
 internal CircleHandler(IBackendType backendType) : base(backendType)
 {
 }
Example #23
0
 public RecordHandler(IBackendType backendType, TypeHandlerRegistry registry)
     : base(backendType)
 {
     _registry = registry;
 }
Example #24
0
 internal override ArrayHandler CreateArrayHandler(IBackendType backendType)
 {
     // BitString requires a special array handler which returns bool or BitArray
     return(new BitStringArrayHandler(backendType, this));
 }
Example #25
0
 internal ChunkingTypeHandler(IBackendType backendType) : base(backendType)
 {
 }
Example #26
0
 public RangeHandler(IBackendType backendType, TypeHandler <TElement> elementHandler)
     : base(backendType)
 {
     ElementHandler = elementHandler;
 }
Example #27
0
 internal BitStringHandler(IBackendType backendType) : base(backendType)
 {
 }
Example #28
0
 internal ChunkingTypeHandlerContracts(IBackendType backendType) : base(backendType)
 {
 }
Example #29
0
 internal DoubleHandler(IBackendType backendType) : base(backendType)
 {
 }
Example #30
0
 internal TypeHandler(IBackendType backendType)
 {
     BackendType = backendType;
 }