Integer SQL Values Defaulting With String Value #91
Closed
opened 2017-05-31 14:14:44 +00:00 by Colorado4Wheeler
·
5 comments
No Branch/Tag Specified
6.x
5.x
4.x
3.x
v6.2.0
v5.2.0
v4.2.0
v6.1.6
v5.1.6
v4.1.5
v6.1.5
v5.1.5
v4.1.4
v6.1.4
v5.1.4
v4.1.3
v6.1.3
v5.1.3
v6.1.2
v5.1.2
v4.1.2
v5.1.1
v4.1.1
v4.1.0
v3.2.5
v5.1.0
v5.0.3
v4.0.3
v3.2.4
v5.0.2
v4.0.2
v3.2.3
v5.0.1
v4.0.1
v3.2.2
v5.0.0
v4.0.0
v3.2.1
v3.2.0
v3.1.28
v3.1.27
v3.1.26
v3.1.24
v3.1.19
v3.1.17
v3.1.15
v3.1.12
v3.1.11
v3.1.10
v3.1.9
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v2.13.1
v2.13.0
v2.12.16
v2.12.15
v2.12.14
v2.12.10
v2.12.9
v2.12.8
v2.12.7
v2.12.6
v2.12.4
v2.12.3
v2.12.2
v2.11.7
v2.11.4
v2.11.3
v2.11.2
v2.11.0
v2.10.13
v2.10.11
v2.10.9
v2.10.5
v2.10.1
v2.10.0
v2.9.21
v2.9.18
v2.9.14
v2.9.11
v2.9.10
v2.9.8
v2.9.7
v2.9.1
v2.9.0
v2.8.5
v2.8.4
v2.8.2
v2.8.0
v2.7.10
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.1
v2.7.0
v2.6.17
v2.6.16
v2.6.15
v2.6.14
v2.6.13
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.8
v2.5.6
v2.5.5
v2.5.4
v2.5.1
v2.5.0
v2.4.10
v2.4.9
v2.4.8
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.10
v2.3.9
v2.3.8
v2.3.7
v2.3.6
v2.3.5
v2.3.4
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.2.9
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.0
v2.1.21
v2.1.20
v2.1.19
v2.1.18
v2.1.17
v2.1.16
v2.1.14
v2.1.13
v2.1.12
v2.1.11
v2.1.10
v2.1.9
v2.1.8
v2.1.7
v2.1.6
v2.1.5
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.9
v2.0.8
No labels
Milestone
No items
No Milestone
Free Support
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: joomla/Component-Builder#91
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Trying to build a little test project I have added just two fields, a string and an integer. No matter what value I put in the "Data Default" or in the XML "default=" area, the SQL always attempts to use a string value as the default and causes an error when trying to install.
I've tried as many variations as I can think of and it always tries to quote the default, throwing this error.

The SQL being executed is:
And the message I get:
I think the hidden field has a few challenges, you can see how the code is compiled at two places in the compiler.
In c_Fields.php on line 1642
In e_Interpretation.php on line 4826
The default gets wrapped with single quotes, and this usually does not cause an error. We could change that implementation to just load an int instead.
Take a look at the code and let me know what you think will be a better approach.
It's not just hidden fields, I've just verified that even if I change the field type to integer it does the same thing.
So yes it is not just hidden field, @Llewellynvdm said that the default gets wrapped with single quotes, did you check the code he gave links to?
You will see from line 4852 to line 4876 the defaults for all fields are being constructed. So you will see that at this time the defaults are wrapped with single quotes for all types... as @Llewellynvdm mentioned:
So lets do something like this on line 4865:
Yes we can change it to behave more as expected, will be in next push to staging branch. So you can test it.
@Colorado4Wheeler please watch this video and give me some feedback.
Here is the pull request and the package to test is this one.