11PostgresSQL on QNX 4
22--------------------
3- last updated: $Date: 2001/05/24 15:53:31 $
3+ last updated: $Date: 2001/12/21 06:00:15 $
44
55current maintainer: Bernd Tegge (tegge@repas-aeg.de)
66original author: Andreas Kardos (kardos@repas-aeg.de)
77
8- This port is an important step because PostgreSQL isnow the only free
8+ This port is an important step because PostgreSQL isstill the only free
99relational database with full SQL and ODBC support available for QNX 4.
1010The only commercial databases available are Empress RDBMS and Velocis
1111Database Server (not supported for Digital Unix).
@@ -22,9 +22,12 @@ QNX 4 does not offer native support of shared libraries. Therefore the related
2222functionality cannot be used. Shared library support could probably be
2323implemented in future.
2424
25- QNX 4 does not support UNIX domain sockets. Clients must use TCP/IP sockets.
26- Therefore postmaster must always be started with the -i option. Furthermore
27- it would be useful to set the PGHOST variable.
25+ QNX 4 does not support UNIX domain sockets. Clients must use TCP/IP
26+ sockets. Therefore you either have to set "tcpip_socket = true" in
27+ your postgresql.conf or to start postmaster with the -i option.
28+ Furthermore it's advisable to set to set the PGHOST or SOCK environment
29+ variable for postmaster in an environment using native QNX networking.
30+ Otherwise the postmaster might not use the IP-Address you think it does :-)
2831
2932Prerequisites:
3033--------------
@@ -128,14 +131,8 @@ the object file into the SUBSYS.o but link it directly. For further information
128131see backend/Makefile and backend/bootstrap/Makefile.
129132libpgsql.a currently cannot be generated because of the same problem. But this
130133doesn't matter since shared libraries are not supported.
131-
132- Currently yacc fails on backend/parser/gram.y and
133- interfaces/ecpg/preproc/preproc.y due to exceeded maximum table size. You can
134- generate the gram.h, parse.h, preproc.h and preproc.c files on another platform
135- and use them. This is only a problem when you use the current source tree since
136- parse.h, gram.c, preproc.h and preproc.c are included in official
137- distributions. In order to avoid this, install the bison binary mentioned
138- above.
134+ (The Makefiles are already changed to ignore this, you don't have to
135+ do anything)
139136
140137Regression tests:
141138-----------------
@@ -150,32 +147,27 @@ Some slight deviation in the last digit and "0" instead of "-0".
150147Can be ignored.
151148
152149timestamp, tinterval, abstime, horology:
153- Differences for yearsoutside thenormal Unix range, e.g. 1968
154- instead of 2105
150+ Differences for yearsbefore theUNIX epoch. The QNX library probably treats
151+ time_t as unsigned -> dates before 1970 get moved into the far future.
155152Can be ignored.
156153
157- rules:
158- "ERROR: Bad money external representation ..."
159- if a value of type money is inserted in string representation e.g. as in
160- "insert into rtest_emp values ('wiech', '5000.00');"
161- Subject of further investigation.
162-
163154create_function_1, create_function_2, create_type, create_operator,
164155create_view, select_views, triggers, misc, plpgsql:
165156Error messages due to the lack of shared library support.
166157
167- numeric, numeric_big, sanity_check:
168- "ERROR: Cannot create unique index. Table contains non-unique values"
169- This error occurs for indices of tables num_exp_add, num_exp_sub,
170- num_exp_div and num_exp_mul only.
171- Subject of further investigation. Probably because of the missing indices
172- these numeric tests take a long time.
173- The diffence in sanity_check.out is a consequence of this problem only.
158+ rules, select_views:
159+ looks like it fails because it depends on tables created by previously
160+ failing tests.
161+
162+ alter_table:
163+ An expected failure message contains one blank more than expected.
164+ Possibly a faulty output file.
165+
166+ int8, subselect, union
167+ fails for Watcom version because of lacking int8 support.
174168
175169The current state of this port should be sufficient for lot of applications.
176170
177- The Watcom version failed additional tests because of the lack of int8
178- support.
179171
180172Have fun!
181173
@@ -184,7 +176,7 @@ Andreas Kardos
184176
185177Bernd Tegge
186178tegge@repas-aeg.de
187- 2001-03-01
179+ 2001-12-10
188180
189181---------------------------------------------------------------------------
190182
@@ -211,3 +203,28 @@ tegge@repas-aeg.de
211203 #if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)
212204 #pragma reset woff 1174
213205
206+
207+ Patch required to build with gcc:
208+
209+ *** /usr/src/postgresql-7.2b3/src/backend/port/qnx4/sem.h Thu Nov 8 21:37:52 2001
210+ --- src/backend/port/qnx4/sem.h Mon Dec 10 13:22:18 2001
211+ ***************
212+ *** 55,60 ****
213+ --- 55,71 ----
214+ ushort_t sem_num; /* semaphore # */
215+ short sem_op; /* semaphore operation */
216+ short sem_flg; /* operation flags */
217+ + };
218+ +
219+ + /*
220+ + * command union for semctl.
221+ + */
222+ +
223+ + union semun {
224+ + int val; /* value for SETVAL */
225+ + struct semid_ds *buf; /* buffer for IPC_STAT, IPC_SET */
226+ + unsigned short int *array; /* array for GETALL, SETALL */
227+ + struct seminfo *__buf; /* buffer for IPC_INFO */
228+ };
229+
230+ extern int semctl(int semid, int semnum, int cmd, /* ... */ union semun arg);