Re: [HACKERS] Comparison with "true" in source code
On Mon, Nov 15, 2010 at 11:13, Robert Haas wrote: >> I added an additional cleanup to 'header_mode' in ecpg; I changed the type >> from bool to char to hold 'h' or 'c'. Do you think it is reasonable? > > I looked at this but found that part a bit too clever for its own good. > > So committed the rest, plus an additional one-line change to psql's > print.c to avoid making the two accesses to format->wrap_right_pointer > inconsistent with each other. Thanks! -- Itagaki Takahiro -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] Comparison with "true" in source code
On Wed, Nov 3, 2010 at 9:45 PM, Itagaki Takahiro wrote: > On Wed, Nov 3, 2010 at 2:19 AM, Michael Meskes wrote: >> On Mon, Nov 01, 2010 at 12:17:02PM +0900, Itagaki Takahiro wrote: >>> There are some "== true" in the codes, but they might not be safe >>> because all non-zero values are true in C. Is it worth cleaning up them? > > Here is a proposed cleanup that replaces "boolean == true" with "boolean". > I didn't touch "== false" unless they are not in pairs of comparisons > with true because comparison with false is a valid C code. > > Note that I also changed "boolean != true" in pg_upgrade, > but I didn't change ones in xlog.c because it might check > corrupted fields in control files. > >>> src/interfaces/ecpg/preproc/ecpg.c(310): >>> ptr2ext[3] = (header_mode == true) ? 'h' : 'c'; >> I actually see no reason why these variables are not defined as bool instead >> of >> int, so I changed this. Hopefully I found all of them. > > I added an additional cleanup to 'header_mode' in ecpg; I changed the type > from bool to char to hold 'h' or 'c'. Do you think it is reasonable? I looked at this but found that part a bit too clever for its own good. So committed the rest, plus an additional one-line change to psql's print.c to avoid making the two accesses to format->wrap_right_pointer inconsistent with each other. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] Comparison with "true" in source code
On Wed, Nov 3, 2010 at 6:45 PM, Itagaki Takahiro wrote: > On Wed, Nov 3, 2010 at 2:19 AM, Michael Meskes wrote: >> On Mon, Nov 01, 2010 at 12:17:02PM +0900, Itagaki Takahiro wrote: >>> There are some "== true" in the codes, but they might not be safe >>> because all non-zero values are true in C. Is it worth cleaning up them? > > Here is a proposed cleanup that replaces "boolean == true" with "boolean". > I didn't touch "== false" unless they are not in pairs of comparisons > with true because comparison with false is a valid C code. It looks like you have one or two irrelevant whitespace changes in ecpg.c. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] Comparison with "true" in source code
On Wed, Nov 3, 2010 at 2:19 AM, Michael Meskes wrote: > On Mon, Nov 01, 2010 at 12:17:02PM +0900, Itagaki Takahiro wrote: >> There are some "== true" in the codes, but they might not be safe >> because all non-zero values are true in C. Is it worth cleaning up them? Here is a proposed cleanup that replaces "boolean == true" with "boolean". I didn't touch "== false" unless they are not in pairs of comparisons with true because comparison with false is a valid C code. Note that I also changed "boolean != true" in pg_upgrade, but I didn't change ones in xlog.c because it might check corrupted fields in control files. >> src/interfaces/ecpg/preproc/ecpg.c(310): >>ptr2ext[3] = (header_mode == true) ? 'h' : 'c'; > I actually see no reason why these variables are not defined as bool instead > of > int, so I changed this. Hopefully I found all of them. I added an additional cleanup to 'header_mode' in ecpg; I changed the type from bool to char to hold 'h' or 'c'. Do you think it is reasonable? -- Itagaki Takahiro bool_eq_true_cleanup.patch Description: Binary data -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] Comparison with "true" in source code
On Mon, Nov 01, 2010 at 12:17:02PM +0900, Itagaki Takahiro wrote: > There are some "== true" in the codes, but they might not be safe > because all non-zero values are true in C. Is it worth cleaning up them? > ... > src/interfaces/ecpg/ecpglib/connect.c(168): if (con->autocommit == > true && strncmp(mode, "off", strlen("off")) == 0) > src/interfaces/ecpg/preproc/ecpg.addons(356): if (compat == > ECPG_COMPAT_INFORMIX_SE && autocommit == true) > src/interfaces/ecpg/preproc/ecpg.c(310): > ptr2ext[3] = (header_mode > == true) ? 'h' : 'c'; > src/interfaces/ecpg/preproc/ecpg.c(327): > ptr2ext[1] = (header_mode > == true) ? 'h' : 'c'; I actually see no reason why these variables are not defined as bool instead of int, so I changed this. Hopefully I found all of them. Michael -- Michael Meskes Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org) Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org Jabber: michael.meskes at googlemail dot com VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
[HACKERS] Comparison with "true" in source code
There are some "== true" in the codes, but they might not be safe because all non-zero values are true in C. Is it worth cleaning up them? src/backend/access/gin/ginget.c(1364):#define GinIsVoidRes(s) ( ((GinScanOpaque) scan->opaque)->isVoidRes == true ) src/backend/access/gist/gistproc.c(383):if (allisequal == true && ( src/backend/commands/sequence.c(1107): Assert(new->is_cycled == false || new->is_cycled == true); src/backend/tsearch/regis.c(251): if (mb_strchr((char *) ptr->data, c) == true) src/backend/utils/adt/geo_ops.c(3899): for (i = start; i < poly->npts && res == true; i++) src/backend/utils/adt/geo_ops.c(3975): for (i = 0; i < polyb->npts && result == true; i++) src/backend/utils/adt/tsrank.c(112):if (item->prefix == true) src/backend/utils/adt/tsvector_op.c(628): if (res == false && val->prefix == true) src/include/c.h(475):#define BoolIsValid(boolean) ((boolean) == false || (boolean) == true) src/bin/psql/print.c(832): if (opt_border != 0 || format->wrap_right_border == true) src/interfaces/ecpg/ecpglib/connect.c(168): if (con->autocommit == true && strncmp(mode, "off", strlen("off")) == 0) src/interfaces/ecpg/preproc/ecpg.addons(356): if (compat == ECPG_COMPAT_INFORMIX_SE && autocommit == true) src/interfaces/ecpg/preproc/ecpg.c(310): ptr2ext[3] = (header_mode == true) ? 'h' : 'c'; src/interfaces/ecpg/preproc/ecpg.c(327): ptr2ext[1] = (header_mode == true) ? 'h' : 'c'; -- Itagaki Takahiro -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers