Skip to content

GSoC:2008 Collections 2.0 Todo list

Erik Massop edited this page Nov 4, 2017 · 1 revision

bold are the larger tasks.

italic are the not-so-important tasks.

  • Attributes
    • Allow general xmmsv_ts as attributes
      • Several values for field, value (except for MATCH), source. To be interpreted as a union.
  • Chop history in logical chunks
  • Documentation
    • Add documentation for most functions
    • Add documentation on the wiki
  • Querying
    • Work on querying proposal
    • Implement querying proposal
  • Matching
    • Define pattern-matching for some of the collations
    • Disable for those collations in the meantime.
  • Prefix
    • Make prefix-matching work for collations.
    • Fix prefix for non-ascii characters like Å‚
    • Move idlist to the attributes.
  • IdlistVirtual
    • Implement an index
  • Checking
    • Set default value for type-attribute of idlist to "list"
    • Check for cyclic behavior in jumplist
    • Check source-attribute
    • Check source-preference-attribute
    • Make default values configureable
  • Sourcerank
    • Add default sourcerank to more plugins
  • Medialib
    • Change schema to use value ids, which then appear in MediaTokens, MediaValues and MediaBackend tables
  • Abolish INTERSECTION_ORDERED
  • Change attributes to LIMIT (to not use UINT_MAX)
  • Fix FIXMEs
  • Do TODOs
  • Add optimizations to collquery
  • Serialize as a true DAG

Pre February 10 2009

Notation: In bold high-priority stuff, in italic optional/low-priority stuff, in normal font normal-priority stuff.

  • Finish this todo list
  • Prefix does not work with non-ascii characters like Å‚ (in the NATCOLL-collation at least).
  • Create a Collections 2.0 operator documentation page
  • Work on the querying proposal
  • Work more on the querying proposal
  • Use strings in the medialib everywhere
  • Implement NATCOLL
  • Add prefix-matching
    • For BINARY collation
    • For NOCASE collation
    • For other collations (how is prefix defined for INTCOLL, NATCOLL when ending in numerals?)
  • Abolish case-sensitive attribute
  • sed "s|FULLORDER|COMPARE|g"
  • Implement an "index" in the idlist virtual table
  • Readd DAG-checking
  • Implement an id-wise operator
  • Implement the token-operator
  • Implement a similar-operator (extra)
  • Revisit the "is this id in the collection"-function
  • Implement global source-preference
    • Change database
    • Use it for collection-queries
    • Use it for medialib_info-variant
    • Have a config-value system to change the priorities
    • Allow plugins to set default sourcerank values. (Create a function that sets the [pluginname].sourcerank config if it is an empty string (signifying that the user wants the default or never set a value.) or does not exist.)
    • Change the config names from "server.sourcerank", "plugin/[pluginname].sourcerank" and "client/[clientname].sourcerank" to something different.
  • Implement per collection-node source preference
  • Add default-properties when saving a collection. (still double-checked when querying, not for pshuffle/queue, as those are to be abolished)
  • Make these properties configureable
  • Change the uniqueness of the medialib table + change the xforms accordingly
  • Allow all the funky querying (needs value_t!)
    • Abolish json-like string for requesting. Request using xmmsv_t instead.
    • Better error handling
    • implement query_medialist
    • implement query_clustered
      • Change syntax to avoid ambiguity
      • Allow distinct tuples
      • Allow collations for clustering diction
      • Allow ordering
    • Aggregates:
      • implode
        • only distinct values
      • min, max, avg
      • list
      • tuple
      • named-tuple?
      • dict
        • only distinct keys
    • Functions:
      • url-decode
      • source-name
      • source-rank
  • Maybe use a dict for the collection-attributes?
  • Add a specials namespace
  • Add proper database updating (once all is stabilized) Done for now
  • Add some optimizations to collquery.c
  • Update collparser
  • Do the FIXMEs
  • Do the TODOs
Clone this wiki locally