Sha256: da2fdfc4254a818932f651a4a1b7ae5adadbedbe9a513b8a5db77e4ddb680ee0

Contents?: true

Size: 1.36 KB

Versions: 3

Compression:

Stored size: 1.36 KB

Contents

* Replace some of the conditional function with polymorphism, especially
  where there is special case function for certain types of generators
  within other generators.
  * Replace Equality/Inequality with classes that handle all of the
    special cases.
  * Use different classes for inclusive/exclusive Range literals so that
    they can be serialized to SQL differently.
    * Create Veritas::Literal::Range proxy object w/factory method
    * Create Veritas::Literal::Range::Inclusive
    * Create Veritas::Literal::Range::Exclusive

* Handle cases where an Inequality/Exclusion predicate is used (or a
  Negation wrapping an Equality/Inclusion) on an *optional* attribute.
  * Add "OR attribute IS NULL" to the statement to ensure cases when
    the value is NULL still matches.

* Handle cases where WHERE clause does and does not reference a function
  in the SELECT list.
  * It should collapse the inner subquery when there is no reference, and
    keep the subquery when it is referenced.
  * This will likely apply to projection and rename operators too.

* When Restriction wraps a Summarization, and it would normally wrap the
  statement and apply a WHERE clause, it should apply the clause using
  HAVING instead.

* Handle case where Extension does not reference a column in the
  wrapped Summarization or Rename. It should be safe to collapse the query
  in those cases.

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
veritas-sql-generator-0.0.7 TODO
veritas-sql-generator-0.0.6 TODO
veritas-sql-generator-0.0.5 TODO