When creating a new webform, the following warnings are given:
* warning: pg_query() [function.pg-query]: Query failed: ERROR: null value in column "additional_validate" violates not-null constraint in /path/to/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO webform (nid, confirmation, confirmation_format, redirect_url, teaser, allow_draft, submit_notice, submit_text, submit_limit, submit_interval) VALUES (91, '', 0, '', 0, 0, 0, '', -1, -1) in /path/to/sites/all/modules/webform/webform.module on line 855.
A postgresql database is used here.
Apart from this, do the advanced settings for additional_validate and additional_submit still exist? I don't see them in the webform settings page anymore.
Thanks,
John
| Comment | File | Size | Author |
|---|---|---|---|
| #12 | webform_php_null_default.patch | 1.12 KB | quicksketch |
| #11 | webform_additional_null_default.patch | 968 bytes | quicksketch |
| #11 | webform_additional_null_default7.patch | 866 bytes | quicksketch |
Comments
Comment #1
quicksketchYou're right, the additional_validate and additional_submit fields don't even exist any more, unless you've installed http://drupal.org/project/webform_php. However the columns still exist in the database table for users that have upgraded from older versions of Webform. If you're not using these columns, it's safe to simply remove them from your database (they wouldn't be there on a clean install).
However this does reveal a problem with our database, that (apparently) when using PostGres you must specify all columns in the update unless that column allows NULL. MySQL on the other hand simply inserts an empty string into these columns. So what we need is an update in webform.install that sets the NOT NULL property to TRUE on the additional_validate and additional_submit columns (if they exist).
Comment #2
safetypinRather than create an additional issue, i'll just add to this one. I'm getting the exact same SQL error for a different field.
When enabling the module with drush, I get the following:
--
WD menu: PDOException: SQLSTATE[23502]: Not null violation: 7 ERROR: null value in column "load_functions" violates not-null constraint: INSERT INTO [error]
menu_router (path, load_functions, to_arg_functions, access_callback, access_arguments, page_callback, page_arguments, delivery_callback, fit,
...
in _menu_router_save() (line 3356 of /home/urbanchi/public_html/perceptionsd7/includes/menu.inc).
webform was enabled successfully. [ok]
--
There is actually a very long list of :db_insert_placeholder_xxx arguments that follow, but rather than paste all of them, I'm just replacing them with a '...' in that quote. I've actually seen a similar error for "load_functions" in several other modules, is this an issue with webform or menu.inc?
I'm also on a PostGres db.
Thanks so much for your work on this module!
Comment #3
quicksketchI don't think this would be Webform-specific, unless there is a problem with Webform's hook_menu(). Without seeing what was being inserted, it's hard to know where the problem was coming from. What's the complete contents of an individual warning (including the placeholders)?
Comment #4
safetypinIt looks like I get the same error with "drush dis webform":
WD menu: PDOException: SQLSTATE[23502]: Not null violation: 7 ERROR: null value in column "load_functions" violates not-null constraint: INSERT INTO [error]
menu_router (path, load_functions, to_arg_functions, access_callback, access_arguments, page_callback, page_arguments, delivery_callback, fit,
number_parts, context, tab_parent, tab_root, title, title_callback, title_arguments, theme_callback, theme_arguments, type, block_callback, description,
position, weight, include_file) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3,
:db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8,
:db_insert_placeholder_9, :db_insert_placeholder_10, :db_insert_placeholder_11, :db_insert_placeholder_12, :db_insert_placeholder_13,
:db_insert_placeholder_14, :db_insert_placeholder_15, :db_insert_placeholder_16, :db_insert_placeholder_17, :db_insert_placeholder_18,
:db_insert_placeholder_19, :db_insert_placeholder_20, :db_insert_placeholder_21, :db_insert_placeholder_22, :db_insert_placeholder_23),
(:db_insert_placeholder_24, :db_insert_placeholder_25, :db_insert_placeholder_26, :db_insert_placeholder_27, :db_insert_placeholder_28,
:db_insert_placeholder_29, :db_insert_placeholder_30, :db_insert_placeholder_31, :db_insert_placeholder_32, :db_insert_placeholder_33,
:db_insert_placeholder_34, :db_insert_placeholder_35, :db_insert_placeholder_36, :db_insert_placeholder_37, :db_insert_placeholder_38,
:db_insert_placeholder_39, :db_insert_placeholder_40, :db_insert_placeholder_41, :db_insert_placeholder_42, :db_insert_placeholder_43,
:db_insert_placeholder_44, :db_insert_placeholder_45, :db_insert_placeholder_46, :db_insert_placeholder_47), (:db_insert_placeholder_48,
:db_insert_placeholder_49, :db_insert_placeholder_50, :db_insert_placeholder_51, :db_insert_placeholder_52, :db_insert_placeholder_53,
:db_insert_placeholder_54, :db_insert_placeholder_55, :db_insert_placeholder_56, :db_insert_placeholder_57, :db_insert_placeholder_58,
:db_insert_placeholder_59, :db_insert_placeholder_60, :db_insert_placeholder_61, :db_insert_placeholder_62, :db_insert_placeholder_63,
:db_insert_placeholder_64, :db_insert_placeholder_65, :db_insert_placeholder_66, :db_insert_placeholder_67, :db_insert_placeholder_68,
:db_insert_placeholder_69, :db_insert_placeholder_70, :db_insert_placeholder_71), (:db_insert_placeholder_72, :db_insert_placeholder_73,
:db_insert_placeholder_74, :db_insert_placeholder_75, :db_insert_placeholder_76, :db_insert_placeholder_77, :db_insert_placeholder_78,
:db_insert_placeholder_79, :db_insert_placeholder_80, :db_insert_placeholder_81, :db_insert_placeholder_82, :db_insert_placeholder_83,
:db_insert_placeholder_84, :db_insert_placeholder_85, :db_insert_placeholder_86, :db_insert_placeholder_87, :db_insert_placeholder_88,
:db_insert_placeholder_89, :db_insert_placeholder_90, :db_insert_placeholder_91, :db_insert_placeholder_92, :db_insert_placeholder_93,
:db_insert_placeholder_94, :db_insert_placeholder_95), (:db_insert_placeholder_96, :db_insert_placeholder_97, :db_insert_placeholder_98,
:db_insert_placeholder_99, :db_insert_placeholder_100, :db_insert_placeholder_101, :db_insert_placeholder_102, :db_insert_placeholder_103,
:db_insert_placeholder_104, :db_insert_placeholder_105, :db_insert_placeholder_106, :db_insert_placeholder_107, :db_insert_placeholder_108,
:db_insert_placeholder_109, :db_insert_placeholder_110, :db_insert_placeholder_111, :db_insert_placeholder_112, :db_insert_placeholder_113,
:db_insert_placeholder_114, :db_insert_placeholder_115, :db_insert_placeholder_116, :db_insert_placeholder_117, :db_insert_placeholder_118,
:db_insert_placeholder_119), (:db_insert_placeholder_120, :db_insert_placeholder_121, :db_insert_placeholder_122, :db_insert_placeholder_123,
:db_insert_placeholder_124, :db_insert_placeholder_125, :db_insert_placeholder_126, :db_insert_placeholder_127, :db_insert_placeholder_128,
:db_insert_placeholder_129, :db_insert_placeholder_130, :db_insert_placeholder_131, :db_insert_placeholder_132, :db_insert_placeholder_133,
:db_insert_placeholder_134, :db_insert_placeholder_135, :db_insert_placeholder_136, :db_insert_placeholder_137, :db_insert_placeholder_138,
:db_insert_placeholder_139, :db_insert_placeholder_140, :db_insert_placeholder_141, :db_insert_placeholder_142, :db_insert_placeholder_143),
(:db_insert_placeholder_144, :db_insert_placeholder_145, :db_insert_placeholder_146, :db_insert_placeholder_147, :db_insert_placeholder_148,
:db_insert_placeholder_149, :db_insert_placeholder_150, :db_insert_placeholder_151, :db_insert_placeholder_152, :db_insert_placeholder_153,
:db_insert_placeholder_154, :db_insert_placeholder_155, :db_insert_placeholder_156, :db_insert_placeholder_157, :db_insert_placeholder_158,
:db_insert_placeholder_159, :db_insert_placeholder_160, :db_insert_placeholder_161, :db_insert_placeholder_162, :db_insert_placeholder_163,
:db_insert_placeholder_164, :db_insert_placeholder_165, :db_insert_placeholder_166, :db_insert_placeholder_167), (:db_insert_placeholder_168,
:db_insert_placeholder_169, :db_insert_placeholder_170, :db_insert_placeholder_171, :db_insert_placeholder_172, :db_insert_placeholder_173,
:db_insert_placeholder_174, :db_insert_placeholder_175, :db_insert_placeholder_176, :db_insert_placeholder_177, :db_insert_placeholder_178,
:db_insert_placeholder_179, :db_insert_placeholder_180, :db_insert_placeholder_181, :db_insert_placeholder_182, :db_insert_placeholder_183,
:db_insert_placeholder_184, :db_insert_placeholder_185, :db_insert_placeholder_186, :db_insert_placeholder_187, :db_insert_placeholder_188,
:db_insert_placeholder_189, :db_insert_placeholder_190, :db_insert_placeholder_191), (:db_insert_placeholder_192, :db_insert_placeholder_193,
:db_insert_placeholder_194, :db_insert_placeholder_195, :db_insert_placeholder_196, :db_insert_placeholder_197, :db_insert_placeholder_198,
:db_insert_placeholder_199, :db_insert_placeholder_200, :db_insert_placeholder_201, :db_insert_placeholder_202, :db_insert_placeholder_203,
:db_insert_placeholder_204, :db_insert_placeholder_205, :db_insert_placeholder_206, :db_insert_placeholder_207, :db_insert_placeholder_208,
:db_insert_placeholder_209, :db_insert_placeholder_210, :db_insert_placeholder_211, :db_insert_placeholder_212, :db_insert_placeholder_213,
:db_insert_placeholder_214, :db_insert_placeholder_215), (:db_insert_placeholder_216, :db_insert_placeholder_217, :db_insert_placeholder_218,
:db_insert_placeholder_219, :db_insert_placeholder_220, :db_insert_placeholder_221, :db_insert_placeholder_222, :db_insert_placeholder_223,
:db_insert_placeholder_224, :db_insert_placeholder_225, :db_insert_placeholder_226, :db_insert_placeholder_227, :db_insert_placeholder_228,
:db_insert_placeholder_229, :db_insert_placeholder_230, :db_insert_placeholder_231, :db_insert_placeholder_232, :db_insert_placeholder_233,
:db_insert_placeholder_234, :db_insert_placeholder_235, :db_insert_placeholder_236, :db_insert_placeholder_237, :db_insert_placeholder_238,
:db_insert_placeholder_239), (:db_insert_placeholder_240, :db_insert_placeholder_241, :db_insert_placeholder_242, :db_insert_placeholder_243,
:db_insert_placeholder_244, :db_insert_placeholder_245, :db_insert_placeholder_246, :db_insert_placeholder_247, :db_insert_placeholder_248,
:db_insert_placeholder_249, :db_insert_placeholder_250, :db_insert_placeholder_251, :db_insert_placeholder_252, :db_insert_placeholder_253,
:db_insert_placeholder_254, :db_insert_placeholder_255, :db_insert_placeholder_256, :db_insert_placeholder_257, :db_insert_placeholder_258,
:db_insert_placeholder_259, :db_insert_placeholder_260, :db_insert_placeholder_261, :db_insert_placeholder_262, :db_insert_placeholder_263),
(:db_insert_placeholder_264, :db_insert_placeholder_265, :db_insert_placeholder_266, :db_insert_placeholder_267, :db_insert_placeholder_268,
:db_insert_placeholder_269, :db_insert_placeholder_270, :db_insert_placeholder_271, :db_insert_placeholder_272, :db_insert_placeholder_273,
:db_insert_placeholder_274, :db_insert_placeholder_275, :db_insert_placeholder_276, :db_insert_placeholder_277, :db_insert_placeholder_278,
:db_insert_placeholder_279, :db_insert_placeholder_280, :db_insert_placeholder_281, :db_insert_placeholder_282, :db_insert_placeholder_283,
:db_insert_placeholder_284, :db_insert_placeholder_285, :db_insert_placeholder_286, :db_insert_placeholder_287), (:db_insert_placeholder_288,
:db_insert_placeholder_289, :db_insert_placeholder_290, :db_insert_placeholder_291, :db_insert_placeholder_292, :db_insert_placeholder_293,
:db_insert_placeholder_294, :db_insert_placeholder_295, :db_insert_placeholder_296, :db_insert_placeholder_297, :db_insert_placeholder_298,
:db_insert_placeholder_299, :db_insert_placeholder_300, :db_insert_placeholder_301, :db_insert_placeholder_302, :db_insert_placeholder_303,
:db_insert_placeholder_304, :db_insert_placeholder_305, :db_insert_placeholder_306, :db_insert_placeholder_307, :db_insert_placeholder_308,
:db_insert_placeholder_309, :db_insert_placeholder_310, :db_insert_placeholder_311), (:db_insert_placeholder_312, :db_insert_placeholder_313,
:db_insert_placeholder_314, :db_insert_placeholder_315, :db_insert_placeholder_316, :db_insert_placeholder_317, :db_insert_placeholder_318,
:db_insert_placeholder_319, :db_insert_placeholder_320, :db_insert_placeholder_321, :db_insert_placeholder_322, :db_insert_placeholder_323,
:db_insert_placeholder_324, :db_insert_placeholder_325, :db_insert_placeholder_326, :db_insert_placeholder_327, :db_insert_placeholder_328,
:db_insert_placeholder_329, :db_insert_placeholder_330, :db_insert_placeholder_331, :db_insert_placeholder_332, :db_insert_placeholder_333,
:db_insert_placeholder_334, :db_insert_placeholder_335), (:db_insert_placeholder_336, :db_insert_placeholder_337, :db_insert_placeholder_338,
:db_insert_placeholder_339, :db_insert_placeholder_340, :db_insert_placeholder_341, :db_insert_placeholder_342, :db_insert_placeholder_343,
:db_insert_placeholder_344, :db_insert_placeholder_345, :db_insert_placeholder_346, :db_insert_placeholder_347, :db_insert_placeholder_348,
:db_insert_placeholder_349, :db_insert_placeholder_350, :db_insert_placeholder_351, :db_insert_placeholder_352, :db_insert_placeholder_353,
:db_insert_placeholder_354, :db_insert_placeholder_355, :db_insert_placeholder_356, :db_insert_placeholder_357, :db_insert_placeholder_358,
:db_insert_placeholder_359), (:db_insert_placeholder_360, :db_insert_placeholder_361, :db_insert_placeholder_362, :db_insert_placeholder_363,
:db_insert_placeholder_364, :db_insert_placeholder_365, :db_insert_placeholder_366, :db_insert_placeholder_367, :db_insert_placeholder_368,
:db_insert_placeholder_369, :db_insert_placeholder_370, :db_insert_placeholder_371, :db_insert_placeholder_372, :db_insert_placeholder_373,
:db_insert_placeholder_374, :db_insert_placeholder_375, :db_insert_placeholder_376, :db_insert_placeholder_377, :db_insert_placeholder_378,
:db_insert_placeholder_379, :db_insert_placeholder_380, :db_insert_placeholder_381, :db_insert_placeholder_382, :db_insert_placeholder_383),
(:db_insert_placeholder_384, :db_insert_placeholder_385, :db_insert_placeholder_386, :db_insert_placeholder_387, :db_insert_placeholder_388,
:db_insert_placeholder_389, :db_insert_placeholder_390, :db_insert_placeholder_391, :db_insert_placeholder_392, :db_insert_placeholder_393,
:db_insert_placeholder_394, :db_insert_placeholder_395, :db_insert_placeholder_396, :db_insert_placeholder_397, :db_insert_placeholder_398,
:db_insert_placeholder_399, :db_insert_placeholder_400, :db_insert_placeholder_401, :db_insert_placeholder_402, :db_insert_placeholder_403,
:db_insert_placeholder_404, :db_insert_placeholder_405, :db_insert_placeholder_406, :db_insert_placeholder_407), (:db_insert_placeholder_408,
:db_insert_placeholder_409, :db_insert_placeholder_410, :db_insert_placeholder_411, :db_insert_placeholder_412, :db_insert_placeholder_413,
:db_insert_placeholder_414, :db_insert_placeholder_415, :db_insert_placeholder_416, :db_insert_placeholder_417, :db_insert_placeholder_418,
:db_insert_placeholder_419, :db_insert_placeholder_420, :db_insert_placeholder_421, :db_insert_placeholder_422, :db_insert_placeholder_423,
:db_insert_placeholder_424, :db_insert_placeholder_425, :db_insert_placeholder_426, :db_insert_placeholder_427, :db_insert_placeholder_428,
:db_insert_placeholder_429, :db_insert_placeholder_430, :db_insert_placeholder_431), (:db_insert_placeholder_432, :db_insert_placeholder_433,
:db_insert_placeholder_434, :db_insert_placeholder_435, :db_insert_placeholder_436, :db_insert_placeholder_437, :db_insert_placeholder_438,
:db_insert_placeholder_439, :db_insert_placeholder_440, :db_insert_placeholder_441, :db_insert_placeholder_442, :db_insert_placeholder_443,
:db_insert_placeholder_444, :db_insert_placeholder_445, :db_insert_placeholder_446, :db_insert_placeholder_447, :db_insert_placeholder_448,
:db_insert_placeholder_449, :db_insert_placeholder_450, :db_insert_placeholder_451, :db_insert_placeholder_452, :db_insert_placeholder_453,
:db_insert_placeholder_454, :db_insert_placeholder_455), (:db_insert_placeholder_456, :db_insert_placeholder_457, :db_insert_placeholder_458,
:db_insert_placeholder_459, :db_insert_placeholder_460, :db_insert_placeholder_461, :db_insert_placeholder_462, :db_insert_placeholder_463,
:db_insert_placeholder_464, :db_insert_placeholder_465, :db_insert_placeholder_466, :db_insert_placeholder_467, :db_insert_placeholder_468,
:db_insert_placeholder_469, :db_insert_placeholder_470, :db_insert_placeholder_471, :db_insert_placeholder_472, :db_insert_placeholder_473,
:db_insert_placeholder_474, :db_insert_placeholder_475, :db_insert_placeholder_476, :db_insert_placeholder_477, :db_insert_placeholder_478,
:db_insert_placeholder_479); Array
(
)
in _menu_router_save() (line 3356 of /home/urbanchi/public_html/perceptionsd7/includes/menu.inc).
webform was disabled successfully. [ok]
Comment #5
quicksketchOh, hmm, that wasn't quite what I would've expected at all. I'm not really sure where all those could be coming from. :-\
I'll have to take a look at this in D7 to figure it out, though right now my enthusiasm for D7 is pretty low... I'm waiting for it to stabilize further because I'm tired of the APIs (and my module ports) breaking with every new alpha release.
Comment #6
safetypinHuh. I didn't realize it was that unstable.
Comment #7
quicksketchWell "unstable" and "changing" are two different things. D7 is surprisingly stable for an alpha release, but each alpha keeps changing the APIs. I'm not arguing with the fact that it keeps changing (most of the changes are indeed necessary), but it still makes it annoying and much more difficult to try an support contributed modules at this point.
Comment #8
safetypinAfter looking into it a bit, I'm pretty sure this isn't a webform issue, but I'm not sure where else to go. I've seen the same error a few times for various modules, and I found this link in a google search: http://library.acquia.com/api/drupal/includes--database--pgsql--query.in...
So, this query.inc file inserts ":db_insert_placeholder_" in the query, but I don't know why. Is there an issue queue for the d7 pgsql adapter?
Comment #9
alan d. commentedI just got this error about additional_validate on an updated WebForm 6.x-3.2 site (6.2 to 6.3).
Maybe it would be best to drop these columns in the absence of webform_php module, and get the maintainer of that module to fix the defaults. It is a bit of a sticky catch 22 here!
Dropping down to the stable Drupal version (core is getting close to a beta..., maybe March 2011?). This way it will never get to Drupal 7 to be an issue!
And since it preventing data being saved & additional errors in the database down the track (eg: duplicate entries error in webform roles for example), bumping to major.
@quicksketch please correct this if it is wrong - we will be updating about 100 sites in the upcoming months!
If you are reading this without the webform_php module, run this in your MySQL / PHPMyAdmin to nuke the columns:
REMEMBER YOUR DB PREFIX IF YOU ARE USING ONE!!!!!
Then delete and recreate the webforms where you got this error, as the resulting data loss trickles down into other bugs. These are not really bugs, just GIGO issues caused by this first error.
Comment #10
quicksketchWe can't just drop the columns without providing the administrator some kind of backup. It's best-practice to always save the user's data no matter what when upgrading, even though APIs may change. If you want to remove these columns you can also install webform_php then uninstall it and that will drop the columns too.
I think the easy solution is just to let these columns accept NULL values and not worry if they're there or not.
Comment #11
quicksketchI've applied these patches to D6 and D7 which should prevent this problem in the future by allowing NULL values in these columns (if they exist). I've also updated Webform PHP to use the same specification.
Comment #12
quicksketchHere's the patch for Webform PHP, which has also been applied.