Re: The connection to the server was lost. Attempting reset: Failed.
Why don't have a try to gdb ? https://wiki.postgresql.org/wiki/Developer_FAQ#What_debugging_features_are_available.3F It might be a extra free memory executions or null pointer accesses .. , gdb could help you. Regards El jue., 10 oct. 2019 a las 20:01, Yessica Brinkmann (< yessica.brinkm...@gmail.com>) escribió: > Thank you very much for the reply. > Well, really, resetStringInfo () is a function of the StringInfo data > structure. > What I used at the end was initStringInfo, which is a function of the data > structure StringInfoData, which is what I am using, although I don't know > if they are equivalent. > The code remained as follows: >if (cols.len> 0) > { >initStringInfo (& cols); >} / * IF col.len> 0 * / > But it continues giving me the same error. > Best regards, > Yessica Brinkmann > > El jue., 10 oct. 2019 a las 13:33, Yessica Brinkmann (< > yessica.brinkm...@gmail.com>) escribió: > >> Thank you so much for your answer. I will be testing the indicated and >> then I give you return. >> Best regards, >> Yessica Brinkmann >> >> El jue., 10 oct. 2019 a las 13:14, Tom Lane () >> escribió: >> >>> Yessica Brinkmann writes: >>> > I really thought a lot, but I don't understand why but the function >>> fails >>> > after the expression is executed: >>> > appendStringInfo (& cols, "% s a.attnum =% d", (i> 0? "OR": ""), >>> idxcd-> >>> > varattno [i]); >>> >>> I think you're probably shooting yourself in the foot here: >>> >>> /* pfree() the memory allocated for the previous candidate. >>> FIXME: Avoid >>> * meddling with the internals of a StringInfo, and try to >>> use an API. >>> */ >>> if( cols.len > 0 ) >>> { >>> pfree( cols.data ); >>> cols.data = NULL; >>> } /*IF col.len>0*/ >>> >>> Don't do that, use resetStringInfo() instead. >>> >>> regards, tom lane >>> >>
pgbench and timestamps
Hi, does anybody know what is wrong with pgbench in this case ?. Here is a simple query to generate a random date in a interval time.sql: (select timestamp '2005-09-01' + random() * ( timestamp '2006-03-01 00:00:00' - timestamp '2005-09-01 00:00:00' )); query executed successfullly with psql /usr/lib/postgresql/12/bin/psql -p 5432 -h localhost -d picp -U postgres -f time.sql BEGIN ?column? -- 2005-11-24 13:22:02.4781 (1 fila)COMMIT psql (PostgreSQL) 12.3 (Ubuntu 12.3-1.pgdg20.04+1) but look at what happen with pgbench pgbench -c 2 -j 2 -M prepared --file time.sql -h localhost -d picp -U postgres -p 5432 pghost: localhost pgport: 5432 nclients: 2 nxacts: 10 dbName: picp starting vacuum...ERROR: no existe la relación «pgbench_branches» (ignoring this error and continuing anyway) ERROR: no existe la relación «pgbench_tellers» (ignoring this error and continuing anyway) ERROR: no existe la relación «pgbench_history» (ignoring this error and continuing anyway) end. client 0 executing script "time.sql" ERROR: la sintaxis de entrada no es válida para tipo timestamp: «2006-03-01 00$1$2» LINE 1: ...t timestamp '2005-09-01' + random() * ( timestamp '2006-03-0... ^ client 0 sending P0_0 client 0 receiving client 0 receiving client 0 sending P0_1 client 0 receiving client 0 receiving client 0 script 0 aborted in command 1 query 0: ERROR: no existe la sentencia preparada «P0_1» client 1 executing script "time.sql" ERROR: la sintaxis de entrada no es válida para tipo timestamp: «2006-03-01 00$1$2» LINE 1: ...t timestamp '2005-09-01' + random() * ( timestamp '2006-03-0... ^Run was aborted; the above results are incomplete. pgbench (PostgreSQL) 12.3 (Ubuntu 12.3-1.pgdg20.04+1) I don't know why pgbench use timestamp: «2006-03-01 00$1$2» instead of timestamp '2006-03-01 00:00:00' Regards
Re: pgbench and timestamps
Hi, Thanks for your comments, I worked around that problem because I was able to truncate the timestamp and use only the date part , alsoit might works the use of to_timestamp. But I would like to understand what is happening , I realized that pgbench is identified erroneously the minutes and seconds parts :00:00 as two variables . Regards El mié., 24 jun. 2020 a las 14:50, David Rowley () escribió: > On Wed, 24 Jun 2020 at 20:41, Jaime Soler wrote: > > > > Hi, does anybody know what is wrong with pgbench in this case ?. Here is > a simple query to generate a random date in a interval time.sql: > > > > (select timestamp '2005-09-01' + random() * ( timestamp '2006-03-01 > 00:00:00' - timestamp '2005-09-01 00:00:00' )); > > pgbench -c 2 -j 2 -M prepared --file time.sql -h localhost -d picp -U > postgres -p 5432 > > ERROR: la sintaxis de entrada no es válida para tipo timestamp: > «2006-03-01 00$1$2» > > > > I don't know why pgbench use timestamp: «2006-03-01 00$1$2» instead of > timestamp '2006-03-01 00:00:00' > > I've not debugged it, but it looks like pgbench thinks that :00 is a > pgbench variable and is replacing each instance with a query > parameter. > > https://www.postgresql.org/docs/12/pgbench.html says: > > "There is a simple variable-substitution facility for script files. > Variable names must consist of letters (including non-Latin letters), > digits, and underscores. Variables can be set by the command-line -D > option, explained above, or by the meta commands explained below. In > addition to any variables preset by -D command-line options, there are > a few variables that are preset automatically, listed in Table 257. A > value specified for these variables using -D takes precedence over the > automatic presets. Once set, a variable's value can be inserted into a > SQL command by writing :variablename. When running more than one > client session, each session has its own set of variables. pgbench > supports up to 255 variable uses in one statement." > > I don't often do much with pgbench and variables, but there are a few > things that surprise me here. > > 1) That pgbench replaces variables within single quotes, and; > 2) that we still think it's a variable name when it starts with a digit, > and; > 3) We replace variables that are undefined. > > I won't pretend to be familiar enough with pgbench internals to know > if there's any reasonable reasons why we do each of the above, but... > > I guess you could work around this problem by just not putting the > midnight time in your timestamp. However, that might not work so well > if you want to specify a time other than midnight. > > David >
Re: pgbench and timestamps
Thanks for your analysis. Regards El mié., 24 jun. 2020 a las 17:17, Tom Lane () escribió: > I wrote: > > David Rowley writes: > >> I don't often do much with pgbench and variables, but there are a few > >> things that surprise me here. > >> 1) That pgbench replaces variables within single quotes, and; > >> 2) that we still think it's a variable name when it starts with a > digit, and; > >> 3) We replace variables that are undefined. > > > Also (4) this only happens when in non-simple query mode --- the > > example works fine without "-M prepared". > > After looking around in the code, it seems like the core of the issue > is that pgbench.c's parseQuery() doesn't check whether a possible > variable name is actually defined, unlike assignVariables() which is > what does the same job in simple query mode. So that explains the > behavioral difference. > > The reason for doing that probably was that parseQuery() is run when > the input file is read, so that relevant variables might not be set > yet. We could fix that by postponing the work to be done at first > execution of the query, as is already the case for PQprepare'ing the > query. > > Also, after further thought I realize that (1) absolutely is a bug > in the non-simple query modes, whatever you think about it in simple > mode. The non-simple modes are trying to pass the variable values > as extended-query-protocol parameters, and the backend is not going > to recognize $n inside a literal as being a parameter. > > If we fixed (1) and (3) I think there wouldn't be any great need > to tighten up (2). > > regards, tom lane >
Re: Getting started with first user.
please try su postgres -c 'createuser -U postgres me' or change auth method in your pg_hba.conf 2018-01-09 10:48 GMT+01:00 Agnar Renolen : > I have just installed PostGIS (Postgres9.6) on a Debian server using > apt-get. > > But I have problems doing anything: > > I installed as root, but trying doing things as my local user "me" > > me> createuser me > createuser: could not connect to database postgres: FATAL: role "me" does > not exist > > Then, trying the same as root, but gettinge the same result. > > root> createuser me > createuser: could not connect to database postgres: FATAL: role "root" > does not exist > > Then trying with the -U postgres option. > > root> createuser -U postgres me > createuser: could not connect to database postgres: FATAL: Peer > authentication failed for user "postgres" > > How do I get started? >