Commit Graph

42 Commits

Author SHA1 Message Date
Naeem Akhter
8647a52856 PG-292: Automate the Q/A and implement tap testcases.
This commit brings following changes:
1) Implementation of tap based testing using perl language for different
scenarios that could not be covered under traditional SQL based diff testing,
or require server start/shutdown. At this point of time, tap testing is only
enabled for Postgres 14 & 13, for rest of back branches it will be done at
laster time as there is substantial change in number of columns and their
names.
2) Changes to github action workflows for Postgres 14 & 13 to accomodate the
requirements for tap testing.
3) Similarly, minor changes to Makefile are also done.
4) Testing of supported GUCs using tap tests for different possible
configuration.
5) pg_stat_monitor_reset_errors testing using the tap testcases.
6) Insufficient shared space and buffer overflow testing via tap testcases.
7) Some sql scripts under 'scripts' folder to generate some work load requried
for tap test cases.
8) Everything under 't' folder is specific to perl based test cases. It houses
perl files and folders for some expected files and result folder.
9) 90%+ code coverage for LOC and functions.
10) PG-339 Fix by diego, change in pgsm_errors.c.
2022-01-27 23:49:38 +05:00
Ibrar Ahmed
363f4ab2bd Merge pull request #175 from darkfronza/PG-338_fix_query_call_count
PG-338: Fix query call count
2022-01-24 18:45:30 +05:00
Diego Fronza
52fb1fbc7d PG-338: Fix counters regression test.
After fixing the problem with utility statements, this whole block:
do $$
declare
   n integer:= 1;
begin
	loop
		PERFORM a,b,c,d FROM t1, t2, t3, t4
			 WHERE t1.a = t2.b AND t3.c = t4.d ORDER BY a;
		exit when n = 1000;
		n := n + 1;
	end loop;
end $$;

Is only processed once, as those are nested statements, in order to
match the 1000 statements the GUC pg_stat_monitor.track must be set to
'all' and then back to the default of 'top' when done testing it.
2022-01-21 13:44:05 -03:00
Naeem Akhter
433472ef12 PG-267 Add testcase to test histogram.
This commit adds following three sql based testcases:

1) Test unique application name set by user.
2) Histogram function is working properly as desired.
3) Error on insert is shown with proper message.
2022-01-19 18:04:02 +05:00
Diego Fronza
8a94129848 PG-320: Removal of state columnns from pgsm view.
We are concerned with finished queries in pg_stat_monitor, so state and
state_code columns were removed from the pg_stat_monitor_view as we only
list finished queries on it.

Removed state regression as it is not necessary anymore.

Also, this allowed us to remove the call to pgss_store on ExecutorStart,
which just updated query state to EXEC, thus saving some CPU.
2022-01-06 12:19:05 -03:00
Diego Fronza
57839c7664 PG-295: Fix top_query regression test.
The issue is that between changing GUC "track" from track='top' to
track='all' the queries are executing using previous state of
track='top', to fix that we sleep 1 second after calling
pg_reload_conf() to ensure that queries will run with new settings.
2021-12-30 09:49:32 -03:00
Diego Fronza
fd1691626c PG-293: Disable pgsm_track_planning.
This GUC must be disabled by default, it incurss a small performance
penalty in the PostgreSQL TPS, users can enable it at anytime if they
wish to.
2021-12-30 09:49:32 -03:00
Diego Fronza
a702f24465 PG-293: Update regression tests (extract_comments).
guc: Add the new GUC variable to the output.

tags: Handle both cases, enable/disable extracting query comments.
2021-12-30 09:49:32 -03:00
Diego Fronza
30a328f381 PG-293: Update regression tests.
cmd_type: Added missing DROP TABLE t2;

guc: Adjusted to match the updated settings view, which now display
     boolean values as 'yes' and 'no', also added the 'options' column
     to the output.

guc_1: Handle PostgreSQL versions <= 12 which don't have the
           track_planning feature.

rows.out: Added missing DROP TABLE t2. Also removed the line 'ERROR:
          relation "t2" already exists' since we fixed the problem in
	  cmd_type regression.

top_query: Handling both track = 'top' and track = 'all' cases.

top_query_1: On PostgreSQL >= 14 the sub query from the procedure is
             stored as (select $1 + $2), whereas on PG <= 13 it is
	     stored as SELECT (select $1 + $2).
2021-12-30 09:49:30 -03:00
Diego Fronza
b702145ac3 PG-286: Update regression tests.
As the query normalization and query cleaning is always done in the
right place (pgss_store), no more parsed queries have a trailling comma
';' at the end.

Also, on error regression test, after fixing some problems with utility
related queries, we now have two entries for the RAISE WARNING case, the
first entry is the utility query itself, the second entry is the error
message logged by emit_log_hook.

Some queries have the order adjusted due to the fix introduced by the
previous commits.
2021-12-30 09:48:27 -03:00
Ibrar Ahmed
8fe7676923 PG-284: Bump version to 1.0.0-rc.1. 2021-11-24 18:55:13 +00:00
Diego Fronza
c577750538 PG-277: Fix regression tests (pgsm_overflow_target defaults).
Adjust guc_1.out to match guc.out defaults for pgsm_overflow_target.
2021-11-16 16:31:44 -03:00
Ibrar Ahmed
d3725790d4 Regression Fix. 2021-11-16 12:01:46 +00:00
Ibrar Ahmed
74dd7c80d8 Regression Fix. 2021-11-16 11:46:15 +00:00
Ibrar Ahmed
5f6177daa3 PG-210: Add new column toplevel. 2021-11-16 10:48:11 +00:00
Ibrar Ahmed
6ea5a8991c Merge pull request #135 from percona/devel
Devel
2021-11-14 20:15:30 +05:00
Diego Fronza
0a45fc740f PG-276: Fix regression tests.
The guc_1.out is used for PG >= 13, where query track planning is
available, so it has been restored.
2021-11-12 16:55:51 -03:00
Ibrar Ahmed
192ec4e470 Merge pull request #133 from percona/devel
Devel
2021-11-13 00:37:52 +05:00
Diego Fronza
3be31d67e9 PG-275: Fix regression tests.
Removal of redundant file guc_1.out.

Adjusted guc.out to match query planning disabled by default.
2021-11-12 14:42:17 -03:00
Ibrar Ahmed
0148409b33 Merge pull request #131 from percona/devel
Devel
2021-11-12 20:41:37 +05:00
Evgeniy Patlan
ac7aa57995 PG-264 fix version 2021-11-01 14:49:35 +02:00
Diego Fronza
e593dbccc3 PG-220: Fix GUC regression test (pgsm_overflow_target).
Updated expected output for pgsm_overflow_target to match the default
value of 1.
2021-10-22 15:40:27 -03:00
Ibrar Ahmed
693838c979 PG-263: Bump version to 1.0.0 - Beta2. 2021-10-22 16:27:36 +00:00
Diego Fronza
c390f24f5c PG-262: Fix tags regression test.
The test was updated to reflect the new output format for query
comments.
2021-10-18 11:51:49 -03:00
Diego Fronza
9e76f6f961 PG-260: Fix regression tests.
The regression tests required some adjustmentes as they were based on a
wrong behavior in pg_stat_monitor that was fixed in the last commits.

The problem was that pg_stat_monitor_reset() was not properly clearing
the query buffers, as such, some garbage queries were residing in the
buffers after calling pg_stat_monitor_reset().

One example of a problem, a query such as "SELECT 1 AS num" and the
same query with comments such as:
SELECT $1 AS num /* { "application", psql_app, "real_ip", 192.168.1.3)
*/
Are evaluated to the same query ID, if a test issue the first query, call
pg_stat_monitor_reset() to clear query buffer, then issue the second
query with comments, the result in pg_stat_monitor view would still contain
the first query without comments, this was leading to tests expecting
the wrong output, which is now fixed.
2021-10-14 10:39:25 -03:00
Naeem Akhter
f7588532be PG-226: Enable installcheck-world regression.
1) Enabled configure and build with proper flags and environment to make sure that
built server is aligned with pg and ppg package distribution in terms of features
and configurations. Earlier build (configure) was not aligned with pg community standard
configuration that are used for community builds and distribution.

2) Enabled installcheck-world regression test suites of the pg server, to verify
the stability and compatibility of pg server after loading pg_stat_monitor in
server.

3) Change in expected files of error.out and error_1.out for error testacase.

4) Disbaled and removed coverage using coveralls.io, as it was not serving the purpose.

(Note: installcheck-world was failing on pg-14 due to some changes that are done in pg14
or upstream PGSS, and that is causing additional line (Query Identifier) is output of some
of the test cases of installcheck-world so it is not enabled in this commit. Problem with
pg14 server installcheck regression is output of an extra line (Query identifier ****)
in some of the test cases after loading extension PGSM and that causes regression to fail
for server after library load.)
2021-09-23 03:10:06 +05:00
Ibrar Ahmed
0ceef74071 Bumping version for upcoming 0.9.2-beta1 release 2021-09-06 15:40:53 +05:00
Ibrar Ahmed
bd2ebf2a5b Regression output fix. 2021-09-01 10:25:42 +00:00
Ibrar Ahmed
7a543bafb0 Regression output fix. 2021-09-01 09:55:35 +00:00
Ibrar Ahmed
3d3ece2f99 PG-221: Use alternate of GetUserID function in error hook. 2021-08-31 14:55:53 +00:00
Naeem Akhter
2e31738f15 PG-195: Change pgsm_bucket_time value from 300 to 60.
Changed the default value of pgsm_bucket_time from 300 to 60. Now neither PMM users will need to adjust the default value, nor
restart of PG server will be required for this purpose.
2021-08-17 18:23:15 +05:00
Naeem Akhter
13501632b1 DISTPG-271: Fix the failing 'relations' testcase 2021-08-02 19:37:14 +05:00
Ibrar Ahmed
f470ba591a PG-194: PostgreSQL-14 support added. 2021-05-21 21:29:58 +05:00
Ibrar Ahmed
67b3d961ca PG-193: Comment based tags to identify different parameters. 2021-05-19 22:15:37 +05:00
Ibrar Ahmed
334389c76e PG-188: Added a new column to monitor the query state.
Added missing test case files.
2021-03-21 00:17:17 +05:00
Ibrar Ahmed
f8ed33a92a PG-188: Added a new column to monitor the query state. 2021-03-21 00:04:39 +05:00
Ibrar Ahmed
96a7603aae PG-187: Compilation Error for PostgreSQL 11 and PostgreSQL 12. 2021-03-17 20:42:58 +05:00
Ibrar Ahmed
e0fc683810 PG-186: Add support to monitor query execution plan. 2021-03-17 18:56:39 +05:00
Ibrar Ahmed
aa0ca050d5 PG-186: Add support to monitor query execution plan.
Fix a regression test case.
2021-03-12 19:09:28 +00:00
Ibrar Ahmed
066162c3f6 PG-186: Add support to monitor query execution plan.
This requires refactoring of code to add this functionality. Along with
that this patch contains regression test cases.
2021-03-12 18:55:12 +00:00
Mikhail Samoylov
15a62d9ad3 PG-184: Test version. 2021-02-23 20:43:22 +03:00
Mikhail Samoylov
2e3cba343f PG-183. Move tests to separate directory 2021-02-20 23:17:34 +03:00