datasette icon indicating copy to clipboard operation
datasette copied to clipboard

Parameters on canned queries: fixed or query-generated list?

Open meowcat opened this issue 2 years ago • 0 comments
trafficstars

Hi,

currently parameters in canned queries are just text fields. It would be cool to have one of the options below. Would you accept a PR doing something in this direction? (Possibly this could even work as a plugin.)

  • adding facets, which would work like facets on tables or views, giving a list of selectable options (and leaving parameters as is)
  • making it possible to provide a query which returns selectable values for a parameter, e.g.
calendar_entries_current_instrument:
        sql: |      
          select * from calendar_entries 
              where 
                    DTEND_UNIX > UNIXEPOCH() and
                    DTSTART_UNIX < UNIXEPOCH() + :days *24*60*60 and
                    current = 1 and
                    MACHINE = :instrument
              order by
                    DTSTART_UNIX
        params:
            days: 
              sql: "SELECT VALUE FROM generate_series(1, 30, 1)"
              # this obviously requires the corresponding sqlite extension
            instrument:
              sql: "SELECT DISTINCT MACHINE FROM calendar_entries"
  • making it possible to provide a fixed list of parameters
calendar_entries_current_instrument:
        sql: |      
          select * from calendar_entries 
              where 
                    DTEND_UNIX > UNIXEPOCH() and
                    DTSTART_UNIX < UNIXEPOCH() + :days *24*60*60 and
                    current = 1 and
                    MACHINE = :instrument
              order by
                    DTSTART_UNIX
        params:
            days: 
              values: [1, 2, 3, 5, 10, 20, 30]
            instrument:
              values: [supermachine, crappymachine, boringmachine]

meowcat avatar Jul 27 '23 14:07 meowcat