- 05 9月, 2016 1 次提交
-
-
由 Kenan Yao 提交于
-
- 04 9月, 2016 1 次提交
-
-
由 Haisheng Yuan 提交于
Through the file content we know it uses personal absolute path, which can't be used by others. DisableXform/EnableXform are already built-in functions if GPDB is built with Orca. So we can safely delete this file.
-
- 03 9月, 2016 8 次提交
-
-
由 Asim R P 提交于
This was causing gpinitstandby failure. Thank you @zeromax007 and @volkovandr for the report. Fixes #1079.
-
由 Shreedhar Hardikar 提交于
Currently PGFuncBaseGenerator and PGGenericFuncGenerator classes have only one template that takes two argument only, i.e., two datums. These templates can support only (built-in) functions that take two arguments as input only (e.g., int4pl). However, there are built-in functions that take either more or less than two arguments. This will benefit count and average aggregate function.
-
-
由 Ashwin Agrawal 提交于
latestCompletedXid in ShmemVariableCache is used during visibility checking to exit early from TransactionIdIsInProgress, if transaction being checked is higher than latestCompletedXid. During merge to 8.3 this value was set incorrectly after pass1 of recovery, hence it reflected value what checkpoint provides for nextXid. In GPDB pass3 is where xlog records are replayed which would bump-up the nextXID to correctly reflect in-flight transactions. So, latestCompletedXid needs to be set after pass3 has completed to record correct value. Without the fix latestCompletedXid was pointing to stale transaction id yeilding incorrect visibility of tuples post recovery. Repro: create table foo(id int); -- manually kill -9 a segment QE process to simulate SIGSEGV, and force postmaster reset on that segment select * from foo; -- fails currently, ideally shouldn't fail as well select * from foo; -- expected to succeed but it fails with error message like "ERROR: relation with OID xxxxxx does not exist" Thank You @eurekaka for reporting. Fixes: #1094
-
由 Shreedhar Hardikar 提交于
Signed-off-by: NXin Zhang <xzhang@pivotal.io>
-
由 Nikos Armenatzoglou 提交于
This function is used in codegen unittests. In this commit, we also address a minor cpplint error in GenerateSlotGetAttr.
-
This commit - backs out the test addition in 9c98a4f8 - adds the test to a more appropriate place: `bfv_subquery`
-
- 02 9月, 2016 5 次提交
-
-
由 Pengzhou Tang 提交于
-
由 Pengzhou Tang 提交于
-
由 Nikos Armenatzoglou 提交于
Generate code for advance_aggregates function that supports SUM on int4 and float8 datatypes. This implementation doesn't support: i) percentile and ordered aggregates, and ii) NULL and pass-by-ref arguments.
-
由 Nikos Armenatzoglou 提交于
-
由 Ashwin Agrawal 提交于
-
- 01 9月, 2016 5 次提交
-
-
由 Heikki Linnakangas 提交于
Looks like this got applied to wrong side of the if(). It's a bit disturbing that we haven't seen any failures because of this. Trying to release the content lock, when we're not holding it, should trigger an error. Also, need to use ReleaseContentLock() rather than LWLockRelease directly.
-
-
由 Shreedhar Hardikar 提交于
This failure was introduced when we set the new GUC (codegen_optimization_level) during init. Fixes issue from this commit : f160fa5a.
-
由 Ashwin Agrawal 提交于
Refactor code to use common routine to fetch PT info for xlogging. Check can be easliy added at this common place to validate persistent info is available. Plus still add check during recovery for persistentTID zero. As with postgres upstream merges possible the function to populate persistent info is not called at all, so this check will not hit during xlog record construction but atleast gives clear clue during recovery.
-
由 Ashwin Agrawal 提交于
Vacuum lazy is harmless, but also no benefit to perform just extra work. Vacuum full could turn out dangerous as it has potential to move tuples around causing the TIDs for tuples to change, which violates its reference from gp_relation_node. In general persistent table has all frozen tuples so vacuum full is harmless too, but for example one scenario where it becomes dangerous is zero-page case due to failure after page extension but before page initialization. Also, since all the tuples in persistent table are frozen inserts, skip it from database age calculation.
-
- 31 8月, 2016 5 次提交
-
-
由 Andreas Scherbaum 提交于
Closes: #1050 Closes: #1028
-
由 Kenan Yao 提交于
If a QE crashes for reasons such as SIGSEGV, SIGKILL or PANIC, segment postmaster reset fails sometimes. The root cause is: primary segment postmaster would first tell child processes to exit, then start a filerep peer reset process to instruct mirror postmaster do reset; the filerep peer reset process would only exit when mirror postmaster finishes or fails the reset procedure; primary postmaster would wait for the termination of important processes such as AutoVacuum, BgWriter, CheckPoint, filerep peer reset process etc, before it resets share memory and restarts auxiliary processes; however, in some cases, primary postmaster would be stuck in filerep peer reset step, if mirror postmaster is hanging/waiting for some events; if this happens, filerep peer reset process would wait there until timeout(1 hour), and retry 10 times before reports failure to primary postmaster (so 10 hours in total); so the final result is primary postmaster takes 10 hours to report reset failure. This happens almost every time on mirror segment host machine with poor performance for reasons that: mirror postmaster would do similar reset procedure with primary postmaster, i.e, notify child processes to exit and wait their terminations and then restart auxiliary processes; filerep peer reset process would first connect to mirror postmaster to request a postmaster reset, then it would check the reset status of mirror every 10ms by connecting to mirror postmaster; so it can happen that filerep peer reset process keeps connecting mirror postmaster, which would lead to continuous dead_end backend processes forked, while at the same time mirror postmaster waits for the exit of all dead_end backend processes, so it is possible that the speed of generating new dead_end processes exceeds the exit speed, and hence mirror postmaster can never see the clearance of child processes. All in all, this can lead to hang issue and failure of postmaster reset. This issue exists for master postmaster reset as well on heavy workload circumstances.
-
由 Kenan Yao 提交于
-
由 Kenan Yao 提交于
If a QD crashes for reasons such as SIGSEGV, SIGKILL or PANIC, postmaster reset fails sometimes. The root cause is: postmaster would first tell child processes to exit, and then wait for the termination of important processes such as AutoVacuum, BgWriter, CheckPoint etc, before it resets share memory and restarts auxiliary processes; however, WAL writer process is missed in the waiting list, so it can happen that postmaster spawns StartupProcess and then notices the exit of WAL writer, so it tells StartupProcess to exit; then postmaster would notice the abnormal exit of StartupProcess in turn, and treats it as recovery failure, then call exit() itself. Thus, we end up with no postmaster process on master node at all. This happens almost everytime when master host machine has poor performance.
-
由 Shreedhar Hardikar 提交于
Used when compiling generated code. EXPLAIN codegen also runs optimize with this optimize level, making it easier to see the features the compiler optimizes.
-
- 30 8月, 2016 1 次提交
-
-
由 Pengzhou Tang 提交于
standardize compile flags rules of pg_basebackup with other utils like psql, pg_ctl etc.
-
- 29 8月, 2016 4 次提交
-
-
由 Pengzhou Tang 提交于
isSimplyUpdatableRelation may get an invalid input from statements like "DECLARE XX CURSOR FOR SELECT * FROM LOWER('HH')" where a function is selected.
-
由 Pengzhou Tang 提交于
1. Remove retry mechanism for reader gang and non "in recovery mode" error, gp_segment_connect_timeout is default set to 10 mins, so it should be long enough to say we temporary lost the segments. 2. Fix "in recovery mode" retry mechanism, original codes can not recognize a in-recovery-mode error. 3. Add failure details. "failed to acquire resources on one or more segments" hide too many details.
-
由 Pengzhou Tang 提交于
1. Remove retry mechanism for reader gang and non "in recovery mode" error, gp_segment_connect_timeout is default set to 10 mins, so it should be long enough to say we temporary lost the segments. 2. Fix "in recovery mode" retry mechanism, original codes can not recognize a in-recovery-mode error. 3. Add failure details. "failed to acquire resources on one or more segments" hide too many details. 4. Only destroy all gangs when create writer gang failed, otherwise it may clean cursor opened gangs and cause unexpected error.
-
由 Pengzhou Tang 提交于
1.Fix primary writer gang leak: accidentally set PrimaryWriterGang to NULL which cause disconnectAndDestroyAllGangs() can not destroy primary writer gang. 2.Fix gang leak: when creating gang, if retry count exceed the limitation, forget to destroy the failed gang. 3.Remove duplicate sanity check before dispatchCommand(). 4.Remove unnecessary error-out when a broken Gang is no longer needed. 5.Fix thread leak problem 6.Enhance error handling for cdbdisp_finishCommand
-
- 28 8月, 2016 1 次提交
-
-
由 Daniel Gustafsson 提交于
-
- 26 8月, 2016 8 次提交
-
-
由 Heikki Linnakangas 提交于
Gcc 6.1 complains about "tautological compare". Per the comment, the intention here is to unconditionally fail the assertion, so use a more straightforward Assert(false) to do that.
-
由 Daniel Gustafsson 提交于
-
由 Daniel Gustafsson 提交于
-
由 Daniel Gustafsson 提交于
While the compiler will do a perfectly good job of optimizing this the function doesn't add anything to readability of the code given how trivial the function is. Remove and inline the init code.
-
由 Daniel Gustafsson 提交于
The UPD signalling code was added due to a bug in the pthreads code in OS X 10.6 Snow Leopard which prevent pthread_cond_timedwait() to work as intended. This version of the OS was discontinued in 2011 so it's time to retire this work around. OS X is not a supported GPDB platform and as such we only make a best effort to run it on the currently latest version. In the process also make OS X use _timedwait() and not the relative function for simplicity.
-
由 Heikki Linnakangas 提交于
Commit 1eeea564 forgot to add the test queries to the ORCA-specific expected output file, causing the test to fail. But on closer inspection, there aren't any real differences between the ORCA and non-ORCA outputs, so let's just remove the alternative file.
-
由 Heikki Linnakangas 提交于
This seems to have been harmless, by pure chance. Passing the 0 (false) instead of -1 as the location would only affect the context information in error messages. Passing -1 as the boolean 'include_dropped' variable makes expandRTE to include dropped columns in the returned list, but that seems to be harmless too, given what the caller uses the list for. Nevertheless, it's clearly a bug, so fix it.
-
由 Heikki Linnakangas 提交于
Seems better to be precise with these. AOCS tables already used int8s for these, so this makes things more consistent, too.
-
- 25 8月, 2016 1 次提交
-
-
由 Heikki Linnakangas 提交于
-