James B. Rothnie Jr.

14 papers A* 3Journal 6Unranked 4
YearRankTypeTitle / Venue / Authors
1981 J jnl
ACM Trans. Database Syst.
Philip A. Bernstein, Nathan Goodman, Eugene Wong, Christopher L. Reeve, James B. Rothnie Jr.
1980 J jnl
ACM Trans. Database Syst.
Philip A. Bernstein, David W. Shipman, James B. Rothnie Jr.
1980 A* conf
VLDB
Georges Gardarin, Nathan Goodman, Bruce G. Lindsay, Rudolf Munz, James B. Rothnie Jr.
1980 J jnl
ACM Trans. Database Syst.
James B. Rothnie Jr., Philip A. Bernstein, Stephen Fox, Nathan Goodman, Michael Hammer, Terry A. Landers, Christopher L. Reeve, David W. Shipman, Eugene Wong
1978 A* conf
VLDB
James B. Rothnie Jr.
1978 conf
VLDB Surveys
James B. Rothnie Jr.
1978 J jnl
IEEE Trans. Software Eng.
Philip A. Bernstein, James B. Rothnie Jr., Nathan Goodman, Christos H. Papadimitriou
1977 A* conf
VLDB
James B. Rothnie Jr., Nathan Goodman
1977 conf
Berkeley Workshop
James B. Rothnie Jr., Nathan Goodman
1976 ed.
James B. Rothnie Jr.
1975 conf
AFIPS National Computer Conference
James B. Rothnie Jr.
1974 conf
SIGMOD Workshop, Vol. 1
James B. Rothnie Jr.
1974 J jnl
Commun. ACM
James B. Rothnie Jr., Tomás Lozano-Pérez
1974 J jnl
FDT Bull. ACM SIGFIDET SIGMOD
James B. Rothnie Jr.
redb/settings/clickhouse.py
← Index redb/settings/clickhouse.py python
import os
import clickhouse_connect
from dotenv import load_dotenv

load_dotenv()

# ClickHouse configuration
CLICKHOUSE_HOST = os.getenv("CLICKHOUSE_HOST")
CLICKHOUSE_PORT = os.getenv("CLICKHOUSE_PORT", "9000")
CLICKHOUSE_USER = os.getenv("CLICKHOUSE_USER")
CLICKHOUSE_PASSWORD = os.getenv("CLICKHOUSE_PASSWORD")
CLICKHOUSE_DATABASE = os.getenv("CLICKHOUSE_DATABASE", "default")
CLICKHOUSE_ENFORCE_SSL = os.getenv("CLICKHOUSE_ENFORCE_SSL", "False")

# Cached client instance
_clickhouse_client = None

def get_clickhouse_client():
    """Get ClickHouse client with lazy initialization and caching"""
    global _clickhouse_client
    
    if _clickhouse_client is None:
        _clickhouse_client = clickhouse_connect.get_client(
            host=CLICKHOUSE_HOST,
            port=CLICKHOUSE_PORT,
            user=CLICKHOUSE_USER,
            password=CLICKHOUSE_PASSWORD,
            database=CLICKHOUSE_DATABASE,
            verify=CLICKHOUSE_ENFORCE_SSL,
            settings={
                'max_execution_time': 3600,  # 1 hour timeout
                'connect_timeout': 30,
                'receive_timeout': 30,
                'send_timeout': 30
            }
        )
    
    return _clickhouse_client

def create_clickhouse_client():
    """Create a new ClickHouse client connection (legacy function)"""
    return get_clickhouse_client()

CLICKHOUSE_BINARIES_TABLE = os.getenv("CLICKHOUSE_BINARIES_TABLE", "binaries")