May, 2008

Debian Etch’de ASUS NX 1101 ethernet kartı sürücüsü derlemek

Debian Etch makinamıza 1gbit bir ethernet kartı takalım dedik ve ASUS NX 1101 1000MB ethernet kartı alıp taktık. Maalesef Debian bu aygıtımızı tanımayınca iş başa düştü. Biraz uğraştıktan sonra ethernet kartımız için beraberinde gelen CD’de Linux için sürücü kodlarını (source files) derleyerek, ethernet kartını çalıştırdım. Bu süreç aslında herhangi bir aygıt sürücüsünün (device driver) Linux bir makinaya tanıtılmasında üç aşağı beş yukarı aynı olduğu için bu süreci ihtiyacı olanlara aktarmak ve kendim için de not olarak saklamak amacıyla yazayım istedim.

Önce malzemelerimizi sayalım : Debian Etch yüklü bir PC, bu PC’ye takılmış ASUS NX 1101 ethernet kartı ve bu kartın beraberinde gelen “driver installation CD” yani sürücü yükleme CD’si.

Devamı… »

PostgreSQL’de bir tablonun sütun isimlerini ve veri tiplerini almak

PostgreSQL’de bir tablonun sütunlarının isimlerini ve bu sütunlara ait veri tiplerini almaya ihtiyacım oldu. Biraz araştırmadan sonra güzel bir SQL buldum ve aşağıdaki kodu hazırladım. İşine yarayan olabilir diye paylaşayım.

$tablename = 'tablename';
 
$sql =  'SELECT
a.attname AS "Sutun",
pg_catalog.format_type(a.atttypid, a.atttypmod) AS "Veritipi"
FROM
pg_catalog.pg_attribute a
WHERE
a.attnum > 0
AND NOT a.attisdropped
AND a.attrelid = (
SELECT c.oid
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname ~ '^('.$tablename.')$'
AND pg_catalog.pg_table_is_visible(c.oid)
)';
 
$resulted_array = pg_fetch_all(pg_query($sql));

PostgreSQL’de büyük harfli tablo isimleri

PostgreSQL veritabanı sunucusunda eğer tablo ya da sütun isimleri içinde büyük harfler kullanıyorsanız (örn : TABLE_NAME veya TableName) yaptığınız sorguda tablo ya da böyle bir “relation” yok diye hata alabilirsiniz. Çünkü PostgreSQL sorgu içindeki tablo ve sütun isimlerini küçük harflere (lowercase) çeviriyor. Bu sorunu, için büyük harfle yazdığınız tablo ya da sütun isimlerinin başına ve sonuna çift tırnak (örn : “TabloAdı”) koyarak aşabilirsiniz.

Örnek :

SELECT "SUTUN_ADI" FROM "TableName" WHERE "SUTUNADI"='test';