Friday, January 24, 2020

PostgresSql option for creating table like another table


In MSSQL there is an easy, code-based, way to create a table with the same DDL and data as another table.
This is simply by running a query similar to this:



select * INTO "NEW TABLE" FROM "SOURCE TABLE"

I needed to do something similar in PostgreSQL and found this to be a nice way to recreate a table using another as a templet

CREATE TABLE TESTTABLE
AS
  SELECT *
  FROM "SOURCE TABLE"
  WHERE false;

psycopg2 on MacOS


I have recently been having some issues with install the python module psycopg2 on a mac os Mojave. No matter what modules I installed in the virtual environment, the pip install of psycopg2 would not find a suitable candidate.

I tried all sorts of ways to get around this, like installing the entire Postgresql engine via brew, all to no avail.

Eventually, I found this pip module (which I should have found earlier to be honest if I had been more attentive :) )

pip install psycopg2-binary

Thursday, July 18, 2019

Locale issues when installing MSSQL on Redhat 8

Today I was installing Microsoft SQL Server on Redhat 8, followning these instructions:
Install Link

During the setup of the server, I was having issues due to unknown locale UTF 8

I had to set the locale to a specific one, which I did using the following:

export LC_CTYPE=en_ZA.utf8

After that, it worked fine.

Monday, September 17, 2018

MicroStrategy Metadata Version



This is an example of how to tell the version of a metadata backup, using a SQL query:

For MySql:

select
CONCAT((SELECT LEFT(PROP_VAL,2)  FROM DSSMDSYSPROP WHERE `NAME` = 'Version'),'.',(select LEFT(PROP_VAL,2)  FROM DSSMDSYSPROP WHERE `NAME` = 'SCHEMAVERSION')) AS `Schema Version`;

Or SELECT * FROM DSSMDSYSPROP ; (This will show all properties)







Friday, March 20, 2015

Postgres -- Tables and Column Length

To generate the following outoput in PostgresSQl


ID Table Name Schema Count of Columns TotalRows
1 Test1 public 4 600
2 Test2 public 12 1268

The following code works well:

SELECT
  t.table_name, t.table_schema, count(columns.column_name), n_live_tup AS totalRowCount  FROM
  information_schema.tables t
  LEFT OUTER JOIN  information_schema.columns on  columns.table_name = t.table_name
  LEFT OUTER JOIN  pg_catalog.pg_stat_user_tables pc on t.table_name = pc.relname
  WHERE t.table_schema ='public'
GROUP BY t.table_name, t.table_schema, n_live_tup


Tuesday, December 17, 2013

Python Development Gui - IDLE on CentOS

Many python books, articles and learning guides refer to a python development GUI named IDLE. Why its recommended is that it comes with features that many other text editors - such as VI and gedit - have such as highlighting and closing (where it shows if you have not closed off a string for example) but IDLE also comes with the ability to show you where you may be making mistakes.

I have been working in VI, gedit, notepad++ and even the python shell of late. While all are usable - and yes I still revert to VI a lot - with all the references being made to IDLE I thought I would take a look.

I first tried it on Windows 7 - all good and an easy install as it is included in the installer exe.
I then tried it on Ubuntu - again, easy to install as you can just search for it in the software installer.

Alas, I then tried CentOS and came up short. In fairness I was using the cmdline more, as I often do in CentOS, but I could not find a package named IDLE.

For any others who need IDLE on CentOS and also didnt find many articles about it, its really very easy.

bash#: sudo yum install python-tools

its as easy as that!

Saturday, October 26, 2013

Just out of interest


While researching a SQL date problem, I came across this and as it is quite interesting and informative, I have decided to post it here as well.

This is not my or the Research Team's work, so credit is given to the original source:
http://www.karaszi.com/sqlserver/info_datetime.asp#RecommendationsInput


Why is 1753 the earliest date for datetime?
Good question. It is for historical reasons. In what we sometimes refer to as the western world, we have had two calendars in modern time: the Julian and the Gregorian calendars. These calendars were a number of days apart (depending on which century you look at), so when a culture that used the Julian calendar moved to the Gregorian calendar, they dropped from 10 to 13 days. Great Britain made this shift in 1752 (1752-09-02 were followed by 1752-09-14). An educated guess why Sybase selected 1753 as earliest date is that if you were to store an earlier date than 1753, you would also have to know which country and also handle this 10-13 day jump. So they decided to not allow dates earlier than 1753. Note, however that other countries did the shift later than 1752. Turkey, for instance, did it as late as 1927.
Being Swedish, I find it a bit amusing that Sweden had the weirdest implementation. They decided to skip the leap day over a period of 40 years (from 1700 to 1740), and Sweden would be in sync with the Gregorian calendar after 1740 (but meanwhile not in sync with anyone). However, in 1704 and 1708 the leap day wasn't skipped for some reason, so in 1712 which was a leap year, they inserted yet an extra day (imagine being born in Feb 30!) and then did the shift over a day like everyone else, in 1753.