Skip to content

Conversation

@kapouer
Copy link
Contributor

@kapouer kapouer commented Dec 11, 2014

Basically this let us have for the same price
JSON.stringify(john) : {"height": 4}
instead of {"height": 4, "name": null}

Weirdly it wasn't easy to achieve.
This requires dresende/node-sql-query#37 for it to pass tests.

Mind that i tested only postgres (and sqlite ? i don't know) but kept in mind it should work everywhere.

@dxg
Copy link
Collaborator

dxg commented Dec 23, 2014

I'm not sure of the rational behind this change.
null !== undefined.
Since null is a type in databases, and undefined isn't, I'm not sure what the ramifications of this are or what may break unexpectedly. If a property is null in the DB, I would like to know that it is. If it is missing from the object entirely this means a different thing all together.

This has come up before.
See here as well as a couple other pull requests.

@kapouer
Copy link
Contributor Author

kapouer commented Dec 23, 2014

I wanted to have only/omit query results be serialized without seeing all the columns i've omitted outputed with "null" value. That's the main reason, but as you already know, it could have side effects.

If you check the changes i had to make to the test suite, side effects are not that bad !
If a property is null in the db, and the property is queried, the ouput will be {'thatprop': null} as one expects, of course.
The only thing that could go wrong is
.find().only().each().save()
I suppose validation is going to kick out, when applicable.
But hey, if you do that, you get what you asked for.

@kapouer kapouer changed the title Do not output properties when they are undefined Do not output properties when they are undefined because they have been omitted from query Dec 23, 2014
@kapouer
Copy link
Contributor Author

kapouer commented Dec 23, 2014

Changed the title to better reflect the rationale.

@dxg
Copy link
Collaborator

dxg commented Dec 24, 2014

That title is a lot better and I get what you're after now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants