Aaron L
a426f09a75
Remove helpers in favor of more optimized paths
2016-09-15 23:44:44 -07:00
Aaron L
b0b0ff87c6
Fix MySQL return query optimization.
...
- Before, this could erroneously detect that it could do without the
return query because it thought all we wanted was the id. Now with
this fix it should properly discard the query when all we want is id.
2016-09-15 22:28:23 -07:00
Aaron L
bac82b6f0e
Correct caching for upserts with no returns
...
- Previously it would return early, and therefore no caching was being
performed since it would never write to the cache.
2016-09-15 22:17:37 -07:00
Aaron L
440e3a1343
Fix cache keying for upsert
...
- Previously the non-zero default columns were not taken into account
and therefore this cached too aggressively.
2016-09-15 22:08:45 -07:00
Aaron L
09eeef63af
Optimize upsert.
2016-09-14 23:06:06 -07:00
Patrick O'brien
0abfe1cba6
Fix upsert if else
2016-09-15 14:59:48 +10:00
Patrick O'brien
b3230c2757
Fix insert with goto
2016-09-15 14:46:03 +10:00
Patrick O'brien
e52fac9c5e
Fix indentation
2016-09-15 14:27:06 +10:00
Patrick O'brien
01f08efe8a
Fix lint errors for generated package
2016-09-15 14:21:33 +10:00
Aaron L
f803cdd6bd
Fix all references to moved elements.
2016-09-14 21:02:24 -07:00
Patrick O'brien
f6b4d3c6fd
Rename exec funcs to conform to sql stdlib
2016-09-15 02:14:30 +10:00
Patrick O'brien
1c28f761f1
Upsert fixed
2016-09-15 01:36:36 +10:00
Patrick O'brien
931f3d2de5
Fix mock driver compat with upsert
2016-09-14 18:27:20 +10:00
Patrick O'brien
83f7092dc6
Add MySQL Upsert, fix identation in all tpls
2016-09-14 18:14:07 +10:00
Aaron L
a86e794b61
Fix composite primary keys for DeleteAll
2016-09-13 17:20:13 -07:00
Patrick O'brien
91bb5ee940
Change Exec funcs to methods with Query receiver
2016-09-13 19:46:32 +10:00
Aaron L
1facccacc1
Fix an edge case for MySQL
...
- This patch removes auto-generation of queries that have the pattern
COUNT(tablename.*) which is a syntax error in mysql.
2016-09-13 00:48:14 -07:00
Aaron L
b1e8816d42
Fix update all
2016-09-12 23:49:18 -07:00
Aaron L
912693a124
Update parameter generation for mysql
2016-09-12 23:28:23 -07:00
Aaron L
37a05de380
Fix a mistake in the insert query
2016-09-11 23:50:11 -07:00
Aaron L
8392a4ba2a
Fix quoting throughout templates
...
- Use "" style strings for all templates
- Attach a Quote and SchemaTable that understand escaped quotes so we
can use "" style strings without repercussion.
- Make SchemaTable use escaped quotes
- Remove schemaTable from the templates in favor of .SchemaTable
2016-09-11 23:50:11 -07:00
Patrick O'brien
793522650c
Add lq, rq, and indexplaceholders args everywhere
2016-09-10 05:15:50 +10:00
Patrick O'brien
419f2760c7
Change quotes to bytes
2016-09-10 03:30:46 +10:00
Patrick O'brien
9e6a3d5ee3
Add quote dialects
2016-09-10 03:14:18 +10:00
Patrick O'brien
ac02f7d2e0
Fix broken relationship templates by adding schema
2016-09-09 22:31:51 +10:00
Patrick O'brien
1c8a9d2e39
Add schema feature to everything (except rels)
...
* Add strmangle SchemaTable helper
2016-09-09 07:23:10 +10:00
Patrick O'brien
4e8191b8dd
Add struct tags flag
2016-09-04 23:44:54 +10:00
Aaron L
22f67ab4ed
Make sure to only write to cache when needed
2016-09-03 23:46:21 -07:00
Aaron L
ecfa35350c
Finish update optimization.
2016-09-03 22:53:42 -07:00
Aaron L
0ebccdb20a
Try and fix MySQL a little bit.
2016-09-03 12:50:31 -07:00
Aaron L
acad9f7de5
Finish Insert() caching.
2016-09-03 12:47:27 -07:00
Aaron L
793306d749
Fit caching in to insert.
2016-09-03 12:24:18 -07:00
Aaron L
e1bfd9d0da
Remove TitleCases from NonZeroDefaultSet
2016-09-03 11:54:23 -07:00
Aaron L
b522ab6a75
Fix spacing in setop methods.
2016-09-03 11:04:37 -07:00
Patrick O'brien
09fb8005f6
Add TitleCase cache
2016-09-02 17:55:16 +10:00
Aaron L
b101df0a24
Make sure join tables get ToMany Set/Remove
2016-09-01 23:33:18 -07:00
Patrick O'brien
4b1c934751
Remove pointers to L, not needed
...
* Add no-tests flag
2016-09-02 11:22:56 +10:00
Patrick O'brien
fd07a1a6a7
Move loaders off R to a new struct L
2016-09-02 11:03:59 +10:00
Aaron L
b5d3b60b3a
ToOne Set Remove no longer uses ...
2016-08-31 21:38:25 -07:00
Patrick O'brien
67ae024439
Unexport Relationship struct
2016-09-01 13:33:05 +10:00
Patrick O'brien
d56e28a36d
Fix Location pointer
2016-09-01 11:24:39 +10:00
Patrick O'brien
8f6191c4d2
Move buildUpsertQuery to boil
2016-09-01 11:20:16 +10:00
Patrick O'brien
87b1f90c43
Fix Find name
2016-09-01 11:16:21 +10:00
Patrick O'brien
e33da59f0b
Update hook names
2016-09-01 11:12:46 +10:00
Aaron L
79d8642d8d
Put setops into their final resting place.
2016-08-29 22:58:55 -07:00
Patrick O'brien
629ec8c8d0
Add hooks to eager load funcs
...
* Add PreserveDots text helper
* Fix bug using wrong XTitleCases name
2016-08-30 02:36:07 +10:00
Patrick O'brien
ccdfc93fee
Add auto timestamps for upsert
...
* Add IsZero checks for auto timestamps
2016-08-29 23:23:42 +10:00
Patrick O'brien
7f24185544
Add executor to hooks
2016-08-29 23:23:42 +10:00
Aaron L
9553f462c7
Merge branch 'sets'
2016-08-28 23:29:47 -07:00
Aaron L
ae99b2a649
Finish ToManyRemove.
...
- Make Set test better.
2016-08-28 23:26:44 -07:00
Aaron L
d9931fe7ba
Finish Set
2016-08-28 21:12:04 -07:00
Aaron L
4ba1849297
Finish ToManyAdd
2016-08-28 16:51:07 -07:00
Aaron L
4e70c9bb17
Near completion on the ToManyAdd setop
2016-08-28 16:36:49 -07:00
Aaron L
0eea12fb75
Complete removal on the remove method
2016-08-28 15:01:37 -07:00
Patrick O'brien
96d40fcfe4
Add automatic timestamps for created_at/updated_at
...
* Update and Insert
* Add --no-auto-timestamps flag
2016-08-29 00:12:37 +10:00
Patrick O'brien
677d45cef4
Add delete and insert hooks to templates
2016-08-28 22:16:08 +10:00
Patrick O'brien
d9ec68b76a
Add afterSelectHooks to One and All finishers
2016-08-28 22:02:21 +10:00
Patrick O'brien
e2553705e1
Remove BeforeSelect hook (makes no sense)
2016-08-28 21:23:08 +10:00
Patrick O'brien
2a5630ce3e
Add before/after select/delete to hooks generation
...
* Add tests for all hooks
2016-08-28 21:13:45 +10:00
Patrick O'brien
8aad8fc479
Rename before/after Create hook to Insert hook
2016-08-28 20:54:46 +10:00
Patrick O'brien
95ff24b918
Add --no-hooks feature
2016-08-28 20:48:50 +10:00
Aaron L
947081c579
Rename ReverseInserts -> OneToOne
...
- Fix bug & failing test
- Skip WIP test
2016-08-28 00:27:50 -07:00
Aaron L
625dee4648
Fix documentation.
...
- Fix test failure for ToOneSet
2016-08-28 00:06:33 -07:00
Patrick O'brien
09cdb7a652
Fix SQL (takes exec now)
...
* Add SQLG
* Update templates using SQL
2016-08-28 14:51:03 +10:00
Aaron L
bc71147282
WIP - Trying to fix bugs
2016-08-27 19:10:46 -07:00
Aaron L
f6206ea6b7
Use better errors in setops
2016-08-27 12:13:15 -07:00
Aaron L
ea22d3656c
Add more text helpers for ToMany.
2016-08-27 12:00:42 -07:00
Aaron L
1887f23ca5
Finish ToOneSet
...
- Replace the custom update that actually set every model's relationship
to the same thing with a real update method so we get logging & hooks
2016-08-26 23:36:57 -07:00
Aaron L
9db43ae3ad
Finish ToOneSet
2016-08-26 22:43:50 -07:00
Aaron L
c1962eb7ac
Get all the tests running properly
2016-08-26 22:04:49 -07:00
Aaron L
f489e22ab4
Rename Loaded -> R
2016-08-26 21:40:29 -07:00
Aaron L
dc49fa4d59
Align some stuff properly
...
- Begin tests
2016-08-26 07:59:28 -07:00
Aaron L
6ad467c259
Started relationship set operations
2016-08-25 23:50:45 -07:00
Aaron L
28e485603a
Add fast path for binding by caching TitleCase
2016-08-23 23:20:41 -07:00
Aaron L
d130354890
Fix eager loading, off-by-one pointer
2016-08-23 22:07:51 -07:00
Aaron L
509fe44f4e
Rename Relationships struct to Loaded
2016-08-22 21:54:02 -07:00
Patrick O'brien
c61ff2aa46
Fix some formatting bugs of generated code
2016-08-21 16:28:47 +10:00
Patrick O'brien
0c44af51a8
Fix name conflict bug in find
...
* Add more tests to test schema
2016-08-21 16:03:51 +10:00
Patrick O'brien
cd7e45efaa
Fix bugs for table only containing composite pkey
...
* Add more tables to test schema
* Add string slice match helper
2016-08-21 15:44:49 +10:00
Aaron L
c04e0d003a
Make relationships only return query objects.
2016-08-18 00:19:15 -07:00
Aaron L
2567a60a25
Rename some files to keep sanity
2016-08-17 23:48:37 -07:00
Aaron L
453858d026
Put the templates in their proper place
2016-08-17 23:26:17 -07:00
Aaron L
92c4e7f8f3
Support many_to_many eager loading properly
...
- Reorder the where statement in to_many to match eager loading.
2016-08-17 23:09:54 -07:00
Aaron L
fb198cc92c
Looking like to_many eager load is done
...
- Fix to_many join table query
- Fix testing output
- Add debug logging
2016-08-16 22:14:07 -07:00
Aaron L
756281f9fb
WIP Debugging eager loading
2016-08-16 22:14:07 -07:00
Aaron L
932f14d26c
Fix up some bits in eager load to_many
2016-08-16 22:14:07 -07:00
Aaron L
eae23ae42b
Add eager loading for to_many
...
- Needs tests
2016-08-16 22:14:07 -07:00
Aaron L
d25712f929
Change entire project tests.
2016-08-14 01:58:36 -07:00
Aaron L
180fbb0b8c
Remove swaths of metadata for tables in templates
2016-08-13 23:50:40 -07:00
Aaron L
f40688cfe3
Refactor Update & Insert tests.
...
- Added additional checking to statements for drivers that support a
number of results affected.
- Changed the way we keep imports around for compare values
2016-08-13 23:38:41 -07:00
Aaron L
efa1fbb80a
Big refactor of generated code
...
- Stop generating helper functions for each model
- Move Insert/Update/Upsert query generation helpers to strmangle
- Add tests for query generation helpers
- Delete a lot of the Insert/Upsert tests that test the query generation
helpers.
- Use tx for more of the tests.
2016-08-13 21:21:26 -07:00
Aaron L
8a7a9a35e8
Fix the last bits of problems with auto inc pkey
2016-08-13 16:34:02 -07:00
Aaron L
944303f2f5
Properly abstract LastInsertID
2016-08-13 16:34:02 -07:00
Aaron L
ef03225024
Add primary key column gen
2016-08-13 16:34:02 -07:00
Aaron L
ab88d8511d
Move string set operations to strmangle
...
- Delete MakeDBName (unused)
- Rename HasElement to SetInclude
2016-08-13 16:34:02 -07:00
Patrick O'brien
160c6ff0f0
Begin the pain
2016-08-13 16:34:02 -07:00
Aaron L
1875bac7cf
Correct improper detection of one-to-one
2016-08-13 15:33:54 -07:00
Patrick O'brien
641a433a2d
Fix query in insert
2016-08-14 06:35:43 +10:00
Patrick O'brien
3fb6c1aa48
Convert Delete object to use Exec
2016-08-14 05:07:38 +10:00
Aaron L
2b4508b228
Pass through sql.ErrNoRows for .Find() too
2016-08-13 11:56:59 -07:00
Aaron L
956157d057
Pass through no-rows errors to the user for .One()
2016-08-13 11:42:28 -07:00
Aaron L
1ac3853d3c
Refactor some awkward looking bits
2016-08-13 11:39:03 -07:00
Aaron L
5360d3094e
Use errors package all over the project
...
In general:
errors.New("thing") -> errors.New
fmt.Errorf("thing %s", arg) -> errors.Errorf
fmt.Errorf("thing %v", err) -> errors.Wrap
fmt.Errorf("thing %s %v", arg, err) -> errors.Wrapf
2016-08-13 11:37:16 -07:00
Patrick O'brien
8831e8a4b9
Fix debug outputs for all templates
2016-08-14 02:58:18 +10:00
Patrick O'brien
7ae9af702f
Add debug output to Exists
2016-08-14 02:19:36 +10:00
Patrick O'brien
6c299c82cb
Fix formatting errors
2016-08-14 02:16:10 +10:00
Patrick O'brien
ae198fd759
Fix formatting
2016-08-14 02:07:28 +10:00
Patrick O'brien
d92a439c54
Modify postgres query to get is_unique for indexes
...
* Remove unused SnakeCase function
* Fix formatting bug in relationship structs
2016-08-13 17:30:55 +10:00
Patrick O'brien
18029166c0
Add FilterColumnsByUnique, finish UpdateAll slice
...
* Add FilterColumnsByUnique
* Fix lots of broken tests
* Made CompareVals less stupid
Note: UpdateAll tests still broken because Unique
is not being fetched correctly for INDEX types,
it is only working for UNIQUE constraints.
2016-08-11 22:26:49 +10:00
Patrick O'brien
e3f319346f
Finish UpdateAll query builder
...
* Add modifiers to delete builder
* Update golden file tests
* Add startAt to whereClause
2016-08-11 18:23:47 +10:00
Patrick O'brien
99b292b1ee
Update query builder to make queries readable
...
* Finish DeleteAll for slice and query
* Fixed some formatting and comments
2016-08-09 20:19:42 +10:00
Patrick O'brien
2ece7d14f6
Clean up helpers, remove duplicate funcs
...
* Refactor DeleteAll for slice
2016-08-09 15:57:54 +10:00
Aaron L
8e3c1d41da
GenerateParamFlags -> Placeholders
...
- Rewrite Placeholders to not use as much wizardry and magnetism
2016-08-08 20:19:26 -07:00
Aaron L
a98e474c9c
Refactor WhereMultiple into new WhereClause
2016-08-08 19:33:10 -07:00
Aaron L
db747cccfe
Fix fallout of whereclause change
2016-08-08 17:36:37 -07:00
Aaron L
7c65598f17
Fix spacing problem.
2016-08-08 17:36:37 -07:00
Patrick O'brien
b9fc5e4080
Fix ReloadAll 0 value primary key collisions
2016-08-09 10:34:21 +10:00
Patrick O'brien
fa8e431349
Add ReloadAll for ObjectSlice
...
* Fix RandomizeSlice bug overwriting blacklisted columns
* Add GroupAt param to param flags generator
2016-08-08 23:30:29 +10:00
Patrick O'brien
a073752df2
Remove duplicates from insert whitelist
2016-08-08 16:59:54 +10:00
Aaron L
1c7ad18ab1
Fix previous edit mistake
2016-08-07 23:37:05 -07:00
Aaron L
44cf647d05
Rewrite Find using normal sql
2016-08-07 23:36:11 -07:00
Aaron L
444153222b
Use the new bind in all templates
2016-08-07 23:07:15 -07:00
Aaron L
1236072f05
Fix struct tags for bind
2016-08-07 18:07:37 -07:00
Aaron L
307fe4919a
Add parsing routine for SQL from/join statements
...
- Bonus: Add yaml/toml struct tags for models
2016-08-05 23:51:13 -07:00
Aaron L
2d608c4e17
Correct the problems with to_one
2016-08-05 22:19:49 -07:00
Patrick O'brien
b1b0607123
Fix template errors
2016-08-05 15:04:00 +10:00
Patrick O'brien
feb85a2a44
Finish upsert and upsert tests
...
* Fix find bug in query generator
2016-08-05 12:59:40 +10:00
Patrick O'brien
8a3a08baa0
Finish upsert, most of upsert tests
...
* Fix Upsert hooks
* Rename singleton template files
2016-08-05 00:26:39 +10:00
Patrick O'brien
70b2dcfbb2
Boilerplate for upsert
2016-08-05 00:25:35 +10:00
Patrick O'brien
358dac851f
Add upsert file and renamed file numbers
2016-08-05 00:22:53 +10:00
Aaron L
535c86bca0
Use query mods for to_many
2016-08-03 22:36:08 -07:00
Aaron L
a1b14f4eae
Fix struct tag generation.
...
- Clean up template
2016-08-03 22:34:46 -07:00
Patrick O'brien
ed2c5e407d
Fix insert and update whitelist generators
2016-08-04 13:55:25 +10:00
Aaron L
b8b44eba98
Document generateInsertColumns properly.
2016-08-03 20:52:43 -07:00
Aaron L
7abeba46f9
Redo the update inference docs
2016-08-03 20:38:23 -07:00
Aaron L
4a90e726db
Fixed up documentation.
2016-08-03 20:23:55 -07:00
Patrick O'brien
964f367700
Add Exists feature
2016-08-03 20:23:43 +10:00
Patrick O'brien
afedc92224
Change Enforced to Validated
2016-08-03 14:22:32 +10:00
Patrick O'brien
c7c0fe5c0d
Add provision for enforced types, eg uuid
...
* Add enforced to column data
* Add enforced list to driver
* Fix bug in TitleCase (now uses regexp)
* Fix broken zero-value enforced type inserts by using RandomizeEnforcedStruct
2016-08-03 12:05:05 +10:00
Patrick O'brien
775c5ba369
Fix IdentQuote bug, add Reload helpers
2016-08-02 20:00:00 +10:00
Aaron L
9a5742eeea
Use query generation for relationship_to_one
...
- This allows the use of query mods
2016-08-01 20:38:32 -07:00
Patrick O'brien
2d732c727a
Remove X funcs and add G funcs
2016-08-01 15:10:10 +10:00
Aaron L
b447018220
Rename ReverseArgs -> ReverseInserts
...
- Remove debug comment
2016-07-17 17:52:55 -07:00
Aaron L
d4170806f5
Produce true one_to_one relationships.
...
- Generating code & test for one_to_one by calling existing to_one
templates with the reversed texts function output as input.
- Add a section to reverse the order of the function inserts.
2016-07-17 17:50:01 -07:00
Aaron L
1a53eab27f
Rewrite to_one template as a sub-template
...
- This allows us to use the sub-template in other templates.
2016-07-16 23:57:08 -07:00
Aaron L
fc5bbc3e2e
Use the cached relationship information
2016-07-16 13:02:35 -07:00
Patrick O'brien
488e203c0b
Change objectSlice to be exported (ObjectSlice)
2016-07-17 00:15:14 +10:00
Patrick O'brien
916b7026dc
Fix relationship to one bug
2016-07-16 21:40:50 +10:00
Patrick O'brien
f45d137f5f
Added panic functions
...
* Fixed linter errors
* Added lots of missing comments
* Fixed broken boil tests
* Skipped unfinished functions instead of error
2016-07-16 21:22:57 +10:00
Patrick O'brien
4fcfcfe24c
Finished hook tests
...
* Fixed hook bug
2016-07-16 01:21:09 +10:00