검색결과 리스트
글
C macro 사용 시 주의사항
C/C++
2014. 12. 3. 11:18
C 코딩 간 macro 사용 시 연산자 우선순위를 고려하여 괄호처리를 해주는 것이 좋습니다.
아래는 잘못된 macro 설정사례입니다.
아래는 잘못된 macro 설정사례입니다.
#define DANGER 60 + 2위 사례는 아래와 같은 상황에서 잘못된 결과를 초래할 수 있습니다.
int wrong_value = DANGER * 2; // 124라는 결과 값 대신 60 + 2 * 2 = 64 가 할당됩니다.괄호처리를 하여 아래와 같이 사용해야 합니다.
#define HARMLESS (60 + 2)
'C/C++' 카테고리의 다른 글
런타임 OS 식별 팁 (0) | 2009.11.10 |
---|
설정
트랙백
댓글
글
md5를 이용한 password hash value 구하기
POSTGRESQL
2014. 11. 26. 11:17
1. pgcrypto extension 을 생성합니다.
estdb=# create extension pgcrypto; CREATE EXTENSION testdb=# create table user_info(user_id varchar(30), password varchar(100)); CREATE TABLE testdb=# insert into user_info values('id1', crypt('id1_password', gen_salt('md5'))); INSERT 0 1 testdb=# insert into user_info values('id2', crypt('id2_password', gen_salt('md5'))); INSERT 0 1
2. 데이터를 조회할 때는 아래와 같이 SQL을 작성합니다.
testdb=# select user_id from user_info where user_id='id1' and password = crypt('id1_password', password); user_id --------- id1 (1 row) testdb=#
'POSTGRESQL' 카테고리의 다른 글
pg_trgm 을 이용한 전후위 like 검색 (0) | 2015.04.21 |
---|---|
prepare statements 와 casting (0) | 2015.04.21 |
[9.4 beta]ALTER SYSTEM 구문을 이용한 파라메터 변경 (0) | 2014.10.29 |
table inheritance(상속) (0) | 2014.10.28 |
max_connections 와 커널파라메터 (0) | 2014.10.27 |
설정
트랙백
댓글
글
[9.4 beta]ALTER SYSTEM 구문을 이용한 파라메터 변경
POSTGRESQL
2014. 10. 29. 17:11
9.4 에 새롭게 적용될 ALTER SYSTEM 구문을 테스트해 보았습니다.
요약하자면 ALTER SYSTEM 구문을 통해 변경된 파라메터 이름과 value 는 postgresql.auto.conf 파일에 저장되며,
SQL 함수인 pg_reload_conf() 를 통해 reload 되는 방식입니다.
pg_settings 시스템뷰에서 정의하는 context 속성은 그대로 적용된듯 합니다.
1. ALTER SYSTEM 구문으로 파라메터값을 변경합니다.
(pg_reload_conf 함수 또는 pg_ctl reload 를 실행전까지 적용되지 않습니다.)
2. pg_reload_conf() 함수를 통해 reload 명령을 실행하고, 해당 파라메터의 변경된 값을 확인합니다.
(단, pg_settings.context 값이 postmaster인 경우 서버를 재기동해야 합니다.)
3. reset 또는 default 구문을 이용하여 postgresql.conf 파일에 저장된 값으로 초기할 수 있습니다.
4. reset all 구문을 이용하여 모든 파라메터를 postgresql.conf 파일에 저장된 값으로 초기화 할 수 있습니다.
※ data_directory파라메터와 block_size 등과 같이 context 구분이 internal인 파라메터는 변경할 수 없습니다.
요약하자면 ALTER SYSTEM 구문을 통해 변경된 파라메터 이름과 value 는 postgresql.auto.conf 파일에 저장되며,
SQL 함수인 pg_reload_conf() 를 통해 reload 되는 방식입니다.
pg_settings 시스템뷰에서 정의하는 context 속성은 그대로 적용된듯 합니다.
1. ALTER SYSTEM 구문으로 파라메터값을 변경합니다.
(pg_reload_conf 함수 또는 pg_ctl reload 를 실행전까지 적용되지 않습니다.)
pg_test=# select context,name,setting from pg_settings where name in ('enable_seqscan','authentication_timeout','max_connections'); context | name | setting ------------+------------------------+--------- sighup | authentication_timeout | 60 user | enable_seqscan | on postmaster | max_connections | 100 (3 rows) pg_test=# ALTER SYSTEM set authentication_timeout=30; ALTER SYSTEM pg_test=# ALTER SYSTEM set enable_seqscan = off; ALTER SYSTEM pg_test=# ALTER SYSTEM set max_connections = 1000; ALTER SYSTEM pg_test=# select context,name,setting from pg_settings where name in ('enable_seqscan','authentication_timeout','max_connections'); context | name | setting ------------+------------------------+--------- sighup | authentication_timeout | 60 user | enable_seqscan | on postmaster | max_connections | 100 (3 rows)
2. pg_reload_conf() 함수를 통해 reload 명령을 실행하고, 해당 파라메터의 변경된 값을 확인합니다.
(단, pg_settings.context 값이 postmaster인 경우 서버를 재기동해야 합니다.)
pg_test=# select pg_reload_conf(); pg_reload_conf ---------------- t (1 row) pg_test=# select context,name,setting from pg_settings where name in ('enable_seqscan','authentication_timeout','max_connections'); context | name | setting ------------+------------------------+--------- sighup | authentication_timeout | 30 user | enable_seqscan | off postmaster | max_connections | 100 (3 rows)
3. reset 또는 default 구문을 이용하여 postgresql.conf 파일에 저장된 값으로 초기할 수 있습니다.
pg_test=# ALTER SYSTEM reset authentication_timeout; ALTER SYSTEM pg_test=# select pg_reload_conf(); pg_reload_conf ---------------- t (1 row) pg_test=# select context,name,setting from pg_settings where name in ('enable_seqscan','authentication_timeout','max_connections'); context | name | setting ------------+------------------------+--------- sighup | authentication_timeout | 60 user | enable_seqscan | off postmaster | max_connections | 100
4. reset all 구문을 이용하여 모든 파라메터를 postgresql.conf 파일에 저장된 값으로 초기화 할 수 있습니다.
pg_test=# ALTER SYSTEM reset all; ALTER SYSTEM pg_test=# select pg_reload_conf(); pg_reload_conf ---------------- t (1 row) pg_test=# select context,name,setting from pg_settings where name in ('enable_seqscan','authentication_timeout','max_connections'); context | name | setting ------------+------------------------+--------- sighup | authentication_timeout | 60 user | enable_seqscan | on postmaster | max_connections | 100 (3 rows)
※ data_directory파라메터와 block_size 등과 같이 context 구분이 internal인 파라메터는 변경할 수 없습니다.
pg_test=# alter system set data_directory='/data'; ERROR: parameter "data_directory" cannot be changed
'POSTGRESQL' 카테고리의 다른 글
prepare statements 와 casting (0) | 2015.04.21 |
---|---|
md5를 이용한 password hash value 구하기 (0) | 2014.11.26 |
table inheritance(상속) (0) | 2014.10.28 |
max_connections 와 커널파라메터 (0) | 2014.10.27 |
postgresql DBLINK 예제 (0) | 2014.10.27 |