Skip to content

Select_values example in the wiki causes a crash #118

@nsjarvis

Description

@nsjarvis

I tried this code, copied from the wiki with rcdb changed to rcdb2:

# import RCDB
from rcdb.provider import RCDBProvider

# connect to DB
db = RCDBProvider("mysql://rcdb@hallddb.jlab.org/rcdb2")

# select values with query
table = db.select_values(['polarization_angle','beam_current'], "@is_production", run_min=30000, run_max=30050)

It gives this error message:

Traceback (most recent call last):
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 1800, in _execute_context
    context = constructor(
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/default.py", line 1001, in _init_compiled
    self.compiled_parameters = [
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/default.py", line 1002, in <listcomp>
    compiled.construct_params(
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/sql/compiler.py", line 1024, in construct_params
    raise exc.InvalidRequestError(
sqlalchemy.exc.InvalidRequestError: A value is required for bind parameter 'run_min' (Background on this error at: https://sqlalche.me/e/14/cd3x)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/w/halld-scshelf2101/njarvis/gluex23/epics3/test.py", line 9, in <module>
    table = db.select_values(['polarization_angle','beam_current'], "@is_production", run_min=30000, run_max=30050)
  File "/group/halld/Software/builds/Linux_Alma9-x86_64-gcc11.5.0/rcdb/rcdb_0.09.01/python/rcdb/provider.py", line 1004, in select_values
    result = self.session.connection().execute(sql, parameters={"run_min": run_min, "run_max":run_max})
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 1380, in execute
    return meth(self, multiparams, params, _EMPTY_EXECUTION_OPTS)
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 1572, in _execute_clauseelement
    ret = self._execute_context(
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 1806, in _execute_context
    self._handle_dbapi_exception(
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 2124, in _handle_dbapi_exception
    util.raise_(
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
    raise exception
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 1800, in _execute_context
    context = constructor(
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/default.py", line 1001, in _init_compiled
    self.compiled_parameters = [
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/default.py", line 1002, in <listcomp>
    compiled.construct_params(
  File "/usr/lib64/python3.9/site-packages/sqlalchemy/sql/compiler.py", line 1024, in construct_params
    raise exc.InvalidRequestError(
sqlalchemy.exc.StatementError: (sqlalchemy.exc.InvalidRequestError) A value is required for bind parameter 'run_min'
[SQL: SELECT  runs.number run
  ,run_type_table.text_value run_type
  ,beam_current_table.float_value beam_current
  ,event_count_table.int_value event_count
  ,solenoid_current_table.float_value solenoid_current
  ,collimator_diameter_table.text_value collimator_diameter
  ,polarization_angle_table.float_value polarization_angle

 FROM runs 
  LEFT JOIN conditions run_type_table   ON run_type_table.run_number = runs.number AND run_type_table.condition_type_id = 3
  LEFT JOIN conditions beam_current_table   ON beam_current_table.run_number = runs.number AND beam_current_table.condition_type_id = 17
  LEFT JOIN conditions event_count_table   ON event_count_table.run_number = runs.number AND event_count_table.condition_type_id = 2
  LEFT JOIN conditions solenoid_current_table   ON solenoid_current_table.run_number = runs.number AND solenoid_current_table.condition_type_id = 11
  LEFT JOIN conditions collimator_diameter_table   ON collimator_diameter_table.run_number = runs.number AND collimator_diameter_table.condition_type_id = 19
  LEFT JOIN conditions polarization_angle_table   ON polarization_angle_table.run_number = runs.number AND polarization_angle_table.condition_type_id = 56

 WHERE runs.number >= %s AND runs.number <=%s
ORDER BY runs.number]
[parameters: [{'parameters': {'run_min': 30000, 'run_max': 30050}}]]
(Background on this error at: https://sqlalche.me/e/14/cd3x)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions