Skip to main content
Version: 7 - Gugelhupf

ConnectorTypeSQLPG

class connector_types.connector_type_sqlpg.ConnectorTypeSQLPG

Interact with a PostgreSQL database. This connector type supports the execute, fetch, fetchrow, and fetchval commands. Each command expects an SQL query and returns the status, list, record or field value respectively.

Consult the PostgreSQL SQL language documentation at https://www.postgresql.org/docs/12/tutorial-sql.html for more information.

Inputs

NameTypeDefaultDescription
check_hostnameboolTrueIf set, the hostname of the PostgreSQL server is checked against the server_ca certificate
client_certstrNone
client_keystrNone
databasestrpg_catalog
executestrNone
executemanylistNone
fetchstrNone
fetchrowstrNone
fetchvalstrNone
hoststr
paramslistNone
passwordstrNone
portint5432
server_castrNone
temp_pathstr/c/tmp
transactionlistNone
userstrpostgres

Outputs

NameTypeDefaultDescription
resultobject

Constants

input_list = ['check_hostname', 'client_cert', 'client_key', 'database', 'execute', 'executemany', 'fetch', 'fetchrow', 'fetchval', 'host', 'params', 'password', 'port', 'server_ca', 'temp_path', 'transaction', 'user'] output_list = ['result'] ssl_context_inputs = ['check_hostname', 'client_cert', 'client_key', 'server_ca'] version = 1

Methods

execute

log

one_of_inputs

run

Example

import flow_api

def handler(system: flow_api.System, this: flow_api.Execution):
postgres_server_version = this.connect(
connector_type='SQLPG',
host='my-postgres-server',
fetchval='SELECT version()',
).get('output_value')['result']
this.log(postgres_server_version=postgres_server_version)

postgres_server_events = this.connect(
connector_type='SQLPG',
host='my-postgres-server',
database='testlocal',
execute='CREATE TABLE IF NOT EXISTS mytab (a int, b int);',
).get('output_value')['result']
this.log(postgres_server_events=postgres_server_events)

postgres_server_events = this.connect(
connector_type='SQLPG',
host='my-postgres-server',
database='testlocal',
transaction=[['INSERT INTO mytab (a, b) VALUES ($1, $2);', (1,2)],
['INSERT INTO mytab (a, b) VALUES ($1, $2);', (3,4)],
['INSERT INTO mytab (a, b) VALUES ($1, $2);', (6,7)]
],
).get('output_value')['result']
this.log(postgres_server_events=postgres_server_events)

postgres_server_events = this.connect(
connector_type='SQLPG',
host='my-postgres-server',
database='testlocal',
executemany=['INSERT INTO mytab (a, b) VALUES ($1, $2);',
[(1,2), (3,4), (6,7)]],
).get('output_value')['result']
this.log(postgres_server_events=postgres_server_events)

return this.success('all done')