Postgresql support for 6.x-2.x

samuelet - July 16, 2008 - 15:02
Project:Event
Version:6.x-2.x-dev
Component:Code
Category:bug report
Priority:critical
Assigned:Unassigned
Status:reviewed & tested by the community
Description

The Postgresql backend seems broken (at least for 7.4).

For example:

1)Installion can't do:
ALTER TABLE users ADD timezone_id int NOT NULL default '0'
in one query.

2)tz.offset needs to be double quoted (tz."offset") in queries because offset is an internal psql function.

3) GROUP BY needs selected fields

The patch should fix 2) and 3)

AttachmentSize
event6_pgsql.txt13.35 KB

#1

killes@www.drop.org - September 7, 2008 - 01:04
Status:needs work» active

Thanks, applied.

Marking active until 1) is resolved.

#2

dturover - October 17, 2008 - 05:49

Try stripping the quotes from the zero since '0' is a string value and it is expecting an int. If that doesn't work, try running it manually and let us know where postgres is complaining.

#3

samuelet - October 17, 2008 - 08:18

dturover, postgres can manage the '0' string, this is not the problem.

What i meant with 1) is that postgresql 7 does not support such query.

From http://www.postgresql.org/docs/7.4/interactive/sql-altertable.html

In the current implementation of ADD COLUMN, default and NOT NULL clauses for the new column are not supported. The new column always comes into being with all values null. You can use the SET DEFAULT form of ALTER TABLE to set the default afterward.

so it dies with:

ERROR:  adding columns with defaults is not implemented
HINT:  Add the column, then use ALTER TABLE SET DEFAULT.

The working pg 7 query is:

ALTER TABLE users ADD timezone_id int;
ALTER TABLE users ALTER COLUMN timezone_id SET DEFAULT '0';
ALTER TABLE users ALTER COLUMN timezone_id SET NOT NULL;

#4

Gerhard Killesreiter - October 19, 2008 - 21:51

can somebody please roll a patch from this?

#5

killes@www.drop.org - October 26, 2008 - 19:01
Status:active» postponed (maintainer needs more info)

changing status

#6

markstos - January 27, 2009 - 17:11
Title:Postgresql support» Postgresql support for 6.x-2.x

With Drupal 6.9, this 6.x-2.x module, and PostgreSQL, the upgrade fails with many errors, given below:

* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((9763200 <= e.event_start <= 22982400) OR (41817600 <= e.event_start <= 55036800) OR (73267200 <= e.event_start <= 86486400) OR (104716800 <= e.event_start <= 117936000) OR (136166400 <= e.event_start <= 149385600) OR (167616000 <= e.event_start <= 180835200) OR (199670400 <= e.event_start <= 212889600) OR (231120000 <= e.event_start <= 244339200) OR (262569600 <= e.event_start <= 275788800) OR (294019200 <= e.event_start <= 307238400) OR (325468800 <= e.event_start <= 338688000) OR (356918400 <= e.event_start <= 370137600) OR (388972800 <= e.event_start <= 402192000) OR (420422400 <= e.event_start <= 433641600) OR (451872000 <= e.event_start <= 465091200) OR (483321600 <= e.event_start <= 496540800) OR (514771200 <= e.event_start <= 527990400) OR (546220800 <= e.event_start <= 559440000) OR (57 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((22032000 <= e.event_start <= 8726400) OR (53481600 <= e.event_start <= 40176000) OR (84931200 <= e.event_start <= 71625600) OR (116380800 <= e.event_start <= 103075200) OR (147830400 <= e.event_start <= 135129600) OR (179884800 <= e.event_start <= 166579200) OR (211334400 <= e.event_start <= 198028800) OR (242784000 <= e.event_start <= 229478400) OR (274233600 <= e.event_start <= 260928000) OR (305683200 <= e.event_start <= 292377600) OR (337737600 <= e.event_start <= 324432000) OR (369187200 <= e.event_start <= 355881600) OR (400636800 <= e.event_start <= 387331200) OR (432086400 <= e.event_start <= 418780800) OR (463536000 <= e.event_start <= 450230400) OR (494985600 <= e.event_start <= 482284800) OR (527040000 <= e.event_start <= 513734400) OR (558489600 <= e.event_start <= 545184000) OR (58 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((7516800 <= e.event_start <= 25660800) OR (38966400 <= e.event_start <= 57715200) OR (70416000 <= e.event_start <= 89164800) OR (101865600 <= e.event_start <= 120614400) OR (133920000 <= e.event_start <= 152064000) OR (165369600 <= e.event_start <= 183513600) OR (196819200 <= e.event_start <= 215568000) OR (228268800 <= e.event_start <= 247017600) OR (259718400 <= e.event_start <= 278467200) OR (291168000 <= e.event_start <= 309916800) OR (323222400 <= e.event_start <= 341366400) OR (354672000 <= e.event_start <= 372816000) OR (386121600 <= e.event_start <= 404870400) OR (417571200 <= e.event_start <= 436320000) OR (449020800 <= e.event_start <= 467769600) OR (481075200 <= e.event_start <= 499219200) OR (512524800 <= e.event_start <= 530668800) OR (543974400 <= e.event_start <= 562118400) OR (57 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((7776000 <= e.event_start <= 23587200) OR (39312000 <= e.event_start <= 55123200) OR (70934400 <= e.event_start <= 86745600) OR (102470400 <= e.event_start <= 118281600) OR (134006400 <= e.event_start <= 149817600) OR (165542400 <= e.event_start <= 181353600) OR (197164800 <= e.event_start <= 212976000) OR (228700800 <= e.event_start <= 244512000) OR (260236800 <= e.event_start <= 276048000) OR (291772800 <= e.event_start <= 307584000) OR (323395200 <= e.event_start <= 339206400) OR (354931200 <= e.event_start <= 370742400) OR (386467200 <= e.event_start <= 402278400) OR (418003200 <= e.event_start <= 433814400) OR (449625600 <= e.event_start <= 465436800) OR (481161600 <= e.event_start <= 496972800) OR (512697600 <= e.event_start <= 528508800) OR (544233600 <= e.event_start <= 560044800) OR (57 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((7344000 <= e.event_start <= 24364800) OR (38793600 <= e.event_start <= 55814400) OR (70848000 <= e.event_start <= 87264000) OR (102297600 <= e.event_start <= 118713600) OR (133747200 <= e.event_start <= 150768000) OR (165196800 <= e.event_start <= 182217600) OR (196646400 <= e.event_start <= 213667200) OR (228700800 <= e.event_start <= 245116800) OR (260150400 <= e.event_start <= 276566400) OR (291600000 <= e.event_start <= 308016000) OR (323049600 <= e.event_start <= 340070400) OR (354499200 <= e.event_start <= 371520000) OR (385948800 <= e.event_start <= 402969600) OR (418003200 <= e.event_start <= 434419200) OR (449452800 <= e.event_start <= 465868800) OR (480902400 <= e.event_start <= 497923200) OR (512352000 <= e.event_start <= 529372800) OR (543801600 <= e.event_start <= 560822400) OR (57 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((7516800 <= e.event_start <= 25660800) OR (38966400 <= e.event_start <= 57715200) OR (70416000 <= e.event_start <= 89164800) OR (101865600 <= e.event_start <= 120614400) OR (133920000 <= e.event_start <= 152064000) OR (165369600 <= e.event_start <= 183513600) OR (196819200 <= e.event_start <= 215568000) OR (228268800 <= e.event_start <= 247017600) OR (259718400 <= e.event_start <= 278467200) OR (291168000 <= e.event_start <= 309916800) OR (323222400 <= e.event_start <= 341366400) OR (354672000 <= e.event_start <= 372816000) OR (386121600 <= e.event_start <= 404870400) OR (417571200 <= e.event_start <= 436320000) OR (449020800 <= e.event_start <= 467769600) OR (481075200 <= e.event_start <= 499219200) OR (512524800 <= e.event_start <= 530668800) OR (543974400 <= e.event_start <= 562118400) OR (57 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((9158400 <= e.event_start <= 24883200) OR (40608000 <= e.event_start <= 56332800) OR (72662400 <= e.event_start <= 88387200) OR (104112000 <= e.event_start <= 119836800) OR (135561600 <= e.event_start <= 151286400) OR (167011200 <= e.event_start <= 182736000) OR (198460800 <= e.event_start <= 214185600) OR (229910400 <= e.event_start <= 246240000) OR (261964800 <= e.event_start <= 277689600) OR (293414400 <= e.event_start <= 309139200) OR (324864000 <= e.event_start <= 340588800) OR (356313600 <= e.event_start <= 372038400) OR (387763200 <= e.event_start <= 403488000) OR (419212800 <= e.event_start <= 435542400) OR (451267200 <= e.event_start <= 466992000) OR (482716800 <= e.event_start <= 498441600) OR (514166400 <= e.event_start <= 529891200) OR (545616000 <= e.event_start <= 561340800) OR (57 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((6825600 <= e.event_start <= 22896000) OR (38361600 <= e.event_start <= 54432000) OR (69984000 <= e.event_start <= 86054400) OR (101520000 <= e.event_start <= 117590400) OR (133056000 <= e.event_start <= 149126400) OR (164592000 <= e.event_start <= 180662400) OR (196214400 <= e.event_start <= 212284800) OR (227750400 <= e.event_start <= 243820800) OR (259286400 <= e.event_start <= 275356800) OR (290822400 <= e.event_start <= 306892800) OR (322444800 <= e.event_start <= 338515200) OR (353980800 <= e.event_start <= 370051200) OR (385516800 <= e.event_start <= 401587200) OR (417052800 <= e.event_start <= 433123200) OR (448675200 <= e.event_start <= 464745600) OR (480211200 <= e.event_start <= 496281600) OR (511747200 <= e.event_start <= 527817600) OR (543283200 <= e.event_start <= 559353600) OR (57 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((25660800 <= e.event_start <= 7516800) OR (57715200 <= e.event_start <= 38966400) OR (89164800 <= e.event_start <= 70416000) OR (120614400 <= e.event_start <= 101865600) OR (152064000 <= e.event_start <= 133920000) OR (183513600 <= e.event_start <= 165369600) OR (215568000 <= e.event_start <= 196819200) OR (247017600 <= e.event_start <= 228268800) OR (278467200 <= e.event_start <= 259718400) OR (309916800 <= e.event_start <= 291168000) OR (341366400 <= e.event_start <= 323222400) OR (372816000 <= e.event_start <= 354672000) OR (404870400 <= e.event_start <= 386121600) OR (436320000 <= e.event_start <= 417571200) OR (467769600 <= e.event_start <= 449020800) OR (499219200 <= e.event_start <= 481075200) OR (530668800 <= e.event_start <= 512524800) OR (562118400 <= e.event_start <= 543974400) OR (59 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((24451200 <= e.event_start <= 7516800) OR (55900800 <= e.event_start <= 38966400) OR (87350400 <= e.event_start <= 70416000) OR (119404800 <= e.event_start <= 101865600) OR (150854400 <= e.event_start <= 133920000) OR (182304000 <= e.event_start <= 165369600) OR (213753600 <= e.event_start <= 196819200) OR (245203200 <= e.event_start <= 228268800) OR (276652800 <= e.event_start <= 259718400) OR (308707200 <= e.event_start <= 291168000) OR (340156800 <= e.event_start <= 323222400) OR (371606400 <= e.event_start <= 354672000) OR (403056000 <= e.event_start <= 386121600) OR (434505600 <= e.event_start <= 417571200) OR (466560000 <= e.event_start <= 449020800) OR (498009600 <= e.event_start <= 481075200) OR (529459200 <= e.event_start <= 512524800) OR (560908800 <= e.event_start <= 543974400) OR (59 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((24451200 <= e.event_start <= 6912000) OR (55900800 <= e.event_start <= 38966400) OR (87350400 <= e.event_start <= 70416000) OR (119404800 <= e.event_start <= 101865600) OR (150854400 <= e.event_start <= 133315200) OR (182304000 <= e.event_start <= 164764800) OR (213753600 <= e.event_start <= 196819200) OR (245203200 <= e.event_start <= 228268800) OR (276652800 <= e.event_start <= 259718400) OR (308707200 <= e.event_start <= 291168000) OR (340156800 <= e.event_start <= 322617600) OR (371606400 <= e.event_start <= 354067200) OR (403056000 <= e.event_start <= 386121600) OR (434505600 <= e.event_start <= 417571200) OR (466560000 <= e.event_start <= 449020800) OR (498009600 <= e.event_start <= 480470400) OR (529459200 <= e.event_start <= 511920000) OR (560908800 <= e.event_start <= 543369600) OR (59 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((26870400 <= e.event_start <= 2073600) OR (58924800 <= e.event_start <= 34128000) OR (90374400 <= e.event_start <= 65577600) OR (121824000 <= e.event_start <= 97027200) OR (153273600 <= e.event_start <= 128476800) OR (184723200 <= e.event_start <= 159926400) OR (216777600 <= e.event_start <= 191376000) OR (248227200 <= e.event_start <= 223430400) OR (279676800 <= e.event_start <= 254880000) OR (311126400 <= e.event_start <= 286329600) OR (342576000 <= e.event_start <= 317779200) OR (374025600 <= e.event_start <= 349228800) OR (406080000 <= e.event_start <= 381283200) OR (437529600 <= e.event_start <= 412732800) OR (468979200 <= e.event_start <= 444182400) OR (500428800 <= e.event_start <= 475632000) OR (531878400 <= e.event_start <= 507081600) OR (563328000 <= e.event_start <= 538531200) OR (595 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((7520400 <= e.event_start <= 25664400) OR (38970000 <= e.event_start <= 57718800) OR (70419600 <= e.event_start <= 89168400) OR (101869200 <= e.event_start <= 120618000) OR (133923600 <= e.event_start <= 152067600) OR (165373200 <= e.event_start <= 183517200) OR (196822800 <= e.event_start <= 215571600) OR (228272400 <= e.event_start <= 247021200) OR (259722000 <= e.event_start <= 278470800) OR (291171600 <= e.event_start <= 309920400) OR (323226000 <= e.event_start <= 341370000) OR (354675600 <= e.event_start <= 372819600) OR (386125200 <= e.event_start <= 404874000) OR (417574800 <= e.event_start <= 436323600) OR (449024400 <= e.event_start <= 467773200) OR (481078800 <= e.event_start <= 499222800) OR (512528400 <= e.event_start <= 530672400) OR (543978000 <= e.event_start <= 562122000) OR (57 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((7524000 <= e.event_start <= 25668000) OR (38973600 <= e.event_start <= 57722400) OR (70423200 <= e.event_start <= 89172000) OR (101872800 <= e.event_start <= 120621600) OR (133927200 <= e.event_start <= 152071200) OR (165376800 <= e.event_start <= 183520800) OR (196826400 <= e.event_start <= 215575200) OR (228276000 <= e.event_start <= 247024800) OR (259725600 <= e.event_start <= 278474400) OR (291175200 <= e.event_start <= 309924000) OR (323229600 <= e.event_start <= 341373600) OR (354679200 <= e.event_start <= 372823200) OR (386128800 <= e.event_start <= 404877600) OR (417578400 <= e.event_start <= 436327200) OR (449028000 <= e.event_start <= 467776800) OR (481082400 <= e.event_start <= 499226400) OR (512532000 <= e.event_start <= 530676000) OR (543981600 <= e.event_start <= 562125600) OR (57 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((8128800 <= e.event_start <= 25668000) OR (39578400 <= e.event_start <= 57722400) OR (71028000 <= e.event_start <= 89172000) OR (102477600 <= e.event_start <= 120621600) OR (134532000 <= e.event_start <= 152071200) OR (165981600 <= e.event_start <= 183520800) OR (197431200 <= e.event_start <= 215575200) OR (228880800 <= e.event_start <= 247024800) OR (260330400 <= e.event_start <= 278474400) OR (291780000 <= e.event_start <= 309924000) OR (323834400 <= e.event_start <= 341373600) OR (355284000 <= e.event_start <= 372823200) OR (386733600 <= e.event_start <= 404877600) OR (418183200 <= e.event_start <= 436327200) OR (449632800 <= e.event_start <= 467776800) OR (481687200 <= e.event_start <= 499226400) OR (513136800 <= e.event_start <= 530676000) OR (544586400 <= e.event_start <= 562125600) OR (57 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((7776000 <= e.event_start <= 25660800) OR (39312000 <= e.event_start <= 57715200) OR (70934400 <= e.event_start <= 89164800) OR (102470400 <= e.event_start <= 120614400) OR (134006400 <= e.event_start <= 152064000) OR (165542400 <= e.event_start <= 183513600) OR (197164800 <= e.event_start <= 215568000) OR (228700800 <= e.event_start <= 247017600) OR (260236800 <= e.event_start <= 278467200) OR (291772800 <= e.event_start <= 309916800) OR (323395200 <= e.event_start <= 341366400) OR (354931200 <= e.event_start <= 372816000) OR (386467200 <= e.event_start <= 404870400) OR (418003200 <= e.event_start <= 436320000) OR (449625600 <= e.event_start <= 467769600) OR (481161600 <= e.event_start <= 499219200) OR (512697600 <= e.event_start <= 530668800) OR (544233600 <= e.event_start <= 562118400) OR (57 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((26870400 <= e.event_start <= 4492800) OR (58924800 <= e.event_start <= 36547200) OR (90374400 <= e.event_start <= 67996800) OR (121824000 <= e.event_start <= 99446400) OR (153273600 <= e.event_start <= 130896000) OR (184723200 <= e.event_start <= 162345600) OR (216777600 <= e.event_start <= 193795200) OR (248227200 <= e.event_start <= 225849600) OR (279676800 <= e.event_start <= 257299200) OR (311126400 <= e.event_start <= 288748800) OR (342576000 <= e.event_start <= 320198400) OR (374025600 <= e.event_start <= 351648000) OR (406080000 <= e.event_start <= 383702400) OR (437529600 <= e.event_start <= 415152000) OR (468979200 <= e.event_start <= 446601600) OR (500428800 <= e.event_start <= 478051200) OR (531878400 <= e.event_start <= 509500800) OR (563328000 <= e.event_start <= 540950400) OR (595 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((24969600 <= e.event_start <= 6307200) OR (56419200 <= e.event_start <= 38361600) OR (88473600 <= e.event_start <= 69811200) OR (119923200 <= e.event_start <= 101260800) OR (151372800 <= e.event_start <= 132710400) OR (182822400 <= e.event_start <= 164160000) OR (214272000 <= e.event_start <= 196214400) OR (245721600 <= e.event_start <= 227664000) OR (277776000 <= e.event_start <= 259113600) OR (309225600 <= e.event_start <= 290563200) OR (340675200 <= e.event_start <= 322012800) OR (372124800 <= e.event_start <= 353462400) OR (403574400 <= e.event_start <= 385516800) OR (435024000 <= e.event_start <= 416966400) OR (467078400 <= e.event_start <= 448416000) OR (498528000 <= e.event_start <= 479865600) OR (529977600 <= e.event_start <= 511315200) OR (561427200 <= e.event_start <= 542764800) OR (59 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((22032000 <= e.event_start <= 8726400) OR (53481600 <= e.event_start <= 40176000) OR (84931200 <= e.event_start <= 71625600) OR (116380800 <= e.event_start <= 103075200) OR (147830400 <= e.event_start <= 134524800) OR (179884800 <= e.event_start <= 165974400) OR (211334400 <= e.event_start <= 198028800) OR (242784000 <= e.event_start <= 229478400) OR (274233600 <= e.event_start <= 260928000) OR (305683200 <= e.event_start <= 292377600) OR (337737600 <= e.event_start <= 323827200) OR (369187200 <= e.event_start <= 355881600) OR (400636800 <= e.event_start <= 387331200) OR (432086400 <= e.event_start <= 418780800) OR (463536000 <= e.event_start <= 450230400) OR (494985600 <= e.event_start <= 481680000) OR (527040000 <= e.event_start <= 513129600) OR (558489600 <= e.event_start <= 545184000) OR (58 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: operator does not exist: boolean <= integer HINT: No operator matches the given name and argument type(s). You may need to add explicit type casts. in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: INSERT INTO event (nid, event_start, event_end, timezone, start_in_dst, end_in_dst) SELECT e.nid, IF((22032000 <= e.event_start <= 8726400) OR (53481600 <= e.event_start <= 40176000) OR (84931200 <= e.event_start <= 71625600) OR (116380800 <= e.event_start <= 103075200) OR (147830400 <= e.event_start <= 135129600) OR (179884800 <= e.event_start <= 166579200) OR (211334400 <= e.event_start <= 198028800) OR (242784000 <= e.event_start <= 229478400) OR (274233600 <= e.event_start <= 260928000) OR (305683200 <= e.event_start <= 292377600) OR (337737600 <= e.event_start <= 324432000) OR (369187200 <= e.event_start <= 355881600) OR (400636800 <= e.event_start <= 387331200) OR (432086400 <= e.event_start <= 418780800) OR (463536000 <= e.event_start <= 450230400) OR (494985600 <= e.event_start <= 482284800) OR (527040000 <= e.event_start <= 513734400) OR (558489600 <= e.event_start <= 545184000) OR (58 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 261.
* warning: pg_query() [function.pg-query]: Query failed: ERROR: timestamp units "hour_second" not recognized in /usr/home/fosugcrk/www/includes/database.pgsql.inc on line 139.
* user warning: query: UPDATE event SET has_time = 0 WHERE EXTRACT(HOUR_SECOND FROM event_start) = 0 AND EXTRACT(HOUR_SECOND FROM event_end) = 235900 in /usr/home/fosugcrk/www/sites/all/modules/event/event.install on line 383.

#7

Gerhard Killesreiter - February 2, 2009 - 22:07

Which version of postgres?

#8

plj - March 3, 2009 - 17:08
Priority:normal» critical
Status:postponed (maintainer needs more info)» needs review

It seems you can't use the (int <= {column} <=int) syntax on PostgreSQL; this is very likely because IF() is non-native function in PostgreSQL and created by Drupal's system.install; the native DB syntax is entirely different. (I'm running PostgreSQL 8.1.15.)

I made the dirty work and fixed this and the other PostgreSQL update problem I ran into, plus one annoyance. See attached patch.

AttachmentSize
event.install.patch 74.47 KB

#9

plj - September 25, 2009 - 10:38
Status:needs review» reviewed & tested by the community

Killes,

this has been in need of review for ages, and no one has complained anything. I think you should commit it now, while it still applies against HEAD.

 
 

Drupal is a registered trademark of Dries Buytaert.