Database Module
The Database module handles all PostgreSQL database interactions, including connection management, table setup, and query execution.
Database Connection
Functions for creating, managing, and using database connections:
GeoIDs.DB.get_connection — Functionget_connection() -> LibPQ.ConnectionReturns a connection to the database specified by environment variables. By default connects to "geocoder" database on localhost:5432.
Environment variables:
- GEOIDSDBNAME: Database name (defaults to "geocoder")
- GEOIDSDBHOST: Database host (defaults to "localhost")
- GEOIDSDBPORT: Database port (defaults to "5432")
- GEOIDSDBUSER: Database user (defaults to current system user)
- GEOIDSDBPASSWORD: Database password (defaults to empty string)
GeoIDs.DB.with_connection — Functionwith_connection(f::Function)Execute function f with a database connection, ensuring the connection is closed after use.
GeoIDs.DB.get_connection_string — Functionget_connection_string()Build a PostgreSQL connection string from environment variables or defaults.
Environment Variables
GEOIDS_DB_NAME: Database name (default: "tiger")GEOIDS_DB_HOST: Database host (default: "localhost")GEOIDS_DB_PORT: Database port (default: 5432)GEOIDS_DB_USER: Database user (default: current system user)GEOIDS_DB_PASSWORD: Database password (default: empty)
GeoIDs.DB.get_db_name — Functionget_db_name() -> StringGet the database name from the GEOIDSDBNAME environment variable, falling back to "tiger" if not set.
GeoIDs.DB.get_db_params — Functionget_db_params() -> Dict{String, String}Get database connection parameters from environment variables with fallbacks:
- GEOIDSDBNAME: Database name (defaults to "tiger")
- GEOIDSDBHOST: Database host (defaults to "localhost")
- GEOIDSDBPORT: Database port (defaults to "5432")
- GEOIDSDBUSER: Database user (defaults to current system user)
- GEOIDSDBPASSWORD: Database password (defaults to empty string)
Query Execution
Functions for executing SQL queries and commands:
GeoIDs.DB.execute — Functionexecute(conn::LibPQ.Connection, query::String, params::Vector=[]) -> LibPQ.ResultExecute a SQL query with parameters and return the result.
GeoIDs.DB.execute_query — Functionexecute_query(query::String, params::Vector=[]) -> DataFrameExecute a query with parameters and return the result as a DataFrame.
Schema Management
Functions for setting up and managing the database schema:
GeoIDs.DB.setup_tables — Functionsetup_tables()Create the necessary database tables for storing GEOID sets with versioning.
Module Index
GeoIDs.DB.executeGeoIDs.DB.execute_queryGeoIDs.DB.get_connectionGeoIDs.DB.get_connection_stringGeoIDs.DB.get_db_nameGeoIDs.DB.get_db_paramsGeoIDs.DB.setup_tablesGeoIDs.DB.with_connection