Repository: lightkurve/lightkurve

Issue:
QLP problems
<!-- Fill in the information below before opening an issue. -->

#### Problem description
A value error is generated when a QLP light curve is appended to a Kepler light curve:

#### Example
<!-- Provide a link or minimal code snippet that demonstrates the issue. -->
```python
import lightkurve as lk
klcc = lk.search_lightcurve('Kepler-18', cadence='long')[:18].download_all()
klc = klcc.stitch()
qlcc = lk.search_lightcurve('Kepler-18', author='QLP').download_all()
qlc = qlcc[0].append(qlcc[1])
qlc.time.format = 'bkjd'
lc1 = klc.append(qlc)
lc1.scatter()
```
The first append works as intended, but the second append gives the value error

#### Expected behavior
<!-- Describe the behavior you expected and how it differs from the behavior observed in the example. -->
I expected QLP to work the same as TESS-SPOC, which does work:
```python
import lightkurve as lk
klcc = lk.search_lightcurve('Kepler-18', cadence='long')[:18].download_all()
klc = klcc.stitch()
tlcc = lk.search_lightcurve('Kepler-18', author='TESS-SPOC').download_all()
tlc = tlcc.stitch()
tlc.time.format = 'bkjd'
lc2 = klc.append(tlc)
lc2.scatter()
```
#### Environment

-  platform (e.g. Linux, OSX, Windows): Jupyter Notebook 6.1.4 in Firefox 87.0 in Linux (Pop!_OS 20.04 Ubuntu based)
-  lightkurve version (e.g. 1.0b6): 2.0.7
-  installation method (e.g. pip, conda, source): copy & pasted in notebook cell: ! python -m pip install lightkurve --upgrade


Discussion:

Patch:
diff --git a/CHANGES.rst b/CHANGES.rst
index 6bd7de79..27614f56 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -1,3 +1,10 @@
+2.0.9 (unreleased)
+==================
+
+- Fixed a bug in ``LightCurve.append()`` which caused the method to crash
+  if the light curves contained incompatible column types. [#1015]
+
+
 2.0.8 (2021-03-30)
 ==================
 
diff --git a/pyproject.toml b/pyproject.toml
index 59134843..726b0172 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "lightkurve"
-version = "2.0.8"
+version = "2.0.9dev"
 description = "A friendly package for Kepler & TESS time series analysis in Python."
 license = "MIT"
 authors = ["Geert Barentsen <hello@geert.io>"]
diff --git a/setup.py b/setup.py
index 733c4823..d38f864f 100644
--- a/setup.py
+++ b/setup.py
@@ -33,7 +33,7 @@ if os.path.exists(readme_path):
 setup(
     long_description=readme,
     name='lightkurve',
-    version='2.0.8',
+    version='2.0.9dev',
     description='A friendly package for Kepler & TESS time series analysis in Python.',
     python_requires='>=3.6.1',
     project_urls={"homepage": "https://docs.lightkurve.org", "repository": "https://github.com/lightkurve/lightkurve"},
diff --git a/src/lightkurve/lightcurve.py b/src/lightkurve/lightcurve.py
index c0118ac3..99fd3794 100644
--- a/src/lightkurve/lightcurve.py
+++ b/src/lightkurve/lightcurve.py
@@ -667,8 +667,10 @@ class LightCurve(QTimeSeries):
             )
         if not hasattr(others, "__iter__"):
             others = (others,)
-        # Need `join_type='inner'` until AstroPy supports masked Quantities
-        return vstack((self, *others), join_type="inner", metadata_conflicts="silent")
+
+        # Re-use LightCurveCollection.stitch() to avoid code duplication
+        from .collections import LightCurveCollection  # avoid circular import
+        return LightCurveCollection((self, *others)).stitch(corrector_func=None)
 
     def flatten(
         self,
diff --git a/src/lightkurve/version.py b/src/lightkurve/version.py
index e9964441..73fa8432 100644
--- a/src/lightkurve/version.py
+++ b/src/lightkurve/version.py
@@ -1,3 +1,3 @@
 # It is important to store the version number in a separate file
 # so that we can read it from setup.py without importing the package
-__version__ = "2.0.8"
+__version__ = "2.0.9dev"


Test patch:
diff --git a/tests/test_collections.py b/tests/test_collections.py
index 3654745d..997edaf3 100644
--- a/tests/test_collections.py
+++ b/tests/test_collections.py
@@ -357,8 +357,10 @@ def test_accessor_k2_campaign():
 
 
 def test_unmergeable_columns():
-    """Regression test for #954."""
+    """Regression test for #954 and #1015."""
     lc1 = LightCurve(data={'time': [1,2,3], 'x': [1,2,3]})
     lc2 = LightCurve(data={'time': [1,2,3], 'x': [1,2,3]*u.electron/u.second})
     with pytest.warns(LightkurveWarning, match="column types are incompatible"):
         LightCurveCollection([lc1, lc2]).stitch()
+    with pytest.warns(LightkurveWarning, match="column types are incompatible"):
+        lc1.append(lc2)