Author Archives: ronaldpringadi

Check which database object depends on (has reference to) your table

12345678910111213141516SELECT R.TABLE_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE u INNER JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS FK     ON U.CONSTRAINT_CATALOG = FK.UNIQUE_CONSTRAINT_CATALOG     AND U.CONSTRAINT_SCHEMA = FK.UNIQUE_CONSTRAINT_SCHEMA     AND U.CONSTRAINT_NAME = FK.UNIQUE_CONSTRAINT_NAME INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE R     ON R.CONSTRAINT_CATALOG = FK.CONSTRAINT_CATALOG     AND … Continue reading

Posted in Database, PostgreSQL | Leave a comment

Postgres function to devide-and-conquer (iterate) your big query

Create a postgres function to devide-and-conquer (iterate) your big query 1234567891011121314151617181920212223242526272829303132333435363738394041TRUNCATE TABLE YOUR_NEW_BIG_TABLE; DROP FUNCTION IF EXISTS pg_iterator(); CREATE OR REPLACE FUNCTION pg_iterator()   RETURNS void AS $BODY$ DECLARE     vOffsetRecord INT;     vTotal INT;     vLimit … Continue reading

Posted in Database, PostgreSQL | Leave a comment

Crontab header

123456# minute (0-59), # |      hour (0-23), # |      |       day of the month (1-31), # |      |       |       month of the year (1-12), # … Continue reading

Posted in Bash, Linux | Leave a comment

Add user in mysql

The classic three-liner for adding a MySQL user, run from a mysql shell connected as root or another account with the CREATE USER privilege. Replace each placeholder with your own value. 123CREATE USER ‘YOUR_USER_NAME’@’CONNECTING_FROM_WHERE’ IDENTIFIED BY ‘THIS_USER_PASSWORD’; GRANT ALL PRIVILEGES … Continue reading

Posted in MySQL | Leave a comment

Using grep as highlighter

1$ grep –color -E ‘^|pattern1|pattern2’ file name

Posted in Bash, Linux | Leave a comment

TCL programming

A reusable expect dispatcher I kept around for running the same kind of operation across a list of servers — untar an index, restart a service, patch a config file. The trick is that the script reads the first command-line … Continue reading

Posted in Linux, TCL/Expect | Leave a comment

Simple unit test is bash file

Consider the following 3 files: 1. shellTestFramework.sh 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#!/bin/bash # Copyright (c) Ronald Pringadi # Before each Test function setUpTest(){     #"Please overwrite this function on your unit test. Something that need to be done before each test"     … Continue reading

Posted in Bash | Leave a comment

Multithreading in Java using ThreadPoolExecutor

ThreadWorker is your custom class. 123456789try { ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(MAX_THREAD_SIZE); for (int i = 1; i Random randomGenerator = new Random(); executor.submit(new ThreadWorker("worker" + i, randomGenerator.nextInt(10))); LOG.info(i); } } catch (Exception e) { LOG.error("Hmm something is not right.", … Continue reading

Posted in java | Leave a comment

Getting the caller method details using Java

12345678910 public static String getCallerClassName() {         StackTraceElement[] stElements = Thread.currentThread().getStackTrace();         for (int i=1; i<stElements.length; i++) {             StackTraceElement ste = stElements[i];             if … Continue reading

Posted in java | Leave a comment

Compare File Permission Recussively on Linux Directories

Scan 12345678910111213141516171819202122#!/usr/bin/perl use File::Find; my $directory1 = ‘/root/rpmbuild/RPMSX’; my $directory2 = ‘/root/rpmbuild/RPMSX.bak’; find(\&hashfiles, $directory1); sub hashfiles {   my $file1 = $File::Find::name;   (my $file2 = $file1) =~ s/^$directory1/$directory2/;         return(0) if (! -f $file2) ;   … Continue reading

Posted in Linux | Leave a comment