46 lines
2.0 KiB
SQL
46 lines
2.0 KiB
SQL
-- Add remaining dedicated metadata fields to documents table
|
|
-- These fields extract commonly used metadata from source_metadata JSON
|
|
-- into dedicated columns for better querying and indexing
|
|
|
|
-- Add source path (original file location from source system)
|
|
ALTER TABLE documents
|
|
ADD COLUMN IF NOT EXISTS source_path TEXT;
|
|
|
|
-- Add source type (e.g., 'web_upload', 'filesystem', 'webdav', 's3')
|
|
ALTER TABLE documents
|
|
ADD COLUMN IF NOT EXISTS source_type TEXT;
|
|
|
|
-- Add file permissions (Unix mode bits from source system)
|
|
ALTER TABLE documents
|
|
ADD COLUMN IF NOT EXISTS file_permissions INTEGER;
|
|
|
|
-- Add file owner (username or uid from source system)
|
|
ALTER TABLE documents
|
|
ADD COLUMN IF NOT EXISTS file_owner TEXT;
|
|
|
|
-- Add file group (groupname or gid from source system)
|
|
ALTER TABLE documents
|
|
ADD COLUMN IF NOT EXISTS file_group TEXT;
|
|
|
|
-- Create indexes for efficient querying
|
|
CREATE INDEX IF NOT EXISTS idx_documents_source_path ON documents(source_path)
|
|
WHERE source_path IS NOT NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_documents_source_type ON documents(source_type)
|
|
WHERE source_type IS NOT NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_documents_file_permissions ON documents(file_permissions)
|
|
WHERE file_permissions IS NOT NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_documents_file_owner ON documents(file_owner)
|
|
WHERE file_owner IS NOT NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_documents_file_group ON documents(file_group)
|
|
WHERE file_group IS NOT NULL;
|
|
|
|
-- Add helpful comments
|
|
COMMENT ON COLUMN documents.source_path IS 'Original path where the file was located in the source system';
|
|
COMMENT ON COLUMN documents.source_type IS 'Type of source where file was ingested from (web_upload, filesystem, webdav, s3, etc.)';
|
|
COMMENT ON COLUMN documents.file_permissions IS 'File permissions from source system (Unix mode bits)';
|
|
COMMENT ON COLUMN documents.file_owner IS 'File owner from source system (username or uid)';
|
|
COMMENT ON COLUMN documents.file_group IS 'File group from source system (groupname or gid)'; |