Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not output properties when they are undefined because they have been omitted from query #588

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

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