public void NpgsqlDbTypeExtension() { using (var conn = OpenConnection()) { TestUtil.EnsureExtension(conn, "hstore", "9.1"); using (var cmd = new NpgsqlCommand("SELECT NULL::HSTORE", conn)) using (var reader = cmd.ExecuteReader(CommandBehavior.SchemaOnly)) { var columns = reader.GetColumnSchema(); // The full datatype name for PostGIS is public.geometry (unlike int4 which is in pg_catalog). Assert.That(columns[0].NpgsqlDbType, Is.EqualTo(NpgsqlTypes.NpgsqlDbType.Hstore)); } } }
public void StringToCitext() { using (var conn = OpenLocalConnection()) { TestUtil.EnsureExtension(conn, "citext"); conn.TypeMapper.RemoveMapping("text"); conn.TypeMapper.AddMapping(new NpgsqlTypeMappingBuilder { PgTypeName = "citext", NpgsqlDbType = NpgsqlDbType.Citext, DbTypes = new[] { DbType.String }, ClrTypes = new[] { typeof(string) }, TypeHandlerFactory = new TextHandlerFactory() }.Build()); using (var cmd = new NpgsqlCommand("SELECT @p = 'hello'::citext", conn)) { cmd.Parameters.AddWithValue("p", "HeLLo"); Assert.That(cmd.ExecuteScalar(), Is.True); } } }