Exemple #1
0
def test_read_special_strings(connection, xyz):
    """Tests empty and special UTF-8 string values"""

    date = pd.to_datetime(datetime.date(2017, 1, 1))
    data = [[1, 'joe\\\t\\t\t\u00A0jane\njack', date],
            [2, 'james\u2620johnny', date], [3, '', date]]
    expected = pd.DataFrame(data, columns=['id', 'sss', 'date'])
    to_clickhouse(expected, 'xyz', index=False, connection=connection)

    query = 'SELECT * FROM {db}.xyz WHERE id IN (1, 2, 3)'
    df = read_clickhouse(query, connection=connection)

    assert_frame_equal(df, expected)
Exemple #2
0
def test_write_read_column_order(connection, xyz2):
    date = pd.to_datetime(datetime.date(2017, 1, 1))
    data = [[1, 'joe\\\t\\t\t\u00A0jane\njack', 15, date, 125]]
    columns = ['id', 'sss', 'joe', 'date', 'jessy']

    expected = pd.DataFrame(data, columns=columns)
    expected['joe'] = expected['joe'].astype(np.uint64)
    expected['jessy'] = expected['jessy'].astype(np.int32)
    to_clickhouse(expected, 'xyz2', index=False, connection=connection)

    query = 'SELECT * FROM {db}.xyz2 WHERE id=1;'
    df = read_clickhouse(query, connection=connection)

    assert_frame_equal(df.reindex(sorted(df.columns), axis=1),
                       expected.reindex(sorted(df.columns), axis=1))
Exemple #3
0
def test_read_special_strings(connection, xyz):
    """Tests empty and special UTF-8 string values"""

    date = pd.to_datetime(datetime.date(2017, 1, 1))
    data = [
        [1, "joe\\\t\\t\t\u00A0jane\njack", date],
        [2, "james\u2620johnny", date],
        [3, "", date],
    ]
    expected = pd.DataFrame(data, columns=["id", "sss", "date"])
    to_clickhouse(expected, "xyz", index=False, connection=connection)

    query = "SELECT * FROM {db}.xyz WHERE id IN (1, 2, 3)"
    df = read_clickhouse(query, connection=connection)

    assert_frame_equal(df, expected)
Exemple #4
0
def test_query(df, decimals, connection):
    affected_rows = to_clickhouse(df, table='decimals', connection=connection)
    assert affected_rows == 100

    df_ = read_clickhouse('SELECT B, C FROM {db}.decimals',
                          index_col='B',
                          connection=connection)
    assert df_.shape == (100, 1)
Exemple #5
0
def test_write_read_column_order(connection, xyz2):
    date = pd.to_datetime(datetime.date(2017, 1, 1))
    data = [[1, "joe\\\t\\t\t\u00A0jane\njack", 15, date, 125]]
    columns = ["id", "sss", "joe", "date", "jessy"]

    expected = pd.DataFrame(data, columns=columns)
    expected["joe"] = expected["joe"].astype(np.uint64)
    expected["jessy"] = expected["jessy"].astype(np.int32)
    to_clickhouse(expected, "xyz2", index=False, connection=connection)

    query = "SELECT * FROM {db}.xyz2 WHERE id=1;"
    df = read_clickhouse(query, connection=connection)

    assert_frame_equal(
        df.reindex(sorted(df.columns), axis=1),
        expected.reindex(sorted(df.columns), axis=1),
    )
Exemple #6
0
def test_insert(df, decimals, connection):
    affected_rows = to_clickhouse(df, table='decimals', connection=connection)
    assert affected_rows == 100

    df_ = read_clickhouse('SELECT * FROM {db}.decimals',
                          index_col='A',
                          connection=connection)
    assert df.shape == df_.shape
    assert df.columns.tolist() == df_.columns.tolist()
Exemple #7
0
def test_nullable(connection, nullable):
    df = pd.DataFrame({
        "A":
        np.arange(5, dtype="int64"),
        "B":
        np.array([0.0, np.nan, 2.2, 3.3, 4.4], dtype="float32"),
        "C":
        pd.array([0, 1, None, 3, 4], dtype=pd.Int32Dtype()),
        "D":
        pd.Timestamp("2017-05-03"),
    })
    df = df.set_index("A")

    affected_rows = to_clickhouse(df, table="nullable", connection=connection)
    assert affected_rows == 5

    df_ = read_clickhouse("SELECT A, B, C, D FROM {db}.nullable",
                          index_col="A",
                          connection=connection)
    assert_frame_equal(df_, df)