id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type
1075765204,I_kwDOAMm_X85AHt_U,6055,Unexpected type conversion in variables with _FillValue,24235303,closed,0,,,4,2021-12-09T16:26:54Z,2023-09-13T12:40:14Z,2023-09-13T12:40:13Z,CONTRIBUTOR,,,,"**What happened**:
When opening a dataset with an int16 variable with the `_FillValue` attribute, the variable is converted from type int16 to float32. This was originally reported to the TileDB-CF-Py Git repo that contains a TileDB backend for xarray. See [TileDB-CF-Py issue #117](https://github.com/TileDB-Inc/TileDB-CF-Py/issues/117).

**What you expected to happen**:
I would expect the type to remain the same when applying the _FillValue.

**Minimal Complete Verifiable Example**:

Original example from [TileDB-CF-Py issue #117](https://github.com/TileDB-Inc/TileDB-CF-Py/issues/117) using the TileDB backend.
```python
import tiledb
import xarray as xr
import numpy as np

index = tiledb.Dim(name='index', domain=(0, 3))
domain = tiledb.Domain(index)
var = tiledb.Attr(name='var', dtype=np.int16)
schema = tiledb.ArraySchema(domain=domain, attrs=[var], sparse=False)
tiledb.Array.create('dense_array0', schema)

with tiledb.open('dense_array0', 'w') as A:
    A[:] = np.array([5, 6, 7, 8], dtype=np.int16)

ds = xr.open_dataset('dense_array0', engine='tiledb')
ds['var'].dtype
```

NetCDF example with the same behavior:
```python
import netCDF4
import xarray  as xr
import numpy as np

filename = 'temp_file.nc'
with netCDF4.Dataset(filename, mode=""w"") as group:
    group.createDimension(""index"", 4)
    var = group.createVariable(""var"", np.int16, (""index"",), fill_value=-1)
    var[:] = np.array([5, 6, 7, 8], dtype=np.int16)
dataset = xr.open_dataset(filename)
dataset[""var""].dtype
```

**Anything else we need to know?**:
* I was able to verify the type conversion from int16 to float32 occurs in the `conventions.decode_cf_variables` call in the `open_dataset` method of `StoreBackendEntrypoint`.
* I was able to verify the conversion does not happen if `mask_and_scale=False`.
* Note that TileDB is automatically setting a fill value for all dense numerical arrays, and so we are always setting the `_FillValue` attribute for variables from the TileDB backend.

**Environment**:
I was able to reproduce this with both xarray 0.19.0 and 0.20.1

","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6055/reactions"", ""total_count"": 1, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 1}",,completed,13221727,issue
822419493,MDExOlB1bGxSZXF1ZXN0NTg1MDQ3NjYw,4998,(WIP) Proof-of-concept backend redesign,24235303,closed,0,,,3,2021-03-04T19:11:10Z,2021-09-10T18:03:31Z,2021-09-10T18:03:31Z,CONTRIBUTOR,,1,pydata/xarray/pulls/4998,"This branch is intended to demonstrate how the backend API could be modified to support a generic lazy loading DataStore. It should **not** be merged into master.

- [ ] Closes #xxxx
- [ ] Tests added
- [ ] Passes `pre-commit run --all-files`
- [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst`
- [ ] New functions/methods are listed in `api.rst`
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4998/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull
820480606,MDU6SXNzdWU4MjA0ODA2MDY=,4987,A read-only TileDB backend,24235303,closed,0,,,14,2021-03-02T23:36:46Z,2021-03-11T17:55:28Z,2021-03-09T15:14:37Z,CONTRIBUTOR,,,,This is a feature request for a read-only TileDB backend for reading a dense TileDB array into an xarray Dataset.,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4987/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue
820485472,MDExOlB1bGxSZXF1ZXN0NTgzNDIxODQ3,4988,feat: Add a read-only TileDB backend,24235303,closed,0,,,2,2021-03-02T23:47:32Z,2021-03-09T15:09:13Z,2021-03-09T15:09:13Z,CONTRIBUTOR,,0,pydata/xarray/pulls/4988,"* Add TileDB backend using plugin architecture
* Add backend tests (82% coverage for `xarray/backends/tiledb_.py`)
* Add dask/distributed integration tests for both integer and datetime
TileDB dimensions.

- [x] Closes #4987
- [x] Tests added
- [x] Passes `pre-commit run --all-files`
- [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst`
- [ ] New functions/methods are listed in `api.rst`
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4988/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull