- Improved query generation performance (thanks to @art4ride and @nulian)
- Ignore empty WHERE statements
- Allow Ecto 2
- Handle columns ending with integers properly (e.q.
users
.address1
) (thanks @Wijnand)
- Handle columns starting with integers properly (e.q.
users
.1st_address
) (thanks @danielwillemse)
- Being able to tackle extreme naming of tables and columns (e.g.
this is some.weird.table_name
) (thanks @nulian)
- No longer appending items to a list using
List.insert_at(-1, ...)
because that has a high performance impact (thanks @nulian)
- Supporting specifying to ensure unique base records when composing queries
- Added option :unique which instructs SqlDust to ensure always getting unique base records when encountering collection joins
- Add quoting to table names so queries wont break because of reserved words
- Adding deep merge for nil and false values
- Adding word boundaries when numerizing word patterns
- Returning corresponding variable keys within resulting tuple (only when having passed options[:variables] of course)
- Being able to use variables containing nested maps (e.g. "<<user.first_name>>")
- Added #variables/1 and #variables/2 for use when composing queries
- Also quoting column names
- Replaced
macro
withcardinality
- Returning a tuple containing SQL along with values (for tackling SQL injection)
- Correctly taking SQL injection measurements when composing queries
- Being able to specify additional join conditions using :join_on / #join_on
- Being able to specify additional join conditions within the schema
- Corrected has_one join specification
- Being able to override the table name of an association
- Fixed missing :offset statement when specifying during query composing
- Tackled error when having
''
within WHERE statements (thanks @nulian) - Supporting has_one associations
- Respecting booleans
- Respecting preserved word NULL
- Quoting SELECT statement aliases
- Supporting paths as SELECT statement aliases
- Being able to define OFFSET
- Made Ecto dependency optional
- Downcasing base table alias
- Being able to compose Ecto based queries using
Ecto.SqlDust
(w00t! ^^) - Being able to use resource names when composing queries
- Added
:adapter
option to determine the quotation mark (backtick for MySQL and double quote for Postgres) - Extracted
SqlDust.Query
toSqlDust.Utils.ComposeUtils
- Changed
%SqlDust.QueryDust{}
into%SqlDust{}
- Using Ecto v1.1.3
- Added ability for composable queries (thanks to Justin Workman for the request)
- Moved utility modules to
lib/sql_dust/utils
- Initial release